chore: default isQueryable module (#8192)

* chore: default isQueryable module

* fix defaults

* fix
This commit is contained in:
Adrien de Peretti authored and GitHub committed 2024-07-19 16:14:42 +02:00
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,
+26 -6
View File
@@ -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)
+10 -4
View File
@@ -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,