Files
medusa-store/packages/modules-sdk/src/definitions.ts
Riqwan Thamir 460161a69f feat(pricing, types, utils, medusa-sdk): Pricing Module Setup + Currency (#4860)
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
2023-08-29 21:58:34 +00:00

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