What: - Setups the skeleton for pricing module - Creates service/model/repository for currency model - Setups types - Setups DB - Moved some utils to a common place RESOLVES CORE-1477 RESOLVES CORE-1476
123 lines
3.6 KiB
TypeScript
123 lines
3.6 KiB
TypeScript
import {
|
|
MODULE_RESOURCE_TYPE,
|
|
MODULE_SCOPE,
|
|
ModuleDefinition,
|
|
} from "@medusajs/types"
|
|
|
|
export enum Modules {
|
|
EVENT_BUS = "eventBus",
|
|
STOCK_LOCATION = "stockLocationService",
|
|
INVENTORY = "inventoryService",
|
|
CACHE = "cacheService",
|
|
PRODUCT = "productService",
|
|
PRICING = "pricingService",
|
|
}
|
|
|
|
export enum ModuleRegistrationName {
|
|
EVENT_BUS = "eventBusModuleService",
|
|
STOCK_LOCATION = "stockLocationService",
|
|
INVENTORY = "inventoryService",
|
|
CACHE = "cacheService",
|
|
PRODUCT = "productModuleService",
|
|
PRICING = "pricingModuleService",
|
|
}
|
|
|
|
export const MODULE_PACKAGE_NAMES = {
|
|
[Modules.PRODUCT]: "@medusajs/product",
|
|
[Modules.EVENT_BUS]: "@medusajs/event-bus-local",
|
|
[Modules.STOCK_LOCATION]: "@medusajs/stock-location",
|
|
[Modules.INVENTORY]: "@medusajs/inventory",
|
|
[Modules.CACHE]: "@medusajs/cache-inmemory",
|
|
[Modules.PRICING]: "@medusajs/pricing",
|
|
}
|
|
|
|
export const ModulesDefinition: { [key: string | Modules]: ModuleDefinition } =
|
|
{
|
|
[Modules.EVENT_BUS]: {
|
|
key: Modules.EVENT_BUS,
|
|
registrationName: ModuleRegistrationName.EVENT_BUS,
|
|
defaultPackage: MODULE_PACKAGE_NAMES[Modules.EVENT_BUS],
|
|
label: "EventBusModuleService",
|
|
canOverride: true,
|
|
isRequired: true,
|
|
dependencies: ["logger"],
|
|
defaultModuleDeclaration: {
|
|
scope: MODULE_SCOPE.INTERNAL,
|
|
resources: MODULE_RESOURCE_TYPE.SHARED,
|
|
},
|
|
},
|
|
[Modules.STOCK_LOCATION]: {
|
|
key: Modules.STOCK_LOCATION,
|
|
registrationName: ModuleRegistrationName.STOCK_LOCATION,
|
|
defaultPackage: false,
|
|
label: "StockLocationService",
|
|
isRequired: false,
|
|
canOverride: true,
|
|
isQueryable: true,
|
|
dependencies: ["eventBusService"],
|
|
defaultModuleDeclaration: {
|
|
scope: MODULE_SCOPE.INTERNAL,
|
|
resources: MODULE_RESOURCE_TYPE.SHARED,
|
|
},
|
|
},
|
|
[Modules.INVENTORY]: {
|
|
key: Modules.INVENTORY,
|
|
registrationName: ModuleRegistrationName.INVENTORY,
|
|
defaultPackage: false,
|
|
label: "InventoryService",
|
|
isRequired: false,
|
|
canOverride: true,
|
|
isQueryable: true,
|
|
dependencies: ["eventBusService"],
|
|
defaultModuleDeclaration: {
|
|
scope: MODULE_SCOPE.INTERNAL,
|
|
resources: MODULE_RESOURCE_TYPE.SHARED,
|
|
},
|
|
},
|
|
[Modules.CACHE]: {
|
|
key: Modules.CACHE,
|
|
registrationName: ModuleRegistrationName.CACHE,
|
|
defaultPackage: MODULE_PACKAGE_NAMES[Modules.CACHE],
|
|
label: "CacheService",
|
|
isRequired: true,
|
|
canOverride: true,
|
|
defaultModuleDeclaration: {
|
|
scope: MODULE_SCOPE.INTERNAL,
|
|
resources: MODULE_RESOURCE_TYPE.SHARED,
|
|
},
|
|
},
|
|
[Modules.PRODUCT]: {
|
|
key: Modules.PRODUCT,
|
|
registrationName: ModuleRegistrationName.PRODUCT,
|
|
defaultPackage: false,
|
|
label: "ProductModuleService",
|
|
isRequired: false,
|
|
canOverride: true,
|
|
isQueryable: true,
|
|
dependencies: [ModuleRegistrationName.EVENT_BUS, "logger"],
|
|
defaultModuleDeclaration: {
|
|
scope: MODULE_SCOPE.INTERNAL,
|
|
resources: MODULE_RESOURCE_TYPE.SHARED,
|
|
},
|
|
},
|
|
[Modules.PRICING]: {
|
|
key: Modules.PRICING,
|
|
registrationName: ModuleRegistrationName.PRICING,
|
|
defaultPackage: false,
|
|
label: "PricingModuleService",
|
|
isRequired: false,
|
|
canOverride: true,
|
|
isQueryable: true,
|
|
dependencies: ["logger"],
|
|
defaultModuleDeclaration: {
|
|
scope: MODULE_SCOPE.INTERNAL,
|
|
resources: MODULE_RESOURCE_TYPE.SHARED,
|
|
},
|
|
},
|
|
}
|
|
|
|
export const MODULE_DEFINITIONS: ModuleDefinition[] =
|
|
Object.values(ModulesDefinition)
|
|
|
|
export default MODULE_DEFINITIONS
|