diff --git a/.changeset/dirty-pumas-push.md b/.changeset/dirty-pumas-push.md new file mode 100644 index 0000000000..0003374ddb --- /dev/null +++ b/.changeset/dirty-pumas-push.md @@ -0,0 +1,6 @@ +--- +"@medusajs/product": patch +"@medusajs/types": patch +--- + +fix(product): Serialize typings diff --git a/packages/product/src/repositories/base.ts b/packages/product/src/repositories/base.ts index ab7b9f3af9..b9f52a5833 100644 --- a/packages/product/src/repositories/base.ts +++ b/packages/product/src/repositories/base.ts @@ -74,16 +74,13 @@ const updateDeletedAtRecursively = async ( } } -const serializer = < - T extends object | object[], - TResult extends object | object[] ->( - data: T, +const serializer = ( + data: any, options?: any -): Promise => { +): Promise => { options ??= {} const result = serialize(data, options) - return Array.isArray(data) ? result : result[0] + return result as unknown as Promise } export abstract class AbstractBaseRepository @@ -110,11 +107,11 @@ export abstract class AbstractBaseRepository return await transactionWrapper.apply(this, arguments) } - serialize< - TData extends object | object[] = object[], - TResult extends object | object[] = object[] - >(data: TData, options?: any): Promise { - return serializer(data, options) + async serialize( + data: any, + options?: any + ): Promise { + return await serializer(data, options) } abstract find(options?: DAL.FindOptions, context?: Context) @@ -203,13 +200,6 @@ export class BaseRepository extends AbstractBaseRepository { super(...arguments) } - serialize< - TData extends object | object[] = object[], - TResult extends object | object[] = object[] - >(data: TData, options?: any): Promise { - return serializer(data, options) - } - create(data: unknown[], context?: Context): Promise { throw new Error("Method not implemented.") } diff --git a/packages/product/src/services/product-module-service.ts b/packages/product/src/services/product-module-service.ts index c58e7ba35a..6997bd1b5c 100644 --- a/packages/product/src/services/product-module-service.ts +++ b/packages/product/src/services/product-module-service.ts @@ -285,10 +285,7 @@ export default class ProductModuleService< async create(data: ProductTypes.CreateProductDTO[], sharedContext?: Context) { const products = await this.create_(data, sharedContext) - return this.baseRepository_.serialize< - TProduct[], - ProductTypes.ProductDTO[] - >(products, { + return this.baseRepository_.serialize(products, { populate: true, }) } @@ -425,10 +422,7 @@ export default class ProductModuleService< ): Promise { const products = await this.softDelete_(productIds, sharedContext) - return this.baseRepository_.serialize< - TProduct[], - ProductTypes.ProductDTO[] - >(products, { + return this.baseRepository_.serialize(products, { populate: true, }) } @@ -447,10 +441,7 @@ export default class ProductModuleService< ): Promise { const products = await this.restore_(productIds, sharedContext) - return this.baseRepository_.serialize< - TProduct[], - ProductTypes.ProductDTO[] - >(products, { + return this.baseRepository_.serialize(products, { populate: true, }) } diff --git a/packages/types/src/dal/repository-service.ts b/packages/types/src/dal/repository-service.ts index 939bda898a..408d5c7edb 100644 --- a/packages/types/src/dal/repository-service.ts +++ b/packages/types/src/dal/repository-service.ts @@ -17,15 +17,10 @@ export interface RepositoryService { } ): Promise - serialize( - data: TData, - options?: TOptions - ): Promise - - serialize( - data: TData[], - options?: TOptions - ): Promise + serialize( + data: any, + options?: any + ): Promise find(options?: FindOptions, context?: Context): Promise