chore(medusa, modules-sdk, types): Refactor modules loading from medusa (#5018)
This commit is contained in:
committed by
GitHub
parent
5362bfc348
commit
4fa675ec25
@@ -16,6 +16,7 @@ describe("module definitions loader", () => {
|
||||
registrationName: "testService",
|
||||
defaultPackage: "@medusajs/test-service",
|
||||
label: "TestService",
|
||||
isLegacy: true,
|
||||
isRequired: false,
|
||||
canOverride: true,
|
||||
defaultModuleDeclaration: {
|
||||
|
||||
@@ -11,18 +11,29 @@ import { isObject } from "@medusajs/utils"
|
||||
import resolveCwd from "resolve-cwd"
|
||||
import { MODULE_DEFINITIONS, ModulesDefinition } from "../definitions"
|
||||
|
||||
/**
|
||||
*
|
||||
* @param modules
|
||||
* @param isolatedModules Will be removed once the isolated flag is being removed
|
||||
*/
|
||||
export const registerModules = (
|
||||
modules?: Record<
|
||||
string,
|
||||
| false
|
||||
| string
|
||||
| Partial<InternalModuleDeclaration | ExternalModuleDeclaration>
|
||||
>
|
||||
>,
|
||||
{ loadLegacyOnly } = { loadLegacyOnly: false }
|
||||
): Record<string, ModuleResolution> => {
|
||||
const moduleResolutions = {} as Record<string, ModuleResolution>
|
||||
const projectModules = modules ?? {}
|
||||
|
||||
for (const definition of MODULE_DEFINITIONS) {
|
||||
// Skip non legacy modules
|
||||
if (loadLegacyOnly && !definition.isLegacy) {
|
||||
continue
|
||||
}
|
||||
|
||||
const customConfig = projectModules[definition.key]
|
||||
|
||||
const canSkip =
|
||||
@@ -62,6 +73,12 @@ export const registerMedusaModule = (
|
||||
throw new Error(`Module: ${moduleKey} is not defined.`)
|
||||
}
|
||||
|
||||
if (modDefinition.isLegacy) {
|
||||
throw new Error(
|
||||
`Module: ${moduleKey} is a legacy module. Please use registerModules instead.`
|
||||
)
|
||||
}
|
||||
|
||||
if (
|
||||
isObject(moduleDeclaration) &&
|
||||
moduleDeclaration?.scope === MODULE_SCOPE.EXTERNAL
|
||||
|
||||
Reference in New Issue
Block a user