diff --git a/.changeset/stupid-terms-ring.md b/.changeset/stupid-terms-ring.md new file mode 100644 index 0000000000..f3a6244d3b --- /dev/null +++ b/.changeset/stupid-terms-ring.md @@ -0,0 +1,6 @@ +--- +"@medusajs/link-modules": patch +"@medusajs/types": patch +--- + +fix(link-modules): Fix link module initialization diff --git a/packages/link-modules/src/definitions/index.ts b/packages/link-modules/src/definitions/index.ts index 26ce768728..0e2147e2c5 100644 --- a/packages/link-modules/src/definitions/index.ts +++ b/packages/link-modules/src/definitions/index.ts @@ -1,3 +1,4 @@ export * from "./inventory-level-stock-location" export * from "./product-variant-inventory-item" export * from "./product-variant-money-amount" +export * from "./product-shipping-profile" diff --git a/packages/link-modules/src/definitions/product-shipping-profile.ts b/packages/link-modules/src/definitions/product-shipping-profile.ts index 62ad744d31..963fa3d9b2 100644 --- a/packages/link-modules/src/definitions/product-shipping-profile.ts +++ b/packages/link-modules/src/definitions/product-shipping-profile.ts @@ -24,9 +24,10 @@ export const ProductShippingProfile: ModuleJoinerConfig = { }, { serviceName: "shippingProfileService", + isInternalService: true, primaryKey: "id", foreignKey: "profile_id", - alias: "shipping_profile", + alias: "profile", }, ], extends: [ diff --git a/packages/link-modules/src/initialize/index.ts b/packages/link-modules/src/initialize/index.ts index 11e1f74de3..75e73c5356 100644 --- a/packages/link-modules/src/initialize/index.ts +++ b/packages/link-modules/src/initialize/index.ts @@ -90,8 +90,10 @@ export const initialize = async ( continue } } else if ( - !modulesLoadedKeys.includes(primary.serviceName) || - !modulesLoadedKeys.includes(foreign.serviceName) + (!primary.isInternalService && + !modulesLoadedKeys.includes(primary.serviceName)) || + (!foreign.isInternalService && + !modulesLoadedKeys.includes(foreign.serviceName)) ) { continue } @@ -176,8 +178,10 @@ export async function runMigrations( allLinks.add(serviceKey) if ( - !modulesLoadedKeys.includes(primary.serviceName) || - !modulesLoadedKeys.includes(foreign.serviceName) + (!primary.isInternalService && + !modulesLoadedKeys.includes(primary.serviceName)) || + (!foreign.isInternalService && + !modulesLoadedKeys.includes(foreign.serviceName)) ) { continue } diff --git a/packages/types/src/modules-sdk/index.ts b/packages/types/src/modules-sdk/index.ts index b75cf0e6b4..21de0d01bb 100644 --- a/packages/types/src/modules-sdk/index.ts +++ b/packages/types/src/modules-sdk/index.ts @@ -168,6 +168,7 @@ export type ModuleJoinerConfig = Omit< } export declare type ModuleJoinerRelationship = JoinerRelationship & { + isInternalService?: boolean // If true, the relationship is an internal service from the medusa core TODO: Remove when there are no more "internal" services deleteCascade?: boolean // If true, the link joiner will cascade deleting the relationship }