chore: default isQueryable module (#8192)
* chore: default isQueryable module * fix defaults * fix
This commit is contained in:
1 parent
4ef268d829
commit
ecc97076b5
3 files changed
+38
-10
No files matched your search
@@ -42,6 +42,7 @@ export const ModulesDefinition: {
|
|||||||
defaultPackage: MODULE_PACKAGE_NAMES[Modules.EVENT_BUS],
|
defaultPackage: MODULE_PACKAGE_NAMES[Modules.EVENT_BUS],
|
||||||
label: upperCaseFirst(ModuleRegistrationName.EVENT_BUS),
|
label: upperCaseFirst(ModuleRegistrationName.EVENT_BUS),
|
||||||
isRequired: true,
|
isRequired: true,
|
||||||
|
isQueryable: false,
|
||||||
dependencies: ["logger"],
|
dependencies: ["logger"],
|
||||||
defaultModuleDeclaration: {
|
defaultModuleDeclaration: {
|
||||||
scope: MODULE_SCOPE.INTERNAL,
|
scope: MODULE_SCOPE.INTERNAL,
|
||||||
@@ -80,6 +81,7 @@ export const ModulesDefinition: {
|
|||||||
defaultPackage: MODULE_PACKAGE_NAMES[Modules.CACHE],
|
defaultPackage: MODULE_PACKAGE_NAMES[Modules.CACHE],
|
||||||
label: upperCaseFirst(ModuleRegistrationName.CACHE),
|
label: upperCaseFirst(ModuleRegistrationName.CACHE),
|
||||||
isRequired: true,
|
isRequired: true,
|
||||||
|
isQueryable: false,
|
||||||
defaultModuleDeclaration: {
|
defaultModuleDeclaration: {
|
||||||
scope: MODULE_SCOPE.INTERNAL,
|
scope: MODULE_SCOPE.INTERNAL,
|
||||||
resources: MODULE_RESOURCE_TYPE.SHARED,
|
resources: MODULE_RESOURCE_TYPE.SHARED,
|
||||||
|
|||||||
@@ -387,9 +387,19 @@ class MedusaModule {
|
|||||||
services[keyName].__definition = resolution.definition
|
services[keyName].__definition = resolution.definition
|
||||||
|
|
||||||
if (resolution.definition.isQueryable) {
|
if (resolution.definition.isQueryable) {
|
||||||
const joinerConfig: ModuleJoinerConfig = await services[
|
let joinerConfig!: ModuleJoinerConfig
|
||||||
keyName
|
|
||||||
].__joinerConfig()
|
try {
|
||||||
|
joinerConfig = await services[keyName].__joinerConfig?.()
|
||||||
|
} catch {
|
||||||
|
// noop
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!joinerConfig) {
|
||||||
|
throw new Error(
|
||||||
|
`Your module is missing a joiner config: ${keyName}. If this module is not queryable, please set { definition: { isQueryable: false } } in your module configuration.`
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
if (!joinerConfig.primaryKeys) {
|
if (!joinerConfig.primaryKeys) {
|
||||||
logger_.warn(
|
logger_.warn(
|
||||||
@@ -513,9 +523,19 @@ class MedusaModule {
|
|||||||
services[keyName].__definition = resolution.definition
|
services[keyName].__definition = resolution.definition
|
||||||
|
|
||||||
if (resolution.definition.isQueryable) {
|
if (resolution.definition.isQueryable) {
|
||||||
const joinerConfig: ModuleJoinerConfig = await services[
|
let joinerConfig!: ModuleJoinerConfig
|
||||||
keyName
|
|
||||||
].__joinerConfig()
|
try {
|
||||||
|
joinerConfig = await services[keyName].__joinerConfig?.()
|
||||||
|
} catch {
|
||||||
|
// noop
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!joinerConfig) {
|
||||||
|
throw new Error(
|
||||||
|
`Your module is missing a joiner config: ${keyName}. If this module is not queryable, please set { definition: { isQueryable: false } } in your module configuration.`
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
services[keyName].__joinerConfig = joinerConfig
|
services[keyName].__joinerConfig = joinerConfig
|
||||||
MedusaModule.setJoinerConfig(keyName, joinerConfig)
|
MedusaModule.setJoinerConfig(keyName, joinerConfig)
|
||||||
|
|||||||
@@ -17,7 +17,9 @@ import {
|
|||||||
} from "@medusajs/types"
|
} from "@medusajs/types"
|
||||||
import {
|
import {
|
||||||
ContainerRegistrationKeys,
|
ContainerRegistrationKeys,
|
||||||
|
isBoolean,
|
||||||
isObject,
|
isObject,
|
||||||
|
isPresent,
|
||||||
upperCaseFirst,
|
upperCaseFirst,
|
||||||
} from "@medusajs/utils"
|
} from "@medusajs/utils"
|
||||||
|
|
||||||
@@ -43,11 +45,15 @@ export function mergeDefaultModules(
|
|||||||
)) {
|
)) {
|
||||||
const def = {} as ModuleDefinition
|
const def = {} as ModuleDefinition
|
||||||
def.key ??= key
|
def.key ??= key
|
||||||
def.registrationName ??= key
|
def.registrationName ??= ModulesDefinition[key]?.registrationName ?? key
|
||||||
def.label ??= upperCaseFirst(key)
|
def.label ??= ModulesDefinition[key]?.label ?? upperCaseFirst(key)
|
||||||
|
def.isQueryable = ModulesDefinition[key]?.isQueryable ?? true
|
||||||
|
|
||||||
const orignalDef = value?.definition
|
const orignalDef = value?.definition ?? ModulesDefinition[key]
|
||||||
if (isObject(orignalDef)) {
|
if (
|
||||||
|
!isBoolean(value) &&
|
||||||
|
(isObject(orignalDef) || !isPresent(value.definition))
|
||||||
|
) {
|
||||||
value.definition = {
|
value.definition = {
|
||||||
...def,
|
...def,
|
||||||
...orignalDef,
|
...orignalDef,
|
||||||
|
|||||||
Reference in new issue
Block a user