feat(medusa, modules-sdk, types, utils): Re work modules loading and remove legacy functions (#5496)

This commit is contained in:
Adrien de Peretti
2023-11-02 17:59:13 +01:00
committed by GitHub
parent ca411e54eb
commit 154c9b43bd
39 changed files with 616 additions and 393 deletions
@@ -1,11 +1,6 @@
import {
ConfigModule,
ExternalModuleDeclaration,
InternalModuleDeclaration,
} from "@medusajs/types"
import { ConfigModule } from "@medusajs/types"
import { ModulesDefinition } from "@medusajs/modules-sdk"
import { isObject } from "./is-object"
/**
* Merge the modules config from the medusa-config file with the modules config from medusa package
@@ -13,24 +8,30 @@ import { isObject } from "./is-object"
* @param medusaInternalModulesConfig
*/
export function mergeModulesConfig(
modules: ConfigModule["modules"],
medusaInternalModulesConfig
modules: ConfigModule["modules"] = {},
medusaInternalModulesConfig = {}
) {
for (const [moduleName, moduleConfig] of Object.entries(modules as any)) {
const modules_ = ({ ...modules } as ConfigModule["modules"])!
const userModulesConfigKeys = Object.keys(modules)
const internalModulesConfigKeys = Object.keys(medusaInternalModulesConfig)
const allModulesKeys = new Set([
...userModulesConfigKeys,
...internalModulesConfigKeys,
])
for (const moduleName of allModulesKeys) {
const internalModuleConfig = medusaInternalModulesConfig[moduleName]
const moduleDefinition = ModulesDefinition[moduleName]
if (moduleDefinition?.isLegacy) {
continue
}
const isModuleEnabled = moduleConfig === true || isObject(moduleConfig)
if (!isModuleEnabled) {
delete medusaInternalModulesConfig[moduleName]
} else {
medusaInternalModulesConfig[moduleName] = moduleConfig as Partial<
InternalModuleDeclaration | ExternalModuleDeclaration
>
}
modules_[moduleName] ??= internalModuleConfig
}
return modules_
}