feat: loosely typed container

This commit is contained in:
Harminder Virk
2024-05-31 15:22:03 +05:30
committed by GitHub
parent 2d956931b3
commit 11528526fa
41 changed files with 255 additions and 114 deletions

View File

@@ -1,3 +1,29 @@
import type {
IApiKeyModuleService,
IAuthModuleService,
ICacheService,
ICartModuleService,
ICurrencyModuleService,
ICustomerModuleService,
IEventBusModuleService,
IFileModuleService,
IFulfillmentModuleService,
IInventoryServiceNext,
INotificationModuleService,
IOrderModuleService,
IPaymentModuleService,
IPricingModuleService,
IProductModuleService,
IPromotionModuleService,
IRegionModuleService,
ISalesChannelModuleService,
IStockLocationServiceNext,
IStoreModuleService,
ITaxModuleService,
IUserModuleService,
IWorkflowEngineService,
} from "@medusajs/types"
export enum Modules {
AUTH = "auth",
CACHE = "cacheService",
@@ -24,3 +50,57 @@ export enum Modules {
FILE = "file",
NOTIFICATION = "notification",
}
export enum ModuleRegistrationName {
AUTH = "authModuleService",
CACHE = "cacheService",
CART = "cartModuleService",
CUSTOMER = "customerModuleService",
EVENT_BUS = "eventBusModuleService",
INVENTORY = "inventoryService",
PAYMENT = "paymentModuleService",
PRICING = "pricingModuleService",
PRODUCT = "productModuleService",
PROMOTION = "promotionModuleService",
SALES_CHANNEL = "salesChannelModuleService",
FULFILLMENT = "fulfillmentModuleService",
STOCK_LOCATION = "stockLocationService",
TAX = "taxModuleService",
USER = "userModuleService",
WORKFLOW_ENGINE = "workflowsModuleService",
REGION = "regionModuleService",
ORDER = "orderModuleService",
API_KEY = "apiKeyModuleService",
STORE = "storeModuleService",
CURRENCY = "currencyModuleService",
FILE = "fileModuleService",
NOTIFICATION = "notificationModuleService",
}
declare module "@medusajs/types" {
export interface ModuleImplementations {
[ModuleRegistrationName.AUTH]: IAuthModuleService
[ModuleRegistrationName.CACHE]: ICacheService
[ModuleRegistrationName.CART]: ICartModuleService
[ModuleRegistrationName.CUSTOMER]: ICustomerModuleService
[ModuleRegistrationName.EVENT_BUS]: IEventBusModuleService
[ModuleRegistrationName.INVENTORY]: IInventoryServiceNext
[ModuleRegistrationName.PAYMENT]: IPaymentModuleService
[ModuleRegistrationName.PRICING]: IPricingModuleService
[ModuleRegistrationName.PRODUCT]: IProductModuleService
[ModuleRegistrationName.PROMOTION]: IPromotionModuleService
[ModuleRegistrationName.SALES_CHANNEL]: ISalesChannelModuleService
[ModuleRegistrationName.TAX]: ITaxModuleService
[ModuleRegistrationName.FULFILLMENT]: IFulfillmentModuleService
[ModuleRegistrationName.STOCK_LOCATION]: IStockLocationServiceNext
[ModuleRegistrationName.USER]: IUserModuleService
[ModuleRegistrationName.WORKFLOW_ENGINE]: IWorkflowEngineService
[ModuleRegistrationName.REGION]: IRegionModuleService
[ModuleRegistrationName.ORDER]: IOrderModuleService
[ModuleRegistrationName.API_KEY]: IApiKeyModuleService
[ModuleRegistrationName.STORE]: IStoreModuleService
[ModuleRegistrationName.CURRENCY]: ICurrencyModuleService
[ModuleRegistrationName.FILE]: IFileModuleService
[ModuleRegistrationName.NOTIFICATION]: INotificationModuleService
}
}