fix(modules-sdk): default db options (#9313)

This commit is contained in:
Carlos R. L. Rodrigues
2024-09-25 19:44:12 -03:00
committed by GitHub
parent 3533aa86e8
commit 11d8264062
+49 -18
View File
@@ -18,14 +18,14 @@ import {
} from "@medusajs/types"
import {
ContainerRegistrationKeys,
createMedusaContainer,
dynamicImport,
GraphQLUtils,
isObject,
isString,
MedusaError,
Modules,
ModulesSdkUtils,
createMedusaContainer,
dynamicImport,
isObject,
isString,
promiseAll,
} from "@medusajs/utils"
import type { Knex } from "@mikro-orm/knex"
@@ -37,7 +37,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"
const LinkModulePackage = MODULE_PACKAGE_NAMES[Modules.LINK]
@@ -85,13 +85,23 @@ export type SharedResources = {
}
}
export async function loadModules(
modulesConfig,
sharedContainer,
migrationOnly = false,
loaderOnly = false,
workerMode: "shared" | "worker" | "server" = "server"
) {
export async function loadModules(args: {
modulesConfig: MedusaModuleConfig
sharedContainer: MedusaContainer
sharedResourcesConfig?: SharedResources
migrationOnly?: boolean
loaderOnly?: boolean
workerMode?: "shared" | "worker" | "server"
}) {
const {
modulesConfig,
sharedContainer,
sharedResourcesConfig,
migrationOnly = false,
loaderOnly = false,
workerMode = "server",
} = args
const allModules = {}
await Promise.all(
@@ -128,6 +138,18 @@ export async function loadModules(
declaration.resources = MODULE_RESOURCE_TYPE.SHARED
}
if (
declaration.scope === MODULE_SCOPE.INTERNAL &&
declaration.resources === MODULE_RESOURCE_TYPE.SHARED
) {
declaration.options ??= {}
declaration.options.database ??= {
...sharedResourcesConfig?.database,
}
declaration.options.database.debug ??=
sharedResourcesConfig?.database?.debug
}
const loaded = (await MedusaModule.bootstrap({
moduleKey: moduleName,
defaultPath: path,
@@ -348,13 +370,14 @@ async function MedusaApp_({
})
}
const allModules = await loadModules(
modules,
sharedContainer_,
const allModules = await loadModules({
modulesConfig: modules,
sharedContainer: sharedContainer_,
sharedResourcesConfig,
migrationOnly,
loaderOnly,
workerMode
)
workerMode,
})
if (loaderOnly) {
async function query(...args: any[]) {
@@ -457,11 +480,18 @@ async function MedusaApp_({
}
for (const { resolution: moduleResolution } of moduleResolutions) {
if (!moduleResolution.options?.database) {
if (
!moduleResolution.options?.database &&
moduleResolution.moduleDeclaration?.scope === MODULE_SCOPE.INTERNAL &&
moduleResolution.moduleDeclaration?.resources ===
MODULE_RESOURCE_TYPE.SHARED
) {
moduleResolution.options ??= {}
moduleResolution.options.database = {
...(sharedResourcesConfig?.database ?? {}),
}
;(moduleResolution as any).options.database.debug ??=
sharedResourcesConfig?.database?.debug
}
const migrationOptions: MigrationOptions = {
@@ -517,6 +547,7 @@ async function MedusaApp_({
options.database ??= {
...sharedResourcesConfig?.database,
}
options.database.debug ??= sharedResourcesConfig?.database?.debug
return getMigrationPlanner(options, linkModules)
}