fix(modules-sdk): default db options (#9313)
This commit is contained in:
@@ -18,14 +18,14 @@ import {
|
|||||||
} from "@medusajs/types"
|
} from "@medusajs/types"
|
||||||
import {
|
import {
|
||||||
ContainerRegistrationKeys,
|
ContainerRegistrationKeys,
|
||||||
createMedusaContainer,
|
|
||||||
dynamicImport,
|
|
||||||
GraphQLUtils,
|
GraphQLUtils,
|
||||||
isObject,
|
|
||||||
isString,
|
|
||||||
MedusaError,
|
MedusaError,
|
||||||
Modules,
|
Modules,
|
||||||
ModulesSdkUtils,
|
ModulesSdkUtils,
|
||||||
|
createMedusaContainer,
|
||||||
|
dynamicImport,
|
||||||
|
isObject,
|
||||||
|
isString,
|
||||||
promiseAll,
|
promiseAll,
|
||||||
} from "@medusajs/utils"
|
} from "@medusajs/utils"
|
||||||
import type { Knex } from "@mikro-orm/knex"
|
import type { Knex } from "@mikro-orm/knex"
|
||||||
@@ -37,7 +37,7 @@ import {
|
|||||||
RegisterModuleJoinerConfig,
|
RegisterModuleJoinerConfig,
|
||||||
} from "./medusa-module"
|
} from "./medusa-module"
|
||||||
import { RemoteLink } from "./remote-link"
|
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 { MODULE_RESOURCE_TYPE, MODULE_SCOPE } from "./types"
|
||||||
|
|
||||||
const LinkModulePackage = MODULE_PACKAGE_NAMES[Modules.LINK]
|
const LinkModulePackage = MODULE_PACKAGE_NAMES[Modules.LINK]
|
||||||
@@ -85,13 +85,23 @@ export type SharedResources = {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function loadModules(
|
export async function loadModules(args: {
|
||||||
modulesConfig,
|
modulesConfig: MedusaModuleConfig
|
||||||
sharedContainer,
|
sharedContainer: MedusaContainer
|
||||||
migrationOnly = false,
|
sharedResourcesConfig?: SharedResources
|
||||||
loaderOnly = false,
|
migrationOnly?: boolean
|
||||||
workerMode: "shared" | "worker" | "server" = "server"
|
loaderOnly?: boolean
|
||||||
) {
|
workerMode?: "shared" | "worker" | "server"
|
||||||
|
}) {
|
||||||
|
const {
|
||||||
|
modulesConfig,
|
||||||
|
sharedContainer,
|
||||||
|
sharedResourcesConfig,
|
||||||
|
migrationOnly = false,
|
||||||
|
loaderOnly = false,
|
||||||
|
workerMode = "server",
|
||||||
|
} = args
|
||||||
|
|
||||||
const allModules = {}
|
const allModules = {}
|
||||||
|
|
||||||
await Promise.all(
|
await Promise.all(
|
||||||
@@ -128,6 +138,18 @@ export async function loadModules(
|
|||||||
declaration.resources = MODULE_RESOURCE_TYPE.SHARED
|
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({
|
const loaded = (await MedusaModule.bootstrap({
|
||||||
moduleKey: moduleName,
|
moduleKey: moduleName,
|
||||||
defaultPath: path,
|
defaultPath: path,
|
||||||
@@ -348,13 +370,14 @@ async function MedusaApp_({
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
const allModules = await loadModules(
|
const allModules = await loadModules({
|
||||||
modules,
|
modulesConfig: modules,
|
||||||
sharedContainer_,
|
sharedContainer: sharedContainer_,
|
||||||
|
sharedResourcesConfig,
|
||||||
migrationOnly,
|
migrationOnly,
|
||||||
loaderOnly,
|
loaderOnly,
|
||||||
workerMode
|
workerMode,
|
||||||
)
|
})
|
||||||
|
|
||||||
if (loaderOnly) {
|
if (loaderOnly) {
|
||||||
async function query(...args: any[]) {
|
async function query(...args: any[]) {
|
||||||
@@ -457,11 +480,18 @@ async function MedusaApp_({
|
|||||||
}
|
}
|
||||||
|
|
||||||
for (const { resolution: moduleResolution } of moduleResolutions) {
|
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 ??= {}
|
||||||
moduleResolution.options.database = {
|
moduleResolution.options.database = {
|
||||||
...(sharedResourcesConfig?.database ?? {}),
|
...(sharedResourcesConfig?.database ?? {}),
|
||||||
}
|
}
|
||||||
|
;(moduleResolution as any).options.database.debug ??=
|
||||||
|
sharedResourcesConfig?.database?.debug
|
||||||
}
|
}
|
||||||
|
|
||||||
const migrationOptions: MigrationOptions = {
|
const migrationOptions: MigrationOptions = {
|
||||||
@@ -517,6 +547,7 @@ async function MedusaApp_({
|
|||||||
options.database ??= {
|
options.database ??= {
|
||||||
...sharedResourcesConfig?.database,
|
...sharedResourcesConfig?.database,
|
||||||
}
|
}
|
||||||
|
options.database.debug ??= sharedResourcesConfig?.database?.debug
|
||||||
|
|
||||||
return getMigrationPlanner(options, linkModules)
|
return getMigrationPlanner(options, linkModules)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user