chore: remove container registration name (#9137)

This commit is contained in:
Carlos R. L. Rodrigues
2024-09-16 06:22:24 -03:00
committed by GitHub
parent ab4a422fc8
commit 950cf9af79
421 changed files with 1528 additions and 2496 deletions

View File

@@ -1,9 +1,5 @@
import { ModuleDefinition } from "@medusajs/types"
import {
ModuleRegistrationName,
Modules,
upperCaseFirst,
} from "@medusajs/utils"
import { Modules, upperCaseFirst } from "@medusajs/utils"
import { MODULE_RESOURCE_TYPE, MODULE_SCOPE } from "./types"
export const MODULE_PACKAGE_NAMES = {
@@ -38,9 +34,8 @@ export const ModulesDefinition: {
} = {
[Modules.EVENT_BUS]: {
key: Modules.EVENT_BUS,
registrationName: ModuleRegistrationName.EVENT_BUS,
defaultPackage: MODULE_PACKAGE_NAMES[Modules.EVENT_BUS],
label: upperCaseFirst(ModuleRegistrationName.EVENT_BUS),
label: upperCaseFirst(Modules.EVENT_BUS),
isRequired: true,
isQueryable: false,
dependencies: ["logger"],
@@ -51,12 +46,11 @@ export const ModulesDefinition: {
},
[Modules.STOCK_LOCATION]: {
key: Modules.STOCK_LOCATION,
registrationName: ModuleRegistrationName.STOCK_LOCATION,
defaultPackage: false,
label: upperCaseFirst(ModuleRegistrationName.STOCK_LOCATION),
label: upperCaseFirst(Modules.STOCK_LOCATION),
isRequired: false,
isQueryable: true,
dependencies: [ModuleRegistrationName.EVENT_BUS],
dependencies: [Modules.EVENT_BUS],
defaultModuleDeclaration: {
scope: MODULE_SCOPE.INTERNAL,
resources: MODULE_RESOURCE_TYPE.SHARED,
@@ -64,12 +58,11 @@ export const ModulesDefinition: {
},
[Modules.INVENTORY]: {
key: Modules.INVENTORY,
registrationName: ModuleRegistrationName.INVENTORY,
defaultPackage: false,
label: upperCaseFirst(ModuleRegistrationName.INVENTORY),
label: upperCaseFirst(Modules.INVENTORY),
isRequired: false,
isQueryable: true,
dependencies: [ModuleRegistrationName.EVENT_BUS],
dependencies: [Modules.EVENT_BUS],
defaultModuleDeclaration: {
scope: MODULE_SCOPE.INTERNAL,
resources: MODULE_RESOURCE_TYPE.SHARED,
@@ -77,9 +70,8 @@ export const ModulesDefinition: {
},
[Modules.CACHE]: {
key: Modules.CACHE,
registrationName: ModuleRegistrationName.CACHE,
defaultPackage: MODULE_PACKAGE_NAMES[Modules.CACHE],
label: upperCaseFirst(ModuleRegistrationName.CACHE),
label: upperCaseFirst(Modules.CACHE),
isRequired: true,
isQueryable: false,
defaultModuleDeclaration: {
@@ -89,12 +81,11 @@ export const ModulesDefinition: {
},
[Modules.PRODUCT]: {
key: Modules.PRODUCT,
registrationName: ModuleRegistrationName.PRODUCT,
defaultPackage: false,
label: upperCaseFirst(ModuleRegistrationName.PRODUCT),
label: upperCaseFirst(Modules.PRODUCT),
isRequired: false,
isQueryable: true,
dependencies: [ModuleRegistrationName.EVENT_BUS, "logger"],
dependencies: [Modules.EVENT_BUS, "logger"],
defaultModuleDeclaration: {
scope: MODULE_SCOPE.INTERNAL,
resources: MODULE_RESOURCE_TYPE.SHARED,
@@ -102,12 +93,11 @@ export const ModulesDefinition: {
},
[Modules.PRICING]: {
key: Modules.PRICING,
registrationName: ModuleRegistrationName.PRICING,
defaultPackage: false,
label: upperCaseFirst(ModuleRegistrationName.PRICING),
label: upperCaseFirst(Modules.PRICING),
isRequired: false,
isQueryable: true,
dependencies: [ModuleRegistrationName.EVENT_BUS, "logger"],
dependencies: [Modules.EVENT_BUS, "logger"],
defaultModuleDeclaration: {
scope: MODULE_SCOPE.INTERNAL,
resources: MODULE_RESOURCE_TYPE.SHARED,
@@ -115,9 +105,8 @@ export const ModulesDefinition: {
},
[Modules.PROMOTION]: {
key: Modules.PROMOTION,
registrationName: ModuleRegistrationName.PROMOTION,
defaultPackage: false,
label: upperCaseFirst(ModuleRegistrationName.PROMOTION),
label: upperCaseFirst(Modules.PROMOTION),
isRequired: false,
isQueryable: true,
dependencies: ["logger"],
@@ -128,9 +117,8 @@ export const ModulesDefinition: {
},
[Modules.AUTH]: {
key: Modules.AUTH,
registrationName: ModuleRegistrationName.AUTH,
defaultPackage: false,
label: upperCaseFirst(ModuleRegistrationName.AUTH),
label: upperCaseFirst(Modules.AUTH),
isRequired: false,
isQueryable: true,
dependencies: ["logger"],
@@ -141,9 +129,8 @@ export const ModulesDefinition: {
},
[Modules.WORKFLOW_ENGINE]: {
key: Modules.WORKFLOW_ENGINE,
registrationName: ModuleRegistrationName.WORKFLOW_ENGINE,
defaultPackage: false,
label: upperCaseFirst(ModuleRegistrationName.WORKFLOW_ENGINE),
label: upperCaseFirst(Modules.WORKFLOW_ENGINE),
isRequired: false,
isQueryable: true,
dependencies: ["logger"],
@@ -155,9 +142,8 @@ export const ModulesDefinition: {
},
[Modules.SALES_CHANNEL]: {
key: Modules.SALES_CHANNEL,
registrationName: ModuleRegistrationName.SALES_CHANNEL,
defaultPackage: false,
label: upperCaseFirst(ModuleRegistrationName.SALES_CHANNEL),
label: upperCaseFirst(Modules.SALES_CHANNEL),
isRequired: false,
isQueryable: true,
dependencies: ["logger"],
@@ -168,12 +154,11 @@ export const ModulesDefinition: {
},
[Modules.FULFILLMENT]: {
key: Modules.FULFILLMENT,
registrationName: ModuleRegistrationName.FULFILLMENT,
defaultPackage: false,
label: upperCaseFirst(ModuleRegistrationName.FULFILLMENT),
label: upperCaseFirst(Modules.FULFILLMENT),
isRequired: false,
isQueryable: true,
dependencies: ["logger", ModuleRegistrationName.EVENT_BUS],
dependencies: ["logger", Modules.EVENT_BUS],
defaultModuleDeclaration: {
scope: MODULE_SCOPE.INTERNAL,
resources: MODULE_RESOURCE_TYPE.SHARED,
@@ -181,9 +166,8 @@ export const ModulesDefinition: {
},
[Modules.CART]: {
key: Modules.CART,
registrationName: ModuleRegistrationName.CART,
defaultPackage: false,
label: upperCaseFirst(ModuleRegistrationName.CART),
label: upperCaseFirst(Modules.CART),
isRequired: false,
isQueryable: true,
dependencies: ["logger"],
@@ -194,9 +178,8 @@ export const ModulesDefinition: {
},
[Modules.CUSTOMER]: {
key: Modules.CUSTOMER,
registrationName: ModuleRegistrationName.CUSTOMER,
defaultPackage: false,
label: upperCaseFirst(ModuleRegistrationName.CUSTOMER),
label: upperCaseFirst(Modules.CUSTOMER),
isRequired: false,
isQueryable: true,
dependencies: ["logger"],
@@ -207,9 +190,8 @@ export const ModulesDefinition: {
},
[Modules.PAYMENT]: {
key: Modules.PAYMENT,
registrationName: ModuleRegistrationName.PAYMENT,
defaultPackage: false,
label: upperCaseFirst(ModuleRegistrationName.PAYMENT),
label: upperCaseFirst(Modules.PAYMENT),
isRequired: false,
isQueryable: true,
dependencies: ["logger"],
@@ -220,12 +202,11 @@ export const ModulesDefinition: {
},
[Modules.USER]: {
key: Modules.USER,
registrationName: ModuleRegistrationName.USER,
defaultPackage: false,
label: upperCaseFirst(ModuleRegistrationName.USER),
label: upperCaseFirst(Modules.USER),
isRequired: false,
isQueryable: true,
dependencies: [ModuleRegistrationName.EVENT_BUS, "logger"],
dependencies: [Modules.EVENT_BUS, "logger"],
defaultModuleDeclaration: {
scope: MODULE_SCOPE.INTERNAL,
resources: MODULE_RESOURCE_TYPE.SHARED,
@@ -233,9 +214,8 @@ export const ModulesDefinition: {
},
[Modules.REGION]: {
key: Modules.REGION,
registrationName: ModuleRegistrationName.REGION,
defaultPackage: false,
label: upperCaseFirst(ModuleRegistrationName.REGION),
label: upperCaseFirst(Modules.REGION),
isRequired: false,
isQueryable: true,
dependencies: ["logger"],
@@ -246,12 +226,11 @@ export const ModulesDefinition: {
},
[Modules.ORDER]: {
key: Modules.ORDER,
registrationName: ModuleRegistrationName.ORDER,
defaultPackage: false,
label: upperCaseFirst(ModuleRegistrationName.ORDER),
label: upperCaseFirst(Modules.ORDER),
isRequired: false,
isQueryable: true,
dependencies: ["logger", ModuleRegistrationName.EVENT_BUS],
dependencies: ["logger", Modules.EVENT_BUS],
defaultModuleDeclaration: {
scope: MODULE_SCOPE.INTERNAL,
resources: MODULE_RESOURCE_TYPE.SHARED,
@@ -259,12 +238,11 @@ export const ModulesDefinition: {
},
[Modules.TAX]: {
key: Modules.TAX,
registrationName: ModuleRegistrationName.TAX,
defaultPackage: false,
label: upperCaseFirst(ModuleRegistrationName.TAX),
label: upperCaseFirst(Modules.TAX),
isRequired: false,
isQueryable: true,
dependencies: ["logger", ModuleRegistrationName.EVENT_BUS],
dependencies: ["logger", Modules.EVENT_BUS],
defaultModuleDeclaration: {
scope: MODULE_SCOPE.INTERNAL,
resources: MODULE_RESOURCE_TYPE.SHARED,
@@ -272,9 +250,8 @@ export const ModulesDefinition: {
},
[Modules.API_KEY]: {
key: Modules.API_KEY,
registrationName: ModuleRegistrationName.API_KEY,
defaultPackage: false,
label: upperCaseFirst(ModuleRegistrationName.API_KEY),
label: upperCaseFirst(Modules.API_KEY),
isRequired: false,
isQueryable: true,
dependencies: ["logger"],
@@ -285,9 +262,8 @@ export const ModulesDefinition: {
},
[Modules.STORE]: {
key: Modules.STORE,
registrationName: ModuleRegistrationName.STORE,
defaultPackage: false,
label: upperCaseFirst(ModuleRegistrationName.STORE),
label: upperCaseFirst(Modules.STORE),
isRequired: false,
isQueryable: true,
dependencies: ["logger"],
@@ -298,9 +274,8 @@ export const ModulesDefinition: {
},
[Modules.CURRENCY]: {
key: Modules.CURRENCY,
registrationName: ModuleRegistrationName.CURRENCY,
defaultPackage: false,
label: upperCaseFirst(ModuleRegistrationName.CURRENCY),
label: upperCaseFirst(Modules.CURRENCY),
isRequired: false,
isQueryable: true,
dependencies: ["logger"],
@@ -311,9 +286,8 @@ export const ModulesDefinition: {
},
[Modules.FILE]: {
key: Modules.FILE,
registrationName: ModuleRegistrationName.FILE,
defaultPackage: false,
label: upperCaseFirst(ModuleRegistrationName.FILE),
label: upperCaseFirst(Modules.FILE),
isRequired: false,
isQueryable: true,
dependencies: ["logger"],
@@ -324,12 +298,11 @@ export const ModulesDefinition: {
},
[Modules.NOTIFICATION]: {
key: Modules.NOTIFICATION,
registrationName: ModuleRegistrationName.NOTIFICATION,
defaultPackage: false,
label: upperCaseFirst(ModuleRegistrationName.NOTIFICATION),
label: upperCaseFirst(Modules.NOTIFICATION),
isRequired: false,
isQueryable: true,
dependencies: [ModuleRegistrationName.EVENT_BUS, "logger"],
dependencies: [Modules.EVENT_BUS, "logger"],
defaultModuleDeclaration: {
scope: MODULE_SCOPE.INTERNAL,
resources: MODULE_RESOURCE_TYPE.SHARED,

View File

@@ -9,7 +9,6 @@ const mockRegisterMedusaModule = jest.fn().mockImplementation(() => {
moduleKey: {
definition: {
key: "moduleKey",
registrationName: "moduleKey",
},
moduleDeclaration: {
scope: MODULE_SCOPE.INTERNAL,

View File

@@ -24,7 +24,6 @@ describe("modules loader", () => {
testService: {
resolutionPath: false,
definition: {
registrationName: "testService",
key: "testService",
defaultPackage: "testService",
label: "TestService",
@@ -53,7 +52,6 @@ describe("modules loader", () => {
testService: {
resolutionPath: "@modules/default",
definition: {
registrationName: "testService",
key: "testService",
defaultPackage: "testService",
label: "TestService",
@@ -94,7 +92,6 @@ describe("modules loader", () => {
testService: {
resolutionPath: "@modules/brokenloader",
definition: {
registrationName: "testService",
key: "testService",
defaultPackage: "testService",
label: "TestService",
@@ -120,7 +117,6 @@ describe("modules loader", () => {
testService: {
resolutionPath: "@modules/no-service",
definition: {
registrationName: "testService",
key: "testService",
defaultPackage: "testService",
label: "TestService",
@@ -148,7 +144,6 @@ describe("modules loader", () => {
testService: {
resolutionPath: "@modules/no-service",
definition: {
registrationName: "testService",
key: "testService",
defaultPackage: "testService",
label: "TestService",
@@ -178,7 +173,6 @@ describe("modules loader", () => {
testService: {
resolutionPath: "@medusajs/testService",
definition: {
registrationName: "testService",
key: "testService",
defaultPackage: "@medusajs/testService",
label: "TestService",
@@ -210,7 +204,6 @@ describe("modules loader", () => {
testService: {
resolutionPath: "@modules/no-service",
definition: {
registrationName: "testService",
key: "testService",
defaultPackage: "testService",
label: "TestService",
@@ -242,7 +235,6 @@ describe("modules loader", () => {
testService: {
resolutionPath: "@modules/no-service",
definition: {
registrationName: "testService",
key: "testService",
defaultPackage: "testService",
label: "TestService",

View File

@@ -9,7 +9,6 @@ jest.mock("resolve-cwd", () => jest.fn(() => RESOLVED_PACKAGE))
describe("module definitions loader", () => {
const defaultDefinition: ModuleDefinition = {
key: "testService",
registrationName: "testService",
defaultPackage: "@medusajs/test-service",
label: "TestService",
isRequired: false,
@@ -63,7 +62,6 @@ describe("module definitions loader", () => {
definition: expect.objectContaining({
key: "customModulesABC",
label: "Custom: customModulesABC",
registrationName: "customModulesABC",
}),
moduleDeclaration: {
resources: "shared",

View File

@@ -49,10 +49,7 @@ async function loadModule(
throw new Error(`Module definition is missing property "key"`)
}
modDefinition.registrationName ??= modDefinition.key
const registrationName = modDefinition.registrationName
const keyName = modDefinition.key
const { scope, resources } = resolution.moduleDeclaration ?? ({} as any)
const canSkip =
@@ -72,7 +69,7 @@ async function loadModule(
message = `The module ${resolution.definition.label} is missing its resources config`
}
container.register(registrationName, asValue(undefined))
container.register(keyName, asValue(undefined))
return {
error: new Error(message),
@@ -80,7 +77,7 @@ async function loadModule(
}
if (resolution.resolutionPath === false) {
container.register(registrationName, asValue(undefined))
container.register(keyName, asValue(undefined))
return
}

View File

@@ -84,7 +84,6 @@ function getCustomModuleResolution(
isRequired: false,
defaultPackage: "",
dependencies,
registrationName: key,
defaultModuleDeclaration: {
resources: MODULE_RESOURCE_TYPE.SHARED,
scope: MODULE_SCOPE.INTERNAL,

View File

@@ -22,7 +22,6 @@ describe("load internal - load resources", () => {
),
definition: {
key: "module-with-dml-mixed-without-joiner-config",
registrationName: "service",
label: "Module with DML mixed without joiner config",
defaultPackage: false,
defaultModuleDeclaration: {
@@ -103,7 +102,6 @@ describe("load internal - load resources", () => {
),
definition: {
key: "module-with-dml-without-joiner-config",
registrationName: "service",
label: "Module with DML without joiner config",
defaultPackage: false,
defaultModuleDeclaration: {
@@ -184,7 +182,6 @@ describe("load internal - load resources", () => {
),
definition: {
key: "module-without-joiner-config",
registrationName: "service",
label: "Module without joiner config",
defaultPackage: false,
defaultModuleDeclaration: {
@@ -264,7 +261,6 @@ describe("load internal - load resources", () => {
),
definition: {
key: "module-without-joiner-config",
registrationName: "service",
label: "Module without joiner config",
defaultPackage: false,
defaultModuleDeclaration: {

View File

@@ -11,11 +11,11 @@ import {
} from "@medusajs/types"
import {
ContainerRegistrationKeys,
createMedusaContainer,
defineJoinerConfig,
DmlEntity,
MedusaModuleType,
ModulesSdkUtils,
createMedusaContainer,
defineJoinerConfig,
toMikroOrmEntities,
} from "@medusajs/utils"
import { asFunction, asValue } from "awilix"
@@ -45,9 +45,9 @@ export async function loadInternalModule(
migrationOnly?: boolean,
loaderOnly?: boolean
): Promise<{ error?: Error } | void> {
const registrationName = !loaderOnly
? resolution.definition.registrationName
: resolution.definition.registrationName + "__loaderOnly"
const keyName = !loaderOnly
? resolution.definition.key
: resolution.definition.key + "__loaderOnly"
const { resources } =
resolution.moduleDeclaration as InternalModuleDeclaration
@@ -95,7 +95,7 @@ export async function loadInternalModule(
if (!loadedModule?.service && !moduleResources.moduleService) {
container.register({
[registrationName]: asValue(undefined),
[keyName]: asValue(undefined),
})
return {
@@ -112,8 +112,9 @@ export async function loadInternalModule(
const moduleService = {
__joinerConfig: moduleService_.prototype.__joinerConfig,
}
container.register({
[registrationName]: asValue(moduleService),
[keyName]: asValue(moduleService),
})
return
}
@@ -155,7 +156,7 @@ export async function loadInternalModule(
logger,
resolution,
loaderOnly,
registrationName,
keyName,
})
if (error) {
@@ -165,7 +166,7 @@ export async function loadInternalModule(
const moduleService = moduleResources.moduleService ?? loadedModule.service
container.register({
[registrationName]: asFunction((cradle) => {
[keyName]: asFunction((cradle) => {
;(moduleService as any).__type = MedusaModuleType
return new moduleService(
localContainer.cradle,
@@ -177,7 +178,7 @@ export async function loadInternalModule(
if (loaderOnly) {
// The expectation is only to run the loader as standalone, so we do not need to register the service and we need to cleanup all services
const service = container.resolve<IModuleService>(registrationName)
const service = container.resolve<IModuleService>(keyName)
await service.__hooks?.onApplicationPrepareShutdown?.()
await service.__hooks?.onApplicationShutdown?.()
}
@@ -348,14 +349,7 @@ export async function loadResources(
async function runLoaders(
loaders: Function[] = [],
{
localContainer,
container,
logger,
resolution,
loaderOnly,
registrationName,
}
{ localContainer, container, logger, resolution, loaderOnly, keyName }
): Promise<void | { error: Error }> {
try {
for (const loader of loaders) {
@@ -371,7 +365,7 @@ async function runLoaders(
}
} catch (err) {
container.register({
[registrationName]: asValue(undefined),
[keyName]: asValue(undefined),
})
return {

View File

@@ -18,13 +18,12 @@ import {
} from "@medusajs/types"
import {
ContainerRegistrationKeys,
MedusaError,
Modules,
ModulesSdkUtils,
createMedusaContainer,
isObject,
isString,
MedusaError,
ModuleRegistrationName,
Modules,
ModulesSdkUtils,
promiseAll,
} from "@medusajs/utils"
import type { Knex } from "@mikro-orm/knex"
@@ -37,7 +36,7 @@ import {
RegisterModuleJoinerConfig,
} from "./medusa-module"
import { RemoteLink } from "./remote-link"
import { createQuery, RemoteQuery } from "./remote-query"
import { RemoteQuery, createQuery } from "./remote-query"
import { MODULE_RESOURCE_TYPE, MODULE_SCOPE } from "./types"
import { cleanGraphQLSchema } from "./utils"
@@ -142,7 +141,7 @@ export async function loadModules(
const service = loaded[moduleName]
sharedContainer.register({
[service.__definition.registrationName]: asValue(service),
[service.__definition.key]: asValue(service),
})
if (allModules[moduleName] && !Array.isArray(allModules[moduleName])) {
@@ -384,10 +383,12 @@ async function MedusaApp_({
}
// Share Event bus with link modules
injectedDependencies[ModuleRegistrationName.EVENT_BUS] =
sharedContainer_.resolve(ModuleRegistrationName.EVENT_BUS, {
injectedDependencies[Modules.EVENT_BUS] = sharedContainer_.resolve(
Modules.EVENT_BUS,
{
allowUnregistered: true,
})
}
)
linkModules ??= []
if (!Array.isArray(linkModules)) {

View File

@@ -382,9 +382,8 @@ class MedusaModule {
moduleResolutions
) as ModuleResolution[]) {
const keyName = resolution.definition.key
const registrationName = resolution.definition.registrationName
services[keyName] = container.resolve(registrationName)
services[keyName] = container.resolve(keyName)
services[keyName].__definition = resolution.definition
if (resolution.definition.isQueryable) {
@@ -466,7 +465,6 @@ class MedusaModule {
const moduleDefinition: ModuleDefinition = {
key: definition.key,
registrationName: definition.key,
dependencies: definition.dependencies,
defaultPackage: "",
label: definition.label,
@@ -518,9 +516,8 @@ class MedusaModule {
moduleResolutions
) as ModuleResolution[]) {
const keyName = resolution.definition.key
const registrationName = resolution.definition.registrationName
services[keyName] = container.resolve(registrationName)
services[keyName] = container.resolve(keyName)
services[keyName].__definition = resolution.definition
if (resolution.definition.isQueryable) {