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
+45 -14
View File
@@ -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: MedusaModuleConfig
sharedContainer: MedusaContainer
sharedResourcesConfig?: SharedResources
migrationOnly?: boolean
loaderOnly?: boolean
workerMode?: "shared" | "worker" | "server"
}) {
const {
modulesConfig, modulesConfig,
sharedContainer, sharedContainer,
sharedResourcesConfig,
migrationOnly = false, migrationOnly = false,
loaderOnly = false, loaderOnly = false,
workerMode: "shared" | "worker" | "server" = "server" 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)
} }