import { ExternalModuleDeclaration, InternalModuleDeclaration, MedusaModule, MODULE_PACKAGE_NAMES, Modules, } from "@medusajs/modules-sdk" import { IProductModuleService, ModulesSdkTypes } from "@medusajs/types" import { InitializeModuleInjectableDependencies } from "@types" import { moduleDefinition } from "../module-definition" export const initialize = async ( options?: | ModulesSdkTypes.ModuleServiceInitializeOptions | ModulesSdkTypes.ModuleServiceInitializeCustomDataLayerOptions | ExternalModuleDeclaration | InternalModuleDeclaration, injectedDependencies?: InitializeModuleInjectableDependencies ): Promise => { const serviceKey = Modules.PRODUCT const loaded = await MedusaModule.bootstrap({ moduleKey: serviceKey, defaultPath: MODULE_PACKAGE_NAMES[Modules.PRODUCT], declaration: options as | InternalModuleDeclaration | ExternalModuleDeclaration, injectedDependencies, moduleExports: moduleDefinition, }) return loaded[serviceKey] }