From 63623422fe6788407464b13ee2ea093f325a8726 Mon Sep 17 00:00:00 2001 From: Adrien de Peretti Date: Mon, 13 May 2024 14:12:36 +0200 Subject: [PATCH] chore(): Autoload module resources (#7291) **What** - automatically build and consume connection and container loader if not exported by the module - therefore load the services and repositories automatically, including baseRepository - automatically build run and revert migrations if not provided - cleaup modules to remove extra unnecessary bits and pieces - remove the `initializeFactory` in favor of using `medusaApp` Should drastically improve the module building DX by removing a lot of boilerplate to handle by the user, that plus the base entity should simplify quite a lot the flow cc @shahednasser **Note** I had to choose a way to identify connection and container loader from the exported loader from the module. I decided to go with named function `connectionLoader` and `containerLoader`, also, now the factories will return named function so if the user use the factories we are providing to build those loaders, the function will also be named and identified --- .../__tests__/modules/load-standalone.ts | 14 +- packages/core/modules-sdk/src/index.ts | 1 - .../src/loaders/register-modules.ts | 8 +- .../src/loaders/utils/load-internal.ts | 291 +++++++++++-- packages/core/modules-sdk/src/utils/index.ts | 1 - .../src/utils/initialize-factory.ts | 44 -- packages/core/types/src/modules-sdk/index.ts | 10 +- .../mikro-orm/mikro-orm-create-connection.ts | 2 +- .../loaders/container-loader-factory.ts | 17 +- .../mikro-orm-connection-loader-factory.ts | 4 +- packages/modules/api-key/src/index.ts | 7 - .../modules/api-key/src/module-definition.ts | 36 -- packages/modules/auth/src/index.ts | 8 +- packages/modules/auth/src/initialize/index.ts | 31 -- .../modules/auth/src/loaders/connection.ts | 38 -- .../modules/auth/src/loaders/container.ts | 10 - packages/modules/auth/src/loaders/index.ts | 2 - .../modules/auth/src/module-definition.ts | 23 +- packages/modules/cart/src/index.ts | 9 +- packages/modules/cart/src/initialize/index.ts | 31 -- .../modules/cart/src/loaders/connection.ts | 36 -- .../modules/cart/src/loaders/container.ts | 10 - packages/modules/cart/src/loaders/index.ts | 2 - .../modules/cart/src/module-definition.ts | 22 - packages/modules/currency/src/index.ts | 7 - .../modules/currency/src/module-definition.ts | 36 +- packages/modules/customer/src/index.ts | 9 +- .../modules/customer/src/initialize/index.ts | 31 -- .../customer/src/loaders/connection.ts | 34 -- .../modules/customer/src/loaders/container.ts | 11 - .../modules/customer/src/loaders/index.ts | 2 - .../modules/customer/src/module-definition.ts | 23 - packages/modules/file/src/index.ts | 8 - .../modules/file/src/module-definition.ts | 19 +- packages/modules/fulfillment/src/index.ts | 7 - .../fulfillment/src/module-definition.ts | 35 +- packages/modules/inventory-next/src/index.ts | 8 - .../inventory-next/src/module-definition.ts | 36 -- packages/modules/notification/src/index.ts | 7 - .../notification/src/module-definition.ts | 35 +- .../notification/src/repositories/index.ts | 1 - packages/modules/order/src/index.ts | 7 - .../modules/order/src/module-definition.ts | 36 -- packages/modules/payment/src/index.ts | 8 +- .../modules/payment/src/initialize/index.ts | 38 -- .../modules/payment/src/loaders/connection.ts | 34 -- .../modules/payment/src/loaders/container.ts | 10 - packages/modules/payment/src/loaders/index.ts | 2 - .../modules/payment/src/module-definition.ts | 30 +- packages/modules/pricing/src/index.ts | 9 +- .../modules/pricing/src/initialize/index.ts | 34 -- .../modules/pricing/src/loaders/connection.ts | 30 -- .../modules/pricing/src/loaders/container.ts | 10 - packages/modules/pricing/src/loaders/index.ts | 2 - .../modules/pricing/src/module-definition.ts | 22 - packages/modules/product/src/index.ts | 9 +- .../modules/product/src/initialize/index.ts | 34 -- .../modules/product/src/loaders/connection.ts | 30 -- .../modules/product/src/loaders/container.ts | 10 - packages/modules/product/src/loaders/index.ts | 2 - .../modules/product/src/module-definition.ts | 23 - .../modules/product/src/repositories/index.ts | 1 - .../src/services/__fixtures__/product.ts | 17 - .../product/src/services/__tests__/index.ts | 1 + .../src/services/__tests__/product.spec.ts | 227 ---------- packages/modules/promotion/src/index.ts | 9 +- .../modules/promotion/src/initialize/index.ts | 31 -- .../promotion/src/loaders/connection.ts | 34 -- .../promotion/src/loaders/container.ts | 10 - .../modules/promotion/src/loaders/index.ts | 2 - .../promotion/src/module-definition.ts | 22 - packages/modules/region/src/index.ts | 9 +- .../modules/region/src/initialize/index.ts | 34 -- .../modules/region/src/loaders/connection.ts | 35 -- .../modules/region/src/loaders/container.ts | 10 - packages/modules/region/src/loaders/index.ts | 3 - .../modules/region/src/module-definition.ts | 23 +- .../services/sales-channel-module.spec.ts | 405 +++++++++--------- packages/modules/sales-channel/src/index.ts | 20 - .../sales-channel/src/initialize/index.ts | 34 -- .../sales-channel/src/loaders/connection.ts | 37 -- .../sales-channel/src/loaders/container.ts | 10 - .../sales-channel/src/loaders/index.ts | 2 - .../sales-channel/src/module-definition.ts | 5 - .../sales-channel/src/repositories/index.ts | 1 - .../services/__fixtures__/sales-channel.ts | 11 - .../src/services/__tests__/index.ts | 1 + .../services/__tests__/sales-channle.spec.ts | 47 -- .../modules/stock-location-next/src/index.ts | 8 - .../src/module-definition.ts | 38 +- packages/modules/store/src/index.ts | 7 - .../modules/store/src/module-definition.ts | 36 -- packages/modules/tax/src/index.ts | 7 - packages/modules/tax/src/module-definition.ts | 35 +- packages/modules/user/src/index.ts | 10 +- packages/modules/user/src/initialize/index.ts | 31 -- .../modules/user/src/loaders/connection.ts | 36 -- .../modules/user/src/loaders/container.ts | 10 - packages/modules/user/src/loaders/index.ts | 2 - .../modules/user/src/module-definition.ts | 23 - .../workflow-engine-inmemory/src/index.ts | 17 - .../src/initialize/index.ts | 34 -- .../src/loaders/connection.ts | 36 -- .../src/loaders/container.ts | 9 - .../src/loaders/index.ts | 2 - .../src/module-definition.ts | 4 +- .../workflow-engine-redis/src/index.ts | 17 - .../src/initialize/index.ts | 35 -- .../src/loaders/connection.ts | 36 -- .../src/loaders/container.ts | 9 - .../src/loaders/index.ts | 2 - .../src/module-definition.ts | 9 +- 112 files changed, 520 insertions(+), 2320 deletions(-) delete mode 100644 packages/core/modules-sdk/src/utils/initialize-factory.ts delete mode 100644 packages/modules/auth/src/initialize/index.ts delete mode 100644 packages/modules/auth/src/loaders/connection.ts delete mode 100644 packages/modules/auth/src/loaders/container.ts delete mode 100644 packages/modules/cart/src/initialize/index.ts delete mode 100644 packages/modules/cart/src/loaders/connection.ts delete mode 100644 packages/modules/cart/src/loaders/container.ts delete mode 100644 packages/modules/cart/src/loaders/index.ts delete mode 100644 packages/modules/customer/src/initialize/index.ts delete mode 100644 packages/modules/customer/src/loaders/connection.ts delete mode 100644 packages/modules/customer/src/loaders/container.ts delete mode 100644 packages/modules/customer/src/loaders/index.ts delete mode 100644 packages/modules/notification/src/repositories/index.ts delete mode 100644 packages/modules/payment/src/initialize/index.ts delete mode 100644 packages/modules/payment/src/loaders/connection.ts delete mode 100644 packages/modules/payment/src/loaders/container.ts delete mode 100644 packages/modules/pricing/src/initialize/index.ts delete mode 100644 packages/modules/pricing/src/loaders/connection.ts delete mode 100644 packages/modules/pricing/src/loaders/container.ts delete mode 100644 packages/modules/pricing/src/loaders/index.ts delete mode 100644 packages/modules/product/src/initialize/index.ts delete mode 100644 packages/modules/product/src/loaders/connection.ts delete mode 100644 packages/modules/product/src/loaders/container.ts delete mode 100644 packages/modules/product/src/loaders/index.ts delete mode 100644 packages/modules/product/src/services/__fixtures__/product.ts create mode 100644 packages/modules/product/src/services/__tests__/index.ts delete mode 100644 packages/modules/product/src/services/__tests__/product.spec.ts delete mode 100644 packages/modules/promotion/src/initialize/index.ts delete mode 100644 packages/modules/promotion/src/loaders/connection.ts delete mode 100644 packages/modules/promotion/src/loaders/container.ts delete mode 100644 packages/modules/promotion/src/loaders/index.ts delete mode 100644 packages/modules/region/src/initialize/index.ts delete mode 100644 packages/modules/region/src/loaders/connection.ts delete mode 100644 packages/modules/region/src/loaders/container.ts delete mode 100644 packages/modules/sales-channel/src/initialize/index.ts delete mode 100644 packages/modules/sales-channel/src/loaders/connection.ts delete mode 100644 packages/modules/sales-channel/src/loaders/container.ts delete mode 100644 packages/modules/sales-channel/src/loaders/index.ts delete mode 100644 packages/modules/sales-channel/src/repositories/index.ts delete mode 100644 packages/modules/sales-channel/src/services/__fixtures__/sales-channel.ts create mode 100644 packages/modules/sales-channel/src/services/__tests__/index.ts delete mode 100644 packages/modules/sales-channel/src/services/__tests__/sales-channle.spec.ts delete mode 100644 packages/modules/user/src/initialize/index.ts delete mode 100644 packages/modules/user/src/loaders/connection.ts delete mode 100644 packages/modules/user/src/loaders/container.ts delete mode 100644 packages/modules/user/src/loaders/index.ts delete mode 100644 packages/modules/workflow-engine-inmemory/src/initialize/index.ts delete mode 100644 packages/modules/workflow-engine-inmemory/src/loaders/connection.ts delete mode 100644 packages/modules/workflow-engine-inmemory/src/loaders/container.ts delete mode 100644 packages/modules/workflow-engine-redis/src/initialize/index.ts delete mode 100644 packages/modules/workflow-engine-redis/src/loaders/connection.ts delete mode 100644 packages/modules/workflow-engine-redis/src/loaders/container.ts diff --git a/integration-tests/modules/__tests__/modules/load-standalone.ts b/integration-tests/modules/__tests__/modules/load-standalone.ts index f593aeee8c..06ca63021f 100644 --- a/integration-tests/modules/__tests__/modules/load-standalone.ts +++ b/integration-tests/modules/__tests__/modules/load-standalone.ts @@ -1,4 +1,6 @@ import { medusaIntegrationTestRunner } from "medusa-test-utils" +import { MedusaApp, Modules } from "@medusajs/modules-sdk" +import { IProductModuleService } from "@medusajs/types" jest.setTimeout(30000) @@ -15,10 +17,18 @@ medusaIntegrationTestRunner({ }) it("Should migrate database and initialize Product module using connection string from environment variable ", async function () { - const { initialize, runMigrations } = require("@medusajs/product") + const { modules, runMigrations } = await MedusaApp({ + modulesConfig: { + [Modules.PRODUCT]: true, + }, + }) + await runMigrations() - const product = await initialize() + const product = modules[ + Modules.PRODUCT + ] as unknown as IProductModuleService + const productList = await product.list() expect(productList).toEqual(expect.arrayContaining([])) diff --git a/packages/core/modules-sdk/src/index.ts b/packages/core/modules-sdk/src/index.ts index 843aa56371..62b018aa42 100644 --- a/packages/core/modules-sdk/src/index.ts +++ b/packages/core/modules-sdk/src/index.ts @@ -5,4 +5,3 @@ export * from "./medusa-app" export * from "./medusa-module" export * from "./remote-link" export * from "./remote-query" -export * from "./utils/initialize-factory" diff --git a/packages/core/modules-sdk/src/loaders/register-modules.ts b/packages/core/modules-sdk/src/loaders/register-modules.ts index 7dfaf6a273..d18c5920df 100644 --- a/packages/core/modules-sdk/src/loaders/register-modules.ts +++ b/packages/core/modules-sdk/src/loaders/register-modules.ts @@ -137,11 +137,9 @@ function getInternalModuleResolution( // If user added a module and it's overridable, we resolve that instead const isStr = isString(moduleConfig) if (isStr || (isObj && moduleConfig.resolve)) { - resolutionPath = !moduleExports - ? resolveCwd(isStr ? moduleConfig : (moduleConfig.resolve as string)) - : // Explicitly assign an empty string, later, we will check if the value is exactly false. - // This allows to continue the module loading while using the module exports instead of re importing the module itself during the process. - "" + resolutionPath = resolveCwd( + isStr ? moduleConfig : (moduleConfig.resolve as string) + ) } const moduleDeclaration = isObj ? moduleConfig : {} diff --git a/packages/core/modules-sdk/src/loaders/utils/load-internal.ts b/packages/core/modules-sdk/src/loaders/utils/load-internal.ts index dfe97b6bf9..04b620b1d1 100644 --- a/packages/core/modules-sdk/src/loaders/utils/load-internal.ts +++ b/packages/core/modules-sdk/src/loaders/utils/load-internal.ts @@ -1,17 +1,32 @@ import { + Constructor, InternalModuleDeclaration, Logger, MedusaContainer, MODULE_RESOURCE_TYPE, ModuleExports, + ModuleLoaderFunction, ModuleResolution, } from "@medusajs/types" import { ContainerRegistrationKeys, createMedusaContainer, MedusaModuleType, + ModulesSdkUtils, } from "@medusajs/utils" import { asFunction, asValue } from "awilix" +import { join, resolve } from "path" +import { statSync } from "fs" +import { readdir } from "fs/promises" + +type ModuleResource = { + services: Function[] + models: Function[] + repositories: Function[] + loaders: ModuleLoaderFunction[] + moduleService: Constructor + normalizedPath: string +} export async function loadInternalModule( container: MedusaContainer, @@ -36,6 +51,8 @@ export async function loadInternalModule( const modulePath = resolution.resolutionPath as string if (resolution.moduleExports) { + // TODO: + // If we want to benefit from the auto load mechanism, even if the module exports is provided, we need to ask for the module path loadedModule = resolution.moduleExports } else { loadedModule = await import(modulePath) @@ -56,7 +73,17 @@ export async function loadInternalModule( return { error } } - if (!loadedModule?.service) { + let moduleResources = {} as ModuleResource + + if (resolution.resolutionPath) { + moduleResources = await loadResources( + loadedModule?.loaders ?? [], + resolution, + logger + ) + } + + if (!loadedModule?.service && !moduleResources.moduleService) { container.register({ [registrationName]: asValue(undefined), }) @@ -69,9 +96,11 @@ export async function loadInternalModule( } if (migrationOnly) { + const moduleService_ = moduleResources.moduleService ?? loadedModule.service + // Partially loaded module, only register the service __joinerConfig function to be able to resolve it later const moduleService = { - __joinerConfig: loadedModule.service.prototype.__joinerConfig, + __joinerConfig: moduleService_.prototype.__joinerConfig, } container.register({ [registrationName]: asValue(moduleService), @@ -100,32 +129,21 @@ export async function loadInternalModule( ) } - const moduleLoaders = loadedModule?.loaders ?? [] - try { - for (const loader of moduleLoaders) { - await loader( - { - container: localContainer, - logger, - options: resolution.options, - dataLoaderOnly: loaderOnly, - }, - resolution.moduleDeclaration as InternalModuleDeclaration - ) - } - } catch (err) { - container.register({ - [registrationName]: asValue(undefined), - }) + const loaders = moduleResources.loaders ?? loadedModule?.loaders ?? [] + const error = await runLoaders(loaders, { + container, + localContainer, + logger, + resolution, + loaderOnly, + registrationName, + }) - return { - error: new Error( - `Loaders for module ${resolution.definition.label} failed: ${err.message}` - ), - } + if (error) { + return error } - const moduleService = loadedModule.service + const moduleService = moduleResources.moduleService ?? loadedModule.service container.register({ [registrationName]: asFunction((cradle) => { @@ -155,8 +173,229 @@ export async function loadModuleMigrations( loadedModule = moduleExports ?? (await import(resolution.resolutionPath as string)) - return [loadedModule.runMigrations, loadedModule.revertMigration] + let runMigrations = loadedModule.runMigrations + let revertMigration = loadedModule.revertMigration + + // Generate migration scripts if they are not present + if (!runMigrations || !revertMigration) { + const moduleResources = await loadResources( + loadedModule?.loaders ?? [], + resolution, + console as unknown as Logger + ) + + const migrationScriptOptions = { + moduleName: resolution.definition.key, + models: moduleResources.models, + pathToMigrations: moduleResources.normalizedPath + "/dist/migrations", + } + + runMigrations ??= ModulesSdkUtils.buildMigrationScript( + migrationScriptOptions + ) + + revertMigration ??= ModulesSdkUtils.buildRevertMigrationScript( + migrationScriptOptions + ) + } + + return [runMigrations, revertMigration] } catch { return [undefined, undefined] } } + +async function importAllFromDir(path: string) { + let filesToLoad: string[] = [] + + await readdir(path).then((files) => { + files.forEach((file) => { + if (file !== "index.js" && file.endsWith(".js")) { + const filePath = join(path, file) + const stats = statSync(filePath) + + if (stats.isDirectory()) { + // TODO: should we handle that? dont think so but I put that here for discussion + } else if (stats.isFile()) { + filesToLoad.push(filePath) + } + } + }) + + return filesToLoad + }) + + return ( + await Promise.all(filesToLoad.map((filePath) => import(filePath))) + ).flatMap((value) => { + return Object.values(value) + }) +} + +async function loadResources( + loadedModuleLoaders: ModuleLoaderFunction[], + moduleResolution: ModuleResolution, + logger: Logger +): Promise { + const modulePath = moduleResolution.resolutionPath as string + let normalizedPath = modulePath.replace("dist/", "").replace("index.js", "") + normalizedPath = resolve(normalizedPath) + + try { + const defaultOnFail = () => { + return [] + } + + const [moduleService, services, models, repositories] = await Promise.all([ + import(modulePath).then((moduleExports) => moduleExports.default.service), + importAllFromDir(resolve(normalizedPath, "dist", "services")).catch( + defaultOnFail + ), + importAllFromDir(resolve(normalizedPath, "dist", "models")).catch( + defaultOnFail + ), + importAllFromDir(resolve(normalizedPath, "dist", "repositories")).catch( + defaultOnFail + ), + ]) + + const cleanupResources = (resources) => { + return Object.values(resources).filter( + (resource): resource is Function => { + return typeof resource === "function" + } + ) + } + + const potentialServices = [...new Set(cleanupResources(services))] + const potentialModels = [...new Set(cleanupResources(models))] + const potentialRepositories = [...new Set(cleanupResources(repositories))] + + const finalLoaders = prepareLoaders({ + loadedModuleLoaders, + models: potentialModels, + repositories: potentialRepositories, + services: potentialServices, + moduleResolution, + migrationPath: normalizedPath + "/dist/migrations", + }) + + return { + services: potentialServices, + models: potentialModels, + repositories: potentialRepositories, + loaders: finalLoaders, + moduleService, + normalizedPath + } + } catch (e) { + logger.warn( + `Unable to load resources for module ${modulePath} automagically. ${e.message}` + ) + + return {} as ModuleResource + } +} + +async function runLoaders( + loaders: Function[] = [], + { + localContainer, + container, + logger, + resolution, + loaderOnly, + registrationName, + } +): Promise { + try { + for (const loader of loaders) { + await loader( + { + container: localContainer, + logger, + options: resolution.options, + dataLoaderOnly: loaderOnly, + }, + resolution.moduleDeclaration as InternalModuleDeclaration + ) + } + } catch (err) { + container.register({ + [registrationName]: asValue(undefined), + }) + + return { + error: new Error( + `Loaders for module ${resolution.definition.label} failed: ${err.message}` + ), + } + } +} + +function prepareLoaders({ + loadedModuleLoaders, + models, + repositories, + services, + moduleResolution, + migrationPath, +}) { + const finalLoaders: ModuleLoaderFunction[] = [] + + const toObjectReducer = (acc, curr) => { + acc[curr.name] = curr + return acc + } + + /* + * If no connectionLoader function is provided, create a default connection loader. + * TODO: Validate naming convention + */ + const connectionLoaderName = "connectionLoader" + const containerLoader = "containerLoader" + + const hasConnectionLoader = loadedModuleLoaders.some( + (l) => l.name === connectionLoaderName + ) + + if (!hasConnectionLoader && models.length > 0) { + const connectionLoader = ModulesSdkUtils.mikroOrmConnectionLoaderFactory({ + moduleName: moduleResolution.definition.key, + moduleModels: models, + migrationsPath: migrationPath, //normalizedPath + "/dist/migrations", + }) + finalLoaders.push(connectionLoader) + } + + const hasContainerLoader = loadedModuleLoaders.some( + (l) => l.name === containerLoader + ) + + if (!hasContainerLoader) { + const containerLoader = ModulesSdkUtils.moduleContainerLoaderFactory({ + moduleModels: models.reduce(toObjectReducer, {}), + moduleRepositories: repositories.reduce(toObjectReducer, {}), + moduleServices: services.reduce(toObjectReducer, {}), + }) + finalLoaders.push(containerLoader) + } + + finalLoaders.push( + ...loadedModuleLoaders.filter((loader) => { + if ( + loader.name !== connectionLoaderName && + loader.name !== containerLoader + ) { + return true + } + + return ( + (loader.name === containerLoader && hasContainerLoader) || + (loader.name === connectionLoaderName && hasConnectionLoader) + ) + }) + ) + + return finalLoaders +} diff --git a/packages/core/modules-sdk/src/utils/index.ts b/packages/core/modules-sdk/src/utils/index.ts index 9fc688e961..d1470bdcbc 100644 --- a/packages/core/modules-sdk/src/utils/index.ts +++ b/packages/core/modules-sdk/src/utils/index.ts @@ -1,3 +1,2 @@ export * from "./clean-graphql-schema" export * from "./graphql-schema-to-fields" -export * from "./initialize-factory" diff --git a/packages/core/modules-sdk/src/utils/initialize-factory.ts b/packages/core/modules-sdk/src/utils/initialize-factory.ts deleted file mode 100644 index 6230ee0e3a..0000000000 --- a/packages/core/modules-sdk/src/utils/initialize-factory.ts +++ /dev/null @@ -1,44 +0,0 @@ -import { - ExternalModuleDeclaration, - InternalModuleDeclaration, - ModuleExports, - ModuleServiceInitializeCustomDataLayerOptions, - ModuleServiceInitializeOptions, -} from "@medusajs/types" -import { MODULE_PACKAGE_NAMES } from "../definitions" -import { MedusaModule } from "../medusa-module" - -/** - * Generate a initialize module factory that is exported by the module to be initialized manually - * - * @param moduleName - * @param moduleDefinition - */ -export function initializeFactory({ - moduleName, - moduleDefinition, -}: { - moduleName: string - moduleDefinition: ModuleExports -}) { - return async ( - options?: - | ModuleServiceInitializeOptions - | ModuleServiceInitializeCustomDataLayerOptions - | ExternalModuleDeclaration - | InternalModuleDeclaration, - injectedDependencies?: any - ) => { - const loaded = await MedusaModule.bootstrap({ - moduleKey: moduleName, - defaultPath: MODULE_PACKAGE_NAMES[moduleName], - declaration: options as - | InternalModuleDeclaration - | ExternalModuleDeclaration, - injectedDependencies, - moduleExports: moduleDefinition, - }) - - return loaded[moduleName] as T - } -} diff --git a/packages/core/types/src/modules-sdk/index.ts b/packages/core/types/src/modules-sdk/index.ts index 0f372a3b44..736e5ac161 100644 --- a/packages/core/types/src/modules-sdk/index.ts +++ b/packages/core/types/src/modules-sdk/index.ts @@ -122,7 +122,7 @@ export type LoaderOptions> = { } export type ModuleLoaderFunction = ( - options: LoaderOptions, + options: LoaderOptions, moduleDeclaration?: InternalModuleDeclaration ) => Promise @@ -226,14 +226,6 @@ export declare type ModuleJoinerRelationship = JoinerRelationship & { export type ModuleExports = { service: Constructor loaders?: ModuleLoaderFunction[] - /** - * @deprecated property will be removed in future versions - */ - migrations?: any[] - /** - * @deprecated property will be removed in future versions - */ - models?: Constructor[] runMigrations?( options: LoaderOptions, moduleDeclaration?: InternalModuleDeclaration diff --git a/packages/core/utils/src/dal/mikro-orm/mikro-orm-create-connection.ts b/packages/core/utils/src/dal/mikro-orm/mikro-orm-create-connection.ts index f04b80c614..745b1d4e5c 100644 --- a/packages/core/utils/src/dal/mikro-orm/mikro-orm-create-connection.ts +++ b/packages/core/utils/src/dal/mikro-orm/mikro-orm-create-connection.ts @@ -99,7 +99,7 @@ export async function mikroOrmCreateConnection( const { MikroORM } = await import("@mikro-orm/postgresql") return await MikroORM.init({ - discovery: { disableDynamicFileAccess: true }, + discovery: { disableDynamicFileAccess: true, warnWhenNoEntities: false, }, entities, debug: database.debug ?? process.env.NODE_ENV?.startsWith("dev") ?? false, baseDir: process.cwd(), diff --git a/packages/core/utils/src/modules-sdk/loaders/container-loader-factory.ts b/packages/core/utils/src/modules-sdk/loaders/container-loader-factory.ts index a7199d04f4..6fc93ee105 100644 --- a/packages/core/utils/src/modules-sdk/loaders/container-loader-factory.ts +++ b/packages/core/utils/src/modules-sdk/loaders/container-loader-factory.ts @@ -10,7 +10,10 @@ import { import { asClass } from "awilix" import { internalModuleServiceFactory } from "../internal-module-service-factory" import { lowerCaseFirst } from "../../common" -import { mikroOrmBaseRepositoryFactory } from "../../dal" +import { + MikroOrmBaseRepository, + mikroOrmBaseRepositoryFactory, +} from "../../dal" type RepositoryLoaderOptions = { moduleModels: Record @@ -44,13 +47,13 @@ export function moduleContainerLoaderFactory({ moduleRepositories?: Record customRepositoryLoader?: (options: RepositoryLoaderOptions) => void }): ({ container, options }: LoaderOptions) => Promise { - return async ({ + return async function containerLoader({ container, options, }: LoaderOptions< | ModuleServiceInitializeOptions | ModuleServiceInitializeCustomDataLayerOptions - >) => { + >) { const customRepositories = ( options as ModuleServiceInitializeCustomDataLayerOptions )?.repositories @@ -85,9 +88,9 @@ export function loadModuleServices({ container, }: ServiceLoaderOptions) { const moduleServicesMap = new Map( - Object.entries(moduleServices).map(([key, repository]) => [ + Object.entries(moduleServices).map(([key, service]) => [ lowerCaseFirst(key), - repository, + service, ]) ) @@ -158,6 +161,10 @@ export function loadModuleRepositories({ const allRepositories = [...customRepositoriesMap, ...moduleRepositoriesMap] + container.register({ + ["baseRepository"]: asClass(MikroOrmBaseRepository).singleton(), + }) + allRepositories.forEach(([key, repository]) => { let finalRepository = customRepositoriesMap.get(key) diff --git a/packages/core/utils/src/modules-sdk/loaders/mikro-orm-connection-loader-factory.ts b/packages/core/utils/src/modules-sdk/loaders/mikro-orm-connection-loader-factory.ts index 84ff065225..92d8d167b7 100644 --- a/packages/core/utils/src/modules-sdk/loaders/mikro-orm-connection-loader-factory.ts +++ b/packages/core/utils/src/modules-sdk/loaders/mikro-orm-connection-loader-factory.ts @@ -17,10 +17,10 @@ export function mikroOrmConnectionLoaderFactory({ moduleModels: any[] migrationsPath?: string }): any { - return async ( + return async function connectionLoader( { options, container, logger }: LoaderOptions, moduleDeclaration?: InternalModuleDeclaration - ): Promise => { + ): Promise { await mikroOrmConnectionLoader({ moduleName, entities: moduleModels, diff --git a/packages/modules/api-key/src/index.ts b/packages/modules/api-key/src/index.ts index bd9fb22270..5dc2ece165 100644 --- a/packages/modules/api-key/src/index.ts +++ b/packages/modules/api-key/src/index.ts @@ -1,14 +1,7 @@ import { moduleDefinition } from "./module-definition" -import { initializeFactory, Modules } from "@medusajs/modules-sdk" export * from "./types" export * from "./models" export * from "./services" -export const initialize = initializeFactory({ - moduleName: Modules.API_KEY, - moduleDefinition, -}) -export const runMigrations = moduleDefinition.runMigrations -export const revertMigration = moduleDefinition.revertMigration export default moduleDefinition diff --git a/packages/modules/api-key/src/module-definition.ts b/packages/modules/api-key/src/module-definition.ts index 61d2e6a2e9..27f88e7b12 100644 --- a/packages/modules/api-key/src/module-definition.ts +++ b/packages/modules/api-key/src/module-definition.ts @@ -1,44 +1,8 @@ import { ModuleExports } from "@medusajs/types" -import * as ModuleServices from "@services" import { ApiKeyModuleService } from "@services" -import { Modules } from "@medusajs/modules-sdk" -import * as Models from "@models" -import * as ModuleModels from "@models" -import { ModulesSdkUtils } from "@medusajs/utils" -import * as ModuleRepositories from "@repositories" - -const migrationScriptOptions = { - moduleName: Modules.API_KEY, - models: Models, - pathToMigrations: __dirname + "/migrations", -} - -const runMigrations = ModulesSdkUtils.buildMigrationScript( - migrationScriptOptions -) - -const revertMigration = ModulesSdkUtils.buildRevertMigrationScript( - migrationScriptOptions -) - -const containerLoader = ModulesSdkUtils.moduleContainerLoaderFactory({ - moduleModels: ModuleModels, - moduleRepositories: ModuleRepositories, - moduleServices: ModuleServices, -}) - -const connectionLoader = ModulesSdkUtils.mikroOrmConnectionLoaderFactory({ - moduleName: Modules.API_KEY, - moduleModels: Object.values(Models), - migrationsPath: __dirname + "/migrations", -}) const service = ApiKeyModuleService -const loaders = [containerLoader, connectionLoader] as any export const moduleDefinition: ModuleExports = { service, - loaders, - revertMigration, - runMigrations, } diff --git a/packages/modules/auth/src/index.ts b/packages/modules/auth/src/index.ts index 98c26a5e9e..7aa317c3f4 100644 --- a/packages/modules/auth/src/index.ts +++ b/packages/modules/auth/src/index.ts @@ -1,11 +1,5 @@ -import { - moduleDefinition, - revertMigration, - runMigrations, -} from "./module-definition" +import { moduleDefinition } from "./module-definition" export default moduleDefinition -export { revertMigration, runMigrations } -export * from "./initialize" export * from "./loaders" diff --git a/packages/modules/auth/src/initialize/index.ts b/packages/modules/auth/src/initialize/index.ts deleted file mode 100644 index 4fbe09f762..0000000000 --- a/packages/modules/auth/src/initialize/index.ts +++ /dev/null @@ -1,31 +0,0 @@ -import { - ExternalModuleDeclaration, - InternalModuleDeclaration, - MedusaModule, - MODULE_PACKAGE_NAMES, - Modules, -} from "@medusajs/modules-sdk" -import { IAuthModuleService, ModulesSdkTypes } from "@medusajs/types" - -import { InitializeModuleInjectableDependencies } from "@types" -import { moduleDefinition } from "../module-definition" - -export const initialize = async ( - options?: - | ModulesSdkTypes.ModuleBootstrapDeclaration - | ModulesSdkTypes.ModuleServiceInitializeOptions - | ModulesSdkTypes.ModuleServiceInitializeCustomDataLayerOptions, - injectedDependencies?: InitializeModuleInjectableDependencies -): Promise => { - const loaded = await MedusaModule.bootstrap({ - moduleKey: Modules.AUTH, - defaultPath: MODULE_PACKAGE_NAMES[Modules.AUTH], - declaration: options as - | InternalModuleDeclaration - | ExternalModuleDeclaration, // TODO: Add provider configuration - injectedDependencies, - moduleExports: moduleDefinition, - }) - - return loaded[Modules.AUTH] -} diff --git a/packages/modules/auth/src/loaders/connection.ts b/packages/modules/auth/src/loaders/connection.ts deleted file mode 100644 index a7d632cfce..0000000000 --- a/packages/modules/auth/src/loaders/connection.ts +++ /dev/null @@ -1,38 +0,0 @@ -import * as AuthModels from "../models" - -import { - InternalModuleDeclaration, - LoaderOptions, - Modules, -} from "@medusajs/modules-sdk" - -import { EntitySchema } from "@mikro-orm/core" -import { ModulesSdkTypes } from "@medusajs/types" -import { ModulesSdkUtils } from "@medusajs/utils" - -export default async ( - { - options, - container, - logger, - }: LoaderOptions< - | ModulesSdkTypes.ModuleServiceInitializeOptions - | ModulesSdkTypes.ModuleServiceInitializeCustomDataLayerOptions - >, - moduleDeclaration?: InternalModuleDeclaration -): Promise => { - const entities = Object.values( - AuthModels - ) as unknown as EntitySchema[] - const pathToMigrations = __dirname + "/../migrations" - - await ModulesSdkUtils.mikroOrmConnectionLoader({ - moduleName: Modules.AUTH, - entities, - container, - options, - moduleDeclaration, - logger, - pathToMigrations, - }) -} diff --git a/packages/modules/auth/src/loaders/container.ts b/packages/modules/auth/src/loaders/container.ts deleted file mode 100644 index 28ea110f2d..0000000000 --- a/packages/modules/auth/src/loaders/container.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { ModulesSdkUtils } from "@medusajs/utils" -import * as ModuleModels from "@models" -import * as ModuleRepositories from "@repositories" -import * as ModuleServices from "@services" - -export default ModulesSdkUtils.moduleContainerLoaderFactory({ - moduleModels: ModuleModels, - moduleRepositories: ModuleRepositories, - moduleServices: ModuleServices, -}) diff --git a/packages/modules/auth/src/loaders/index.ts b/packages/modules/auth/src/loaders/index.ts index 11369b9206..96bcb99b21 100644 --- a/packages/modules/auth/src/loaders/index.ts +++ b/packages/modules/auth/src/loaders/index.ts @@ -1,3 +1 @@ -export * from "./connection" -export * from "./container" export * from "./providers" diff --git a/packages/modules/auth/src/module-definition.ts b/packages/modules/auth/src/module-definition.ts index 601a85bbbe..18b27ccc31 100644 --- a/packages/modules/auth/src/module-definition.ts +++ b/packages/modules/auth/src/module-definition.ts @@ -1,32 +1,11 @@ -import * as Models from "@models" - import { AuthModuleService } from "@services" import { ModuleExports } from "@medusajs/types" -import { Modules } from "@medusajs/modules-sdk" -import { ModulesSdkUtils } from "@medusajs/utils" -import loadConnection from "./loaders/connection" -import loadContainer from "./loaders/container" import loadProviders from "./loaders/providers" -const migrationScriptOptions = { - moduleName: Modules.AUTH, - models: Models, - pathToMigrations: __dirname + "/migrations", -} - -export const runMigrations = ModulesSdkUtils.buildMigrationScript( - migrationScriptOptions -) -export const revertMigration = ModulesSdkUtils.buildRevertMigrationScript( - migrationScriptOptions -) - const service = AuthModuleService -const loaders = [loadContainer, loadConnection, loadProviders] as any +const loaders = [loadProviders] as any export const moduleDefinition: ModuleExports = { service, loaders, - runMigrations, - revertMigration, } diff --git a/packages/modules/cart/src/index.ts b/packages/modules/cart/src/index.ts index d449f73544..dd414e1b19 100644 --- a/packages/modules/cart/src/index.ts +++ b/packages/modules/cart/src/index.ts @@ -1,10 +1,3 @@ -import { - moduleDefinition, - revertMigration, - runMigrations, -} from "./module-definition" +import { moduleDefinition } from "./module-definition" export default moduleDefinition -export { revertMigration, runMigrations } - -export * from "./initialize" diff --git a/packages/modules/cart/src/initialize/index.ts b/packages/modules/cart/src/initialize/index.ts deleted file mode 100644 index 759135d399..0000000000 --- a/packages/modules/cart/src/initialize/index.ts +++ /dev/null @@ -1,31 +0,0 @@ -import { - ExternalModuleDeclaration, - InternalModuleDeclaration, - MedusaModule, - MODULE_PACKAGE_NAMES, - Modules, -} from "@medusajs/modules-sdk" -import { ICartModuleService, ModulesSdkTypes } from "@medusajs/types" -import { moduleDefinition } from "../module-definition" -import { InitializeModuleInjectableDependencies } from "@types" - -export const initialize = async ( - options?: - | ModulesSdkTypes.ModuleServiceInitializeOptions - | ModulesSdkTypes.ModuleServiceInitializeCustomDataLayerOptions - | ExternalModuleDeclaration - | InternalModuleDeclaration, - injectedDependencies?: InitializeModuleInjectableDependencies -): Promise => { - const loaded = await MedusaModule.bootstrap({ - moduleKey: Modules.CART, - defaultPath: MODULE_PACKAGE_NAMES[Modules.CART], - declaration: options as - | InternalModuleDeclaration - | ExternalModuleDeclaration, - injectedDependencies, - moduleExports: moduleDefinition, - }) - - return loaded[Modules.CART] -} diff --git a/packages/modules/cart/src/loaders/connection.ts b/packages/modules/cart/src/loaders/connection.ts deleted file mode 100644 index 292e4e5ae1..0000000000 --- a/packages/modules/cart/src/loaders/connection.ts +++ /dev/null @@ -1,36 +0,0 @@ -import { - InternalModuleDeclaration, - LoaderOptions, - Modules, -} from "@medusajs/modules-sdk" -import { ModulesSdkTypes } from "@medusajs/types" -import { ModulesSdkUtils } from "@medusajs/utils" -import { EntitySchema } from "@mikro-orm/core" -import * as CartModels from "../models" - -export default async ( - { - options, - container, - logger, - }: LoaderOptions< - | ModulesSdkTypes.ModuleServiceInitializeOptions - | ModulesSdkTypes.ModuleServiceInitializeCustomDataLayerOptions - >, - moduleDeclaration?: InternalModuleDeclaration -): Promise => { - const entities = Object.values( - CartModels - ) as unknown as EntitySchema[] - const pathToMigrations = __dirname + "/../migrations" - - await ModulesSdkUtils.mikroOrmConnectionLoader({ - moduleName: Modules.CART, - entities, - container, - options, - moduleDeclaration, - logger, - pathToMigrations, - }) -} diff --git a/packages/modules/cart/src/loaders/container.ts b/packages/modules/cart/src/loaders/container.ts deleted file mode 100644 index 28ea110f2d..0000000000 --- a/packages/modules/cart/src/loaders/container.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { ModulesSdkUtils } from "@medusajs/utils" -import * as ModuleModels from "@models" -import * as ModuleRepositories from "@repositories" -import * as ModuleServices from "@services" - -export default ModulesSdkUtils.moduleContainerLoaderFactory({ - moduleModels: ModuleModels, - moduleRepositories: ModuleRepositories, - moduleServices: ModuleServices, -}) diff --git a/packages/modules/cart/src/loaders/index.ts b/packages/modules/cart/src/loaders/index.ts deleted file mode 100644 index 3614963d8c..0000000000 --- a/packages/modules/cart/src/loaders/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from "./connection" -export * from "./container" diff --git a/packages/modules/cart/src/module-definition.ts b/packages/modules/cart/src/module-definition.ts index 1db51b9c5c..efcb04d5fe 100644 --- a/packages/modules/cart/src/module-definition.ts +++ b/packages/modules/cart/src/module-definition.ts @@ -1,30 +1,8 @@ -import { Modules } from "@medusajs/modules-sdk" import { ModuleExports } from "@medusajs/types" -import { ModulesSdkUtils } from "@medusajs/utils" -import * as Models from "@models" -import loadConnection from "./loaders/connection" -import loadContainer from "./loaders/container" import { CartModuleService } from "./services" -const migrationScriptOptions = { - moduleName: Modules.CART, - models: Models, - pathToMigrations: __dirname + "/migrations", -} - -export const runMigrations = ModulesSdkUtils.buildMigrationScript( - migrationScriptOptions -) -export const revertMigration = ModulesSdkUtils.buildRevertMigrationScript( - migrationScriptOptions -) - const service = CartModuleService -const loaders = [loadContainer, loadConnection] as any export const moduleDefinition: ModuleExports = { service, - loaders, - runMigrations, - revertMigration, } diff --git a/packages/modules/currency/src/index.ts b/packages/modules/currency/src/index.ts index af48dc4e96..5dc2ece165 100644 --- a/packages/modules/currency/src/index.ts +++ b/packages/modules/currency/src/index.ts @@ -1,14 +1,7 @@ import { moduleDefinition } from "./module-definition" -import { initializeFactory, Modules } from "@medusajs/modules-sdk" export * from "./types" export * from "./models" export * from "./services" -export const initialize = initializeFactory({ - moduleName: Modules.CURRENCY, - moduleDefinition, -}) -export const runMigrations = moduleDefinition.runMigrations -export const revertMigration = moduleDefinition.revertMigration export default moduleDefinition diff --git a/packages/modules/currency/src/module-definition.ts b/packages/modules/currency/src/module-definition.ts index df0f5d7ba2..1c1e5469a3 100644 --- a/packages/modules/currency/src/module-definition.ts +++ b/packages/modules/currency/src/module-definition.ts @@ -1,45 +1,11 @@ import { ModuleExports } from "@medusajs/types" -import * as ModuleServices from "@services" import { CurrencyModuleService } from "@services" -import { Modules } from "@medusajs/modules-sdk" -import * as Models from "@models" -import * as ModuleModels from "@models" -import { ModulesSdkUtils } from "@medusajs/utils" -import * as ModuleRepositories from "@repositories" import initialDataLoader from "./loaders/initial-data" -const migrationScriptOptions = { - moduleName: Modules.CURRENCY, - models: Models, - pathToMigrations: __dirname + "/migrations", -} - -const runMigrations = ModulesSdkUtils.buildMigrationScript( - migrationScriptOptions -) - -const revertMigration = ModulesSdkUtils.buildRevertMigrationScript( - migrationScriptOptions -) - -const containerLoader = ModulesSdkUtils.moduleContainerLoaderFactory({ - moduleModels: ModuleModels, - moduleRepositories: ModuleRepositories, - moduleServices: ModuleServices, -}) - -const connectionLoader = ModulesSdkUtils.mikroOrmConnectionLoaderFactory({ - moduleName: Modules.CURRENCY, - moduleModels: Object.values(Models), - migrationsPath: __dirname + "/migrations", -}) - const service = CurrencyModuleService -const loaders = [containerLoader, connectionLoader, initialDataLoader] as any +const loaders = [initialDataLoader] export const moduleDefinition: ModuleExports = { service, loaders, - revertMigration, - runMigrations, } diff --git a/packages/modules/customer/src/index.ts b/packages/modules/customer/src/index.ts index d449f73544..dd414e1b19 100644 --- a/packages/modules/customer/src/index.ts +++ b/packages/modules/customer/src/index.ts @@ -1,10 +1,3 @@ -import { - moduleDefinition, - revertMigration, - runMigrations, -} from "./module-definition" +import { moduleDefinition } from "./module-definition" export default moduleDefinition -export { revertMigration, runMigrations } - -export * from "./initialize" diff --git a/packages/modules/customer/src/initialize/index.ts b/packages/modules/customer/src/initialize/index.ts deleted file mode 100644 index 8272f17cc5..0000000000 --- a/packages/modules/customer/src/initialize/index.ts +++ /dev/null @@ -1,31 +0,0 @@ -import { - ExternalModuleDeclaration, - InternalModuleDeclaration, - MedusaModule, - MODULE_PACKAGE_NAMES, - Modules, -} from "@medusajs/modules-sdk" -import { ICustomerModuleService, ModulesSdkTypes } from "@medusajs/types" -import { moduleDefinition } from "../module-definition" -import { InitializeModuleInjectableDependencies } from "@types" - -export const initialize = async ( - options?: - | ModulesSdkTypes.ModuleServiceInitializeOptions - | ModulesSdkTypes.ModuleServiceInitializeCustomDataLayerOptions - | ExternalModuleDeclaration - | InternalModuleDeclaration, - injectedDependencies?: InitializeModuleInjectableDependencies -): Promise => { - const loaded = await MedusaModule.bootstrap({ - moduleKey: Modules.CUSTOMER, - defaultPath: MODULE_PACKAGE_NAMES[Modules.CUSTOMER], - declaration: options as - | InternalModuleDeclaration - | ExternalModuleDeclaration, - injectedDependencies, - moduleExports: moduleDefinition, - }) - - return loaded[Modules.CUSTOMER] -} diff --git a/packages/modules/customer/src/loaders/connection.ts b/packages/modules/customer/src/loaders/connection.ts deleted file mode 100644 index cd0f565fa5..0000000000 --- a/packages/modules/customer/src/loaders/connection.ts +++ /dev/null @@ -1,34 +0,0 @@ -import { - InternalModuleDeclaration, - LoaderOptions, - Modules, -} from "@medusajs/modules-sdk" -import { ModulesSdkTypes } from "@medusajs/types" -import { ModulesSdkUtils } from "@medusajs/utils" -import { EntitySchema } from "@mikro-orm/core" -import * as CustomerModels from "../models" - -export default async ( - { - options, - container, - logger, - }: LoaderOptions< - | ModulesSdkTypes.ModuleServiceInitializeOptions - | ModulesSdkTypes.ModuleServiceInitializeCustomDataLayerOptions - >, - moduleDeclaration?: InternalModuleDeclaration -): Promise => { - const entities = Object.values(CustomerModels) as unknown as EntitySchema[] - const pathToMigrations = __dirname + "/../migrations" - - await ModulesSdkUtils.mikroOrmConnectionLoader({ - moduleName: Modules.CUSTOMER, - entities, - container, - options, - moduleDeclaration, - logger, - pathToMigrations, - }) -} diff --git a/packages/modules/customer/src/loaders/container.ts b/packages/modules/customer/src/loaders/container.ts deleted file mode 100644 index 80023e35a0..0000000000 --- a/packages/modules/customer/src/loaders/container.ts +++ /dev/null @@ -1,11 +0,0 @@ -import * as ModuleModels from "@models" -import * as CustomerRepositories from "@repositories" -import * as ModuleServices from "@services" - -import { ModulesSdkUtils } from "@medusajs/utils" - -export default ModulesSdkUtils.moduleContainerLoaderFactory({ - moduleModels: ModuleModels, - moduleServices: ModuleServices, - moduleRepositories: CustomerRepositories, -}) diff --git a/packages/modules/customer/src/loaders/index.ts b/packages/modules/customer/src/loaders/index.ts deleted file mode 100644 index 3614963d8c..0000000000 --- a/packages/modules/customer/src/loaders/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from "./connection" -export * from "./container" diff --git a/packages/modules/customer/src/module-definition.ts b/packages/modules/customer/src/module-definition.ts index 81e86620be..65563913a2 100644 --- a/packages/modules/customer/src/module-definition.ts +++ b/packages/modules/customer/src/module-definition.ts @@ -1,31 +1,8 @@ -import { Modules } from "@medusajs/modules-sdk" import { ModuleExports } from "@medusajs/types" -import { ModulesSdkUtils } from "@medusajs/utils" -import * as Models from "@models" import { CustomerModuleService } from "@services" -import loadConnection from "./loaders/connection" -import loadContainer from "./loaders/container" - -const migrationScriptOptions = { - moduleName: Modules.CUSTOMER, - models: Models, - pathToMigrations: __dirname + "/migrations", -} - -export const revertMigration = ModulesSdkUtils.buildRevertMigrationScript( - migrationScriptOptions -) - -export const runMigrations = ModulesSdkUtils.buildMigrationScript( - migrationScriptOptions -) const service = CustomerModuleService -const loaders = [loadContainer, loadConnection] as any export const moduleDefinition: ModuleExports = { service, - loaders, - runMigrations, - revertMigration, } diff --git a/packages/modules/file/src/index.ts b/packages/modules/file/src/index.ts index 8bbb7fbf90..5167ac59b5 100644 --- a/packages/modules/file/src/index.ts +++ b/packages/modules/file/src/index.ts @@ -1,13 +1,5 @@ import { moduleDefinition } from "./module-definition" -import { initializeFactory, Modules } from "@medusajs/modules-sdk" export * from "./types" export * from "./services" -export const initialize = initializeFactory({ - moduleName: Modules.FILE, - moduleDefinition, -}) - -export const runMigrations = moduleDefinition.runMigrations -export const revertMigration = moduleDefinition.revertMigration export default moduleDefinition diff --git a/packages/modules/file/src/module-definition.ts b/packages/modules/file/src/module-definition.ts index c82f15d05a..c663589052 100644 --- a/packages/modules/file/src/module-definition.ts +++ b/packages/modules/file/src/module-definition.ts @@ -1,28 +1,11 @@ import { ModuleExports } from "@medusajs/types" import { FileModuleService } from "@services" import loadProviders from "./loaders/providers" -import * as ModuleServices from "@services" -import { ModulesSdkUtils } from "@medusajs/utils" -export const runMigrations = () => { - return Promise.resolve() -} -export const revertMigration = () => { - return Promise.resolve() -} - -const containerLoader = ModulesSdkUtils.moduleContainerLoaderFactory({ - moduleModels: {}, - moduleRepositories: {}, - moduleServices: ModuleServices, -}) - -const loaders = [containerLoader, loadProviders] as any +const loaders = [loadProviders] as any const service = FileModuleService export const moduleDefinition: ModuleExports = { service, loaders, - runMigrations, - revertMigration, } diff --git a/packages/modules/fulfillment/src/index.ts b/packages/modules/fulfillment/src/index.ts index 2567a38d8e..5dc2ece165 100644 --- a/packages/modules/fulfillment/src/index.ts +++ b/packages/modules/fulfillment/src/index.ts @@ -1,14 +1,7 @@ import { moduleDefinition } from "./module-definition" -import { initializeFactory, Modules } from "@medusajs/modules-sdk" export * from "./types" export * from "./models" export * from "./services" -export const initialize = initializeFactory({ - moduleName: Modules.FULFILLMENT, - moduleDefinition, -}) -export const runMigrations = moduleDefinition.runMigrations -export const revertMigration = moduleDefinition.revertMigration export default moduleDefinition diff --git a/packages/modules/fulfillment/src/module-definition.ts b/packages/modules/fulfillment/src/module-definition.ts index 4f130ce7dd..6c922130c2 100644 --- a/packages/modules/fulfillment/src/module-definition.ts +++ b/packages/modules/fulfillment/src/module-definition.ts @@ -1,44 +1,11 @@ import { ModuleExports } from "@medusajs/types" -import * as ModuleServices from "@services" import { FulfillmentModuleService } from "@services" -import { Modules } from "@medusajs/modules-sdk" -import * as ModuleModels from "@models" -import { ModulesSdkUtils } from "@medusajs/utils" -import * as ModuleRepositories from "@repositories" import loadProviders from "./loaders/providers" -const migrationScriptOptions = { - moduleName: Modules.FULFILLMENT, - models: ModuleModels, - pathToMigrations: __dirname + "/migrations", -} - -const runMigrations = ModulesSdkUtils.buildMigrationScript( - migrationScriptOptions -) - -const revertMigration = ModulesSdkUtils.buildRevertMigrationScript( - migrationScriptOptions -) - -const containerLoader = ModulesSdkUtils.moduleContainerLoaderFactory({ - moduleModels: ModuleModels, - moduleRepositories: ModuleRepositories, - moduleServices: ModuleServices, -}) - -const connectionLoader = ModulesSdkUtils.mikroOrmConnectionLoaderFactory({ - moduleName: Modules.FULFILLMENT, - moduleModels: Object.values(ModuleModels), - migrationsPath: __dirname + "/migrations", -}) - const service = FulfillmentModuleService -const loaders = [containerLoader, connectionLoader, loadProviders] +const loaders = [loadProviders] export const moduleDefinition: ModuleExports = { service, loaders, - revertMigration, - runMigrations, } diff --git a/packages/modules/inventory-next/src/index.ts b/packages/modules/inventory-next/src/index.ts index eda56a705e..5fb9170fa0 100644 --- a/packages/modules/inventory-next/src/index.ts +++ b/packages/modules/inventory-next/src/index.ts @@ -1,14 +1,6 @@ -import { Modules, initializeFactory } from "@medusajs/modules-sdk" - import { moduleDefinition } from "./module-definition" export * from "./models" export * from "./services" -export const initialize = initializeFactory({ - moduleName: Modules.INVENTORY, - moduleDefinition, -}) -export const runMigrations = moduleDefinition.runMigrations -export const revertMigration = moduleDefinition.revertMigration export default moduleDefinition diff --git a/packages/modules/inventory-next/src/module-definition.ts b/packages/modules/inventory-next/src/module-definition.ts index 18fbbf404a..81e4aefe71 100644 --- a/packages/modules/inventory-next/src/module-definition.ts +++ b/packages/modules/inventory-next/src/module-definition.ts @@ -1,44 +1,8 @@ -import * as InventoryModels from "@models" -import * as InventoryRepositories from "@repositories" -import * as InventoryServices from "@services" - import InventoryService from "./services/inventory" import { ModuleExports } from "@medusajs/types" -import { Modules } from "@medusajs/modules-sdk" -import { ModulesSdkUtils } from "@medusajs/utils" - -const migrationScriptOptions = { - moduleName: Modules.INVENTORY, - models: InventoryModels, - pathToMigrations: __dirname + "/migrations", -} - -const runMigrations = ModulesSdkUtils.buildMigrationScript( - migrationScriptOptions -) - -const revertMigration = ModulesSdkUtils.buildRevertMigrationScript( - migrationScriptOptions -) - -const containerLoader = ModulesSdkUtils.moduleContainerLoaderFactory({ - moduleModels: InventoryModels, - moduleRepositories: InventoryRepositories, - moduleServices: InventoryServices, -}) - -const connectionLoader = ModulesSdkUtils.mikroOrmConnectionLoaderFactory({ - moduleName: Modules.INVENTORY, - moduleModels: Object.values(InventoryModels), - migrationsPath: __dirname + "/migrations", -}) const service = InventoryService -const loaders = [containerLoader, connectionLoader] export const moduleDefinition: ModuleExports = { service, - loaders, - revertMigration, - runMigrations, } diff --git a/packages/modules/notification/src/index.ts b/packages/modules/notification/src/index.ts index 0bd8f8a930..5dc2ece165 100644 --- a/packages/modules/notification/src/index.ts +++ b/packages/modules/notification/src/index.ts @@ -1,14 +1,7 @@ import { moduleDefinition } from "./module-definition" -import { initializeFactory, Modules } from "@medusajs/modules-sdk" export * from "./types" export * from "./models" export * from "./services" -export const initialize = initializeFactory({ - moduleName: Modules.NOTIFICATION, - moduleDefinition, -}) -export const runMigrations = moduleDefinition.runMigrations -export const revertMigration = moduleDefinition.revertMigration export default moduleDefinition diff --git a/packages/modules/notification/src/module-definition.ts b/packages/modules/notification/src/module-definition.ts index 8d43ebb923..4c067f8212 100644 --- a/packages/modules/notification/src/module-definition.ts +++ b/packages/modules/notification/src/module-definition.ts @@ -1,44 +1,11 @@ import { ModuleExports } from "@medusajs/types" -import * as ModuleServices from "@services" import { NotificationModuleService } from "@services" -import { Modules } from "@medusajs/modules-sdk" -import * as ModuleModels from "@models" -import { ModulesSdkUtils } from "@medusajs/utils" -import * as ModuleRepositories from "@repositories" import loadProviders from "./loaders/providers" -const migrationScriptOptions = { - moduleName: Modules.NOTIFICATION, - models: ModuleModels, - pathToMigrations: __dirname + "/migrations", -} - -const runMigrations = ModulesSdkUtils.buildMigrationScript( - migrationScriptOptions -) - -const revertMigration = ModulesSdkUtils.buildRevertMigrationScript( - migrationScriptOptions -) - -const containerLoader = ModulesSdkUtils.moduleContainerLoaderFactory({ - moduleModels: ModuleModels, - moduleRepositories: ModuleRepositories, - moduleServices: ModuleServices, -}) - -const connectionLoader = ModulesSdkUtils.mikroOrmConnectionLoaderFactory({ - moduleName: Modules.NOTIFICATION, - moduleModels: Object.values(ModuleModels), - migrationsPath: __dirname + "/migrations", -}) - const service = NotificationModuleService -const loaders = [containerLoader, connectionLoader, loadProviders] +const loaders = [loadProviders] export const moduleDefinition: ModuleExports = { service, loaders, - revertMigration, - runMigrations, } diff --git a/packages/modules/notification/src/repositories/index.ts b/packages/modules/notification/src/repositories/index.ts deleted file mode 100644 index 147c9cc259..0000000000 --- a/packages/modules/notification/src/repositories/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { MikroOrmBaseRepository as BaseRepository } from "@medusajs/utils" diff --git a/packages/modules/order/src/index.ts b/packages/modules/order/src/index.ts index 9b5c17201b..54d1b85909 100644 --- a/packages/modules/order/src/index.ts +++ b/packages/modules/order/src/index.ts @@ -1,14 +1,7 @@ -import { initializeFactory, Modules } from "@medusajs/modules-sdk" import { moduleDefinition } from "./module-definition" export * from "./models" export * from "./services" export * from "./types" -export const initialize = initializeFactory({ - moduleName: Modules.ORDER, - moduleDefinition, -}) -export const runMigrations = moduleDefinition.runMigrations -export const revertMigration = moduleDefinition.revertMigration export default moduleDefinition diff --git a/packages/modules/order/src/module-definition.ts b/packages/modules/order/src/module-definition.ts index 3a0d42e70d..eb7db999f6 100644 --- a/packages/modules/order/src/module-definition.ts +++ b/packages/modules/order/src/module-definition.ts @@ -1,44 +1,8 @@ -import { Modules } from "@medusajs/modules-sdk" import { ModuleExports } from "@medusajs/types" -import { ModulesSdkUtils } from "@medusajs/utils" -import * as Models from "@models" -import * as ModuleModels from "@models" -import * as ModuleRepositories from "@repositories" -import * as ModuleServices from "@services" import { OrderModuleService } from "@services" -const migrationScriptOptions = { - moduleName: Modules.ORDER, - models: Models, - pathToMigrations: __dirname + "/migrations", -} - -const runMigrations = ModulesSdkUtils.buildMigrationScript( - migrationScriptOptions -) - -const revertMigration = ModulesSdkUtils.buildRevertMigrationScript( - migrationScriptOptions -) - -const containerLoader = ModulesSdkUtils.moduleContainerLoaderFactory({ - moduleModels: ModuleModels, - moduleRepositories: ModuleRepositories, - moduleServices: ModuleServices, -}) - -const connectionLoader = ModulesSdkUtils.mikroOrmConnectionLoaderFactory({ - moduleName: Modules.ORDER, - moduleModels: Object.values(Models), - migrationsPath: __dirname + "/migrations", -}) - const service = OrderModuleService -const loaders = [containerLoader, connectionLoader] as any export const moduleDefinition: ModuleExports = { service, - loaders, - revertMigration, - runMigrations, } diff --git a/packages/modules/payment/src/index.ts b/packages/modules/payment/src/index.ts index d6bb9fb737..17fdedcd8b 100644 --- a/packages/modules/payment/src/index.ts +++ b/packages/modules/payment/src/index.ts @@ -1,11 +1,5 @@ -import { - moduleDefinition, - revertMigration, - runMigrations, -} from "./module-definition" +import { moduleDefinition } from "./module-definition" export default moduleDefinition -export { revertMigration, runMigrations } -export * from "./initialize" export * from "./types" diff --git a/packages/modules/payment/src/initialize/index.ts b/packages/modules/payment/src/initialize/index.ts deleted file mode 100644 index c39148dee4..0000000000 --- a/packages/modules/payment/src/initialize/index.ts +++ /dev/null @@ -1,38 +0,0 @@ -import { - ExternalModuleDeclaration, - InternalModuleDeclaration, - MedusaModule, - MODULE_PACKAGE_NAMES, - Modules, -} from "@medusajs/modules-sdk" -import { - IPaymentModuleService, - ModuleProvider, - ModulesSdkTypes, -} from "@medusajs/types" - -import { moduleDefinition } from "../module-definition" -import { InitializeModuleInjectableDependencies } from "../types" - -export const initialize = async ( - options?: - | ( - | ModulesSdkTypes.ModuleServiceInitializeOptions - | ModulesSdkTypes.ModuleServiceInitializeCustomDataLayerOptions - | ExternalModuleDeclaration - | InternalModuleDeclaration - ) & { providers: ModuleProvider[] }, - injectedDependencies?: InitializeModuleInjectableDependencies -): Promise => { - const loaded = await MedusaModule.bootstrap({ - moduleKey: Modules.PAYMENT, - defaultPath: MODULE_PACKAGE_NAMES[Modules.PAYMENT], - declaration: options as - | InternalModuleDeclaration - | ExternalModuleDeclaration, - injectedDependencies, - moduleExports: moduleDefinition, - }) - - return loaded[Modules.PAYMENT] -} diff --git a/packages/modules/payment/src/loaders/connection.ts b/packages/modules/payment/src/loaders/connection.ts deleted file mode 100644 index 97eec362af..0000000000 --- a/packages/modules/payment/src/loaders/connection.ts +++ /dev/null @@ -1,34 +0,0 @@ -import { - InternalModuleDeclaration, - LoaderOptions, - Modules, -} from "@medusajs/modules-sdk" -import { ModulesSdkTypes } from "@medusajs/types" -import { ModulesSdkUtils } from "@medusajs/utils" -import { EntitySchema } from "@mikro-orm/core" -import * as PaymentModels from "../models" - -export default async ( - { - options, - container, - logger, - }: LoaderOptions< - | ModulesSdkTypes.ModuleServiceInitializeOptions - | ModulesSdkTypes.ModuleServiceInitializeCustomDataLayerOptions - >, - moduleDeclaration?: InternalModuleDeclaration -): Promise => { - const entities = Object.values(PaymentModels) as unknown as EntitySchema[] - const pathToMigrations = __dirname + "/../migrations" - - await ModulesSdkUtils.mikroOrmConnectionLoader({ - moduleName: Modules.PAYMENT, - entities, - container, - options, - moduleDeclaration, - logger, - pathToMigrations, - }) -} diff --git a/packages/modules/payment/src/loaders/container.ts b/packages/modules/payment/src/loaders/container.ts deleted file mode 100644 index 28ea110f2d..0000000000 --- a/packages/modules/payment/src/loaders/container.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { ModulesSdkUtils } from "@medusajs/utils" -import * as ModuleModels from "@models" -import * as ModuleRepositories from "@repositories" -import * as ModuleServices from "@services" - -export default ModulesSdkUtils.moduleContainerLoaderFactory({ - moduleModels: ModuleModels, - moduleRepositories: ModuleRepositories, - moduleServices: ModuleServices, -}) diff --git a/packages/modules/payment/src/loaders/index.ts b/packages/modules/payment/src/loaders/index.ts index 9a4ba9d183..4fff0c18cb 100644 --- a/packages/modules/payment/src/loaders/index.ts +++ b/packages/modules/payment/src/loaders/index.ts @@ -1,4 +1,2 @@ -export * from "./connection" -export * from "./container" export * from "./providers" export * from "./defaults" diff --git a/packages/modules/payment/src/module-definition.ts b/packages/modules/payment/src/module-definition.ts index 456ae8d80f..ae5058a1cc 100644 --- a/packages/modules/payment/src/module-definition.ts +++ b/packages/modules/payment/src/module-definition.ts @@ -1,41 +1,13 @@ import { ModuleExports } from "@medusajs/types" import { PaymentModuleService } from "@services" - -import loadConnection from "./loaders/connection" -import loadContainer from "./loaders/container" import loadProviders from "./loaders/providers" import loadDefaults from "./loaders/defaults" -import { Modules } from "@medusajs/modules-sdk" -import { ModulesSdkUtils } from "@medusajs/utils" - -import * as PaymentModels from "@models" - -const migrationScriptOptions = { - moduleName: Modules.PAYMENT, - models: PaymentModels, - pathToMigrations: __dirname + "/migrations", -} - -export const runMigrations = ModulesSdkUtils.buildMigrationScript( - migrationScriptOptions -) -export const revertMigration = ModulesSdkUtils.buildRevertMigrationScript( - migrationScriptOptions -) - const service = PaymentModuleService -const loaders = [ - loadContainer, - loadConnection, - loadProviders, - loadDefaults, -] as any +const loaders = [loadProviders, loadDefaults] as any export const moduleDefinition: ModuleExports = { service, loaders, - runMigrations, - revertMigration, } diff --git a/packages/modules/pricing/src/index.ts b/packages/modules/pricing/src/index.ts index 515ee01a91..be203865a1 100644 --- a/packages/modules/pricing/src/index.ts +++ b/packages/modules/pricing/src/index.ts @@ -1,14 +1,7 @@ -import { - moduleDefinition, - revertMigration, - runMigrations, -} from "./module-definition" +import { moduleDefinition } from "./module-definition" export default moduleDefinition -export { revertMigration, runMigrations } -export * from "./initialize" -// TODO: remove export from models and services export * from "./models" export * from "./services" export * from "./types" diff --git a/packages/modules/pricing/src/initialize/index.ts b/packages/modules/pricing/src/initialize/index.ts deleted file mode 100644 index 56f10c2ce6..0000000000 --- a/packages/modules/pricing/src/initialize/index.ts +++ /dev/null @@ -1,34 +0,0 @@ -import { - ExternalModuleDeclaration, - InternalModuleDeclaration, - MODULE_PACKAGE_NAMES, - MedusaModule, - Modules, -} from "@medusajs/modules-sdk" -import { IPricingModuleService, 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.PRICING - - const loaded = await MedusaModule.bootstrap({ - moduleKey: serviceKey, - defaultPath: MODULE_PACKAGE_NAMES[Modules.PRICING], - declaration: options as - | InternalModuleDeclaration - | ExternalModuleDeclaration, - injectedDependencies, - moduleExports: moduleDefinition, - }) - - return loaded[serviceKey] -} diff --git a/packages/modules/pricing/src/loaders/connection.ts b/packages/modules/pricing/src/loaders/connection.ts deleted file mode 100644 index 0573cb06b7..0000000000 --- a/packages/modules/pricing/src/loaders/connection.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { InternalModuleDeclaration, LoaderOptions } from "@medusajs/modules-sdk" -import { ModulesSdkTypes } from "@medusajs/types" -import { ModulesSdkUtils } from "@medusajs/utils" -import { EntitySchema } from "@mikro-orm/core" -import * as PricingModels from "../models" - -export default async ( - { - options, - container, - logger, - }: LoaderOptions< - | ModulesSdkTypes.ModuleServiceInitializeOptions - | ModulesSdkTypes.ModuleServiceInitializeCustomDataLayerOptions - >, - moduleDeclaration?: InternalModuleDeclaration -): Promise => { - const entities = Object.values(PricingModels) as unknown as EntitySchema[] - const pathToMigrations = __dirname + "/../migrations" - - await ModulesSdkUtils.mikroOrmConnectionLoader({ - moduleName: "pricing", - entities, - container, - options, - moduleDeclaration, - logger, - pathToMigrations, - }) -} diff --git a/packages/modules/pricing/src/loaders/container.ts b/packages/modules/pricing/src/loaders/container.ts deleted file mode 100644 index 28ea110f2d..0000000000 --- a/packages/modules/pricing/src/loaders/container.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { ModulesSdkUtils } from "@medusajs/utils" -import * as ModuleModels from "@models" -import * as ModuleRepositories from "@repositories" -import * as ModuleServices from "@services" - -export default ModulesSdkUtils.moduleContainerLoaderFactory({ - moduleModels: ModuleModels, - moduleRepositories: ModuleRepositories, - moduleServices: ModuleServices, -}) diff --git a/packages/modules/pricing/src/loaders/index.ts b/packages/modules/pricing/src/loaders/index.ts deleted file mode 100644 index 3614963d8c..0000000000 --- a/packages/modules/pricing/src/loaders/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from "./connection" -export * from "./container" diff --git a/packages/modules/pricing/src/module-definition.ts b/packages/modules/pricing/src/module-definition.ts index b2cbdca762..f3d0ca848e 100644 --- a/packages/modules/pricing/src/module-definition.ts +++ b/packages/modules/pricing/src/module-definition.ts @@ -1,30 +1,8 @@ -import { Modules } from "@medusajs/modules-sdk" import { ModuleExports } from "@medusajs/types" -import { ModulesSdkUtils } from "@medusajs/utils" -import * as Models from "@models" import { PricingModuleService } from "@services" -import loadConnection from "./loaders/connection" -import loadContainer from "./loaders/container" - -const migrationScriptOptions = { - moduleName: Modules.PRICING, - models: Models, - pathToMigrations: __dirname + "/migrations", -} - -export const runMigrations = ModulesSdkUtils.buildMigrationScript( - migrationScriptOptions -) -export const revertMigration = ModulesSdkUtils.buildRevertMigrationScript( - migrationScriptOptions -) const service = PricingModuleService -const loaders = [loadContainer, loadConnection] as any export const moduleDefinition: ModuleExports = { service, - loaders, - runMigrations, - revertMigration, } diff --git a/packages/modules/product/src/index.ts b/packages/modules/product/src/index.ts index 515ee01a91..be203865a1 100644 --- a/packages/modules/product/src/index.ts +++ b/packages/modules/product/src/index.ts @@ -1,14 +1,7 @@ -import { - moduleDefinition, - revertMigration, - runMigrations, -} from "./module-definition" +import { moduleDefinition } from "./module-definition" export default moduleDefinition -export { revertMigration, runMigrations } -export * from "./initialize" -// TODO: remove export from models and services export * from "./models" export * from "./services" export * from "./types" diff --git a/packages/modules/product/src/initialize/index.ts b/packages/modules/product/src/initialize/index.ts deleted file mode 100644 index efaadadc80..0000000000 --- a/packages/modules/product/src/initialize/index.ts +++ /dev/null @@ -1,34 +0,0 @@ -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] -} diff --git a/packages/modules/product/src/loaders/connection.ts b/packages/modules/product/src/loaders/connection.ts deleted file mode 100644 index 6738c53b47..0000000000 --- a/packages/modules/product/src/loaders/connection.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { InternalModuleDeclaration, LoaderOptions } from "@medusajs/modules-sdk" -import { ModulesSdkTypes } from "@medusajs/types" -import { ModulesSdkUtils } from "@medusajs/utils" -import { EntitySchema } from "@mikro-orm/core" -import * as ProductModels from "../models" - -export default async ( - { - options, - container, - logger, - }: LoaderOptions< - | ModulesSdkTypes.ModuleServiceInitializeOptions - | ModulesSdkTypes.ModuleServiceInitializeCustomDataLayerOptions - >, - moduleDeclaration?: InternalModuleDeclaration -): Promise => { - const entities = Object.values(ProductModels) as unknown as EntitySchema[] - const pathToMigrations = __dirname + "/../migrations" - - await ModulesSdkUtils.mikroOrmConnectionLoader({ - moduleName: "product", - entities, - container, - options, - moduleDeclaration, - logger, - pathToMigrations, - }) -} diff --git a/packages/modules/product/src/loaders/container.ts b/packages/modules/product/src/loaders/container.ts deleted file mode 100644 index 28ea110f2d..0000000000 --- a/packages/modules/product/src/loaders/container.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { ModulesSdkUtils } from "@medusajs/utils" -import * as ModuleModels from "@models" -import * as ModuleRepositories from "@repositories" -import * as ModuleServices from "@services" - -export default ModulesSdkUtils.moduleContainerLoaderFactory({ - moduleModels: ModuleModels, - moduleRepositories: ModuleRepositories, - moduleServices: ModuleServices, -}) diff --git a/packages/modules/product/src/loaders/index.ts b/packages/modules/product/src/loaders/index.ts deleted file mode 100644 index 3614963d8c..0000000000 --- a/packages/modules/product/src/loaders/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from "./connection" -export * from "./container" diff --git a/packages/modules/product/src/module-definition.ts b/packages/modules/product/src/module-definition.ts index 177c5c0cb9..6b4ba9b2a9 100644 --- a/packages/modules/product/src/module-definition.ts +++ b/packages/modules/product/src/module-definition.ts @@ -1,31 +1,8 @@ import { ModuleExports } from "@medusajs/types" import { ProductModuleService } from "@services" -import loadConnection from "./loaders/connection" -import loadContainer from "./loaders/container" - -import { Modules } from "@medusajs/modules-sdk" -import { ModulesSdkUtils } from "@medusajs/utils" -import * as ProductModels from "@models" - -const migrationScriptOptions = { - moduleName: Modules.PRODUCT, - models: ProductModels, - pathToMigrations: __dirname + "/migrations", -} - -export const runMigrations = ModulesSdkUtils.buildMigrationScript( - migrationScriptOptions -) -export const revertMigration = ModulesSdkUtils.buildRevertMigrationScript( - migrationScriptOptions -) const service = ProductModuleService -const loaders = [loadContainer, loadConnection] as any export const moduleDefinition: ModuleExports = { service, - loaders, - runMigrations, - revertMigration, } diff --git a/packages/modules/product/src/repositories/index.ts b/packages/modules/product/src/repositories/index.ts index 81c895352d..dae4cbfa37 100644 --- a/packages/modules/product/src/repositories/index.ts +++ b/packages/modules/product/src/repositories/index.ts @@ -1,3 +1,2 @@ -export { MikroOrmBaseRepository as BaseRepository } from "@medusajs/utils" export { ProductRepository } from "./product" export { ProductCategoryRepository } from "./product-category" diff --git a/packages/modules/product/src/services/__fixtures__/product.ts b/packages/modules/product/src/services/__fixtures__/product.ts deleted file mode 100644 index 7a185e0e24..0000000000 --- a/packages/modules/product/src/services/__fixtures__/product.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { asValue } from "awilix" - -export const nonExistingProductId = "non-existing-id" - -export const productRepositoryMock = { - productRepository: asValue({ - find: jest.fn().mockImplementation(async ({ where: { id } }) => { - if (id === nonExistingProductId) { - return [] - } - - return [{}] - }), - findAndCount: jest.fn().mockResolvedValue([[], 0]), - getFreshManager: jest.fn().mockResolvedValue({}), - }), -} diff --git a/packages/modules/product/src/services/__tests__/index.ts b/packages/modules/product/src/services/__tests__/index.ts new file mode 100644 index 0000000000..f2e589564e --- /dev/null +++ b/packages/modules/product/src/services/__tests__/index.ts @@ -0,0 +1 @@ +it("noop", () => {}) diff --git a/packages/modules/product/src/services/__tests__/product.spec.ts b/packages/modules/product/src/services/__tests__/product.spec.ts deleted file mode 100644 index 5d3a3e1707..0000000000 --- a/packages/modules/product/src/services/__tests__/product.spec.ts +++ /dev/null @@ -1,227 +0,0 @@ -import { - nonExistingProductId, - productRepositoryMock, -} from "../__fixtures__/product" -import { createMedusaContainer } from "@medusajs/utils" -import { asValue } from "awilix" -import ContainerLoader from "../../loaders/container" - -describe("Product service", function () { - let container - - beforeEach(async function () { - jest.clearAllMocks() - - container = createMedusaContainer() - container.register("manager", asValue({})) - - await ContainerLoader({ container }) - - container.register(productRepositoryMock) - }) - - it("should retrieve a product", async function () { - const productService = container.resolve("productService") - const productRepository = container.resolve("productRepository") - const productId = "existing-product" - - await productService.retrieve(productId) - - expect(productRepository.find).toHaveBeenCalledWith( - { - where: { - id: productId, - }, - options: { - fields: undefined, - limit: undefined, - offset: 0, - populate: [], - withDeleted: undefined, - }, - }, - expect.any(Object) - ) - }) - - it("should fail to retrieve a product", async function () { - const productService = container.resolve("productService") - const productRepository = container.resolve("productRepository") - - const err = await productService - .retrieve(nonExistingProductId) - .catch((e) => e) - - expect(productRepository.find).toHaveBeenCalledWith( - { - where: { - id: nonExistingProductId, - }, - options: { - fields: undefined, - limit: undefined, - offset: 0, - populate: [], - withDeleted: undefined, - }, - }, - expect.any(Object) - ) - - expect(err.message).toBe( - `Product with id: ${nonExistingProductId} was not found` - ) - }) - - it("should list products", async function () { - const productService = container.resolve("productService") - const productRepository = container.resolve("productRepository") - - const filters = {} - const config = { - relations: [], - } - - await productService.list(filters, config) - - expect(productRepository.find).toHaveBeenCalledWith( - { - where: {}, - options: { - fields: undefined, - limit: 15, - offset: 0, - orderBy: { - id: "ASC", - }, - populate: [], - withDeleted: undefined, - }, - }, - expect.any(Object) - ) - }) - - it("should list products with filters", async function () { - const productService = container.resolve("productService") - const productRepository = container.resolve("productRepository") - - const filters = { - tags: { - value: { - $in: ["test"], - }, - }, - } - const config = { - relations: [], - } - - await productService.list(filters, config) - - expect(productRepository.find).toHaveBeenCalledWith( - { - where: { - tags: { - value: { - $in: ["test"], - }, - }, - }, - options: { - fields: undefined, - limit: 15, - offset: 0, - orderBy: { - id: "ASC", - }, - populate: [], - withDeleted: undefined, - }, - }, - expect.any(Object) - ) - }) - - it("should list products with filters and relations", async function () { - const productService = container.resolve("productService") - const productRepository = container.resolve("productRepository") - - const filters = { - tags: { - value: { - $in: ["test"], - }, - }, - } - const config = { - relations: ["tags"], - } - - await productService.list(filters, config) - - expect(productRepository.find).toHaveBeenCalledWith( - { - where: { - tags: { - value: { - $in: ["test"], - }, - }, - }, - options: { - fields: undefined, - limit: 15, - offset: 0, - orderBy: { - id: "ASC", - }, - withDeleted: undefined, - populate: ["tags"], - }, - }, - expect.any(Object) - ) - }) - - it("should list and count the products with filters and relations", async function () { - const productService = container.resolve("productService") - const productRepository = container.resolve("productRepository") - - const filters = { - tags: { - value: { - $in: ["test"], - }, - }, - } - const config = { - relations: ["tags"], - } - - await productService.listAndCount(filters, config) - - expect(productRepository.findAndCount).toHaveBeenCalledWith( - { - where: { - tags: { - value: { - $in: ["test"], - }, - }, - }, - options: { - fields: undefined, - limit: 15, - offset: 0, - orderBy: { - id: "ASC", - }, - withDeleted: undefined, - populate: ["tags"], - }, - }, - expect.any(Object) - ) - }) -}) diff --git a/packages/modules/promotion/src/index.ts b/packages/modules/promotion/src/index.ts index d449f73544..dd414e1b19 100644 --- a/packages/modules/promotion/src/index.ts +++ b/packages/modules/promotion/src/index.ts @@ -1,10 +1,3 @@ -import { - moduleDefinition, - revertMigration, - runMigrations, -} from "./module-definition" +import { moduleDefinition } from "./module-definition" export default moduleDefinition -export { revertMigration, runMigrations } - -export * from "./initialize" diff --git a/packages/modules/promotion/src/initialize/index.ts b/packages/modules/promotion/src/initialize/index.ts deleted file mode 100644 index af913a2118..0000000000 --- a/packages/modules/promotion/src/initialize/index.ts +++ /dev/null @@ -1,31 +0,0 @@ -import { - ExternalModuleDeclaration, - InternalModuleDeclaration, - MODULE_PACKAGE_NAMES, - MedusaModule, - Modules, -} from "@medusajs/modules-sdk" -import { IPromotionModuleService, ModulesSdkTypes } from "@medusajs/types" -import { moduleDefinition } from "../module-definition" -import { InitializeModuleInjectableDependencies } from "../types" - -export const initialize = async ( - options?: - | ModulesSdkTypes.ModuleServiceInitializeOptions - | ModulesSdkTypes.ModuleServiceInitializeCustomDataLayerOptions - | ExternalModuleDeclaration - | InternalModuleDeclaration, - injectedDependencies?: InitializeModuleInjectableDependencies -): Promise => { - const loaded = await MedusaModule.bootstrap({ - moduleKey: Modules.PROMOTION, - defaultPath: MODULE_PACKAGE_NAMES[Modules.PROMOTION], - declaration: options as - | InternalModuleDeclaration - | ExternalModuleDeclaration, - injectedDependencies, - moduleExports: moduleDefinition, - }) - - return loaded[Modules.PROMOTION] -} diff --git a/packages/modules/promotion/src/loaders/connection.ts b/packages/modules/promotion/src/loaders/connection.ts deleted file mode 100644 index fbbff60e87..0000000000 --- a/packages/modules/promotion/src/loaders/connection.ts +++ /dev/null @@ -1,34 +0,0 @@ -import { - InternalModuleDeclaration, - LoaderOptions, - Modules, -} from "@medusajs/modules-sdk" -import { ModulesSdkTypes } from "@medusajs/types" -import { ModulesSdkUtils } from "@medusajs/utils" -import { EntitySchema } from "@mikro-orm/core" -import * as PromotionModels from "../models" - -export default async ( - { - options, - container, - logger, - }: LoaderOptions< - | ModulesSdkTypes.ModuleServiceInitializeOptions - | ModulesSdkTypes.ModuleServiceInitializeCustomDataLayerOptions - >, - moduleDeclaration?: InternalModuleDeclaration -): Promise => { - const entities = Object.values(PromotionModels) as unknown as EntitySchema[] - const pathToMigrations = __dirname + "/../migrations" - - await ModulesSdkUtils.mikroOrmConnectionLoader({ - moduleName: Modules.PROMOTION, - entities, - container, - options, - moduleDeclaration, - logger, - pathToMigrations, - }) -} diff --git a/packages/modules/promotion/src/loaders/container.ts b/packages/modules/promotion/src/loaders/container.ts deleted file mode 100644 index 28ea110f2d..0000000000 --- a/packages/modules/promotion/src/loaders/container.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { ModulesSdkUtils } from "@medusajs/utils" -import * as ModuleModels from "@models" -import * as ModuleRepositories from "@repositories" -import * as ModuleServices from "@services" - -export default ModulesSdkUtils.moduleContainerLoaderFactory({ - moduleModels: ModuleModels, - moduleRepositories: ModuleRepositories, - moduleServices: ModuleServices, -}) diff --git a/packages/modules/promotion/src/loaders/index.ts b/packages/modules/promotion/src/loaders/index.ts deleted file mode 100644 index 3614963d8c..0000000000 --- a/packages/modules/promotion/src/loaders/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from "./connection" -export * from "./container" diff --git a/packages/modules/promotion/src/module-definition.ts b/packages/modules/promotion/src/module-definition.ts index d2e899cef8..d40766cf05 100644 --- a/packages/modules/promotion/src/module-definition.ts +++ b/packages/modules/promotion/src/module-definition.ts @@ -1,30 +1,8 @@ -import { Modules } from "@medusajs/modules-sdk" import { ModuleExports } from "@medusajs/types" -import { ModulesSdkUtils } from "@medusajs/utils" -import * as Models from "@models" import { PromotionModuleService } from "@services" -import loadConnection from "./loaders/connection" -import loadContainer from "./loaders/container" - -const migrationScriptOptions = { - moduleName: Modules.PROMOTION, - models: Models, - pathToMigrations: __dirname + "/migrations", -} - -export const runMigrations = ModulesSdkUtils.buildMigrationScript( - migrationScriptOptions -) -export const revertMigration = ModulesSdkUtils.buildRevertMigrationScript( - migrationScriptOptions -) const service = PromotionModuleService -const loaders = [loadContainer, loadConnection] as any export const moduleDefinition: ModuleExports = { service, - loaders, - runMigrations, - revertMigration, } diff --git a/packages/modules/region/src/index.ts b/packages/modules/region/src/index.ts index d449f73544..dd414e1b19 100644 --- a/packages/modules/region/src/index.ts +++ b/packages/modules/region/src/index.ts @@ -1,10 +1,3 @@ -import { - moduleDefinition, - revertMigration, - runMigrations, -} from "./module-definition" +import { moduleDefinition } from "./module-definition" export default moduleDefinition -export { revertMigration, runMigrations } - -export * from "./initialize" diff --git a/packages/modules/region/src/initialize/index.ts b/packages/modules/region/src/initialize/index.ts deleted file mode 100644 index 9cad528c58..0000000000 --- a/packages/modules/region/src/initialize/index.ts +++ /dev/null @@ -1,34 +0,0 @@ -import { - ExternalModuleDeclaration, - InternalModuleDeclaration, - MedusaModule, - MODULE_PACKAGE_NAMES, - Modules, -} from "@medusajs/modules-sdk" -import { IRegionModuleService, 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.REGION - - const loaded = await MedusaModule.bootstrap({ - moduleKey: serviceKey, - defaultPath: MODULE_PACKAGE_NAMES[Modules.REGION], - declaration: options as - | InternalModuleDeclaration - | ExternalModuleDeclaration, - injectedDependencies, - moduleExports: moduleDefinition, - }) - - return loaded[serviceKey] -} diff --git a/packages/modules/region/src/loaders/connection.ts b/packages/modules/region/src/loaders/connection.ts deleted file mode 100644 index 5fc66f57e8..0000000000 --- a/packages/modules/region/src/loaders/connection.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { - InternalModuleDeclaration, - LoaderOptions, - Modules, -} from "@medusajs/modules-sdk" -import { ModulesSdkTypes } from "@medusajs/types" -import { ModulesSdkUtils } from "@medusajs/utils" -import { EntitySchema } from "@mikro-orm/core" - -import * as RegionModels from "@models" - -export default async ( - { - options, - container, - logger, - }: LoaderOptions< - | ModulesSdkTypes.ModuleServiceInitializeOptions - | ModulesSdkTypes.ModuleServiceInitializeCustomDataLayerOptions - >, - moduleDeclaration?: InternalModuleDeclaration -): Promise => { - const entities = Object.values(RegionModels) as unknown as EntitySchema[] - const pathToMigrations = __dirname + "/../migrations" - - await ModulesSdkUtils.mikroOrmConnectionLoader({ - moduleName: Modules.REGION, - entities, - container, - options, - moduleDeclaration, - logger, - pathToMigrations, - }) -} diff --git a/packages/modules/region/src/loaders/container.ts b/packages/modules/region/src/loaders/container.ts deleted file mode 100644 index 28ea110f2d..0000000000 --- a/packages/modules/region/src/loaders/container.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { ModulesSdkUtils } from "@medusajs/utils" -import * as ModuleModels from "@models" -import * as ModuleRepositories from "@repositories" -import * as ModuleServices from "@services" - -export default ModulesSdkUtils.moduleContainerLoaderFactory({ - moduleModels: ModuleModels, - moduleRepositories: ModuleRepositories, - moduleServices: ModuleServices, -}) diff --git a/packages/modules/region/src/loaders/index.ts b/packages/modules/region/src/loaders/index.ts index 1f4af39e22..f88fd30642 100644 --- a/packages/modules/region/src/loaders/index.ts +++ b/packages/modules/region/src/loaders/index.ts @@ -1,4 +1 @@ -export * from "./connection" -export * from "./container" export * from "./defaults" - diff --git a/packages/modules/region/src/module-definition.ts b/packages/modules/region/src/module-definition.ts index 8fc1cafe54..6446066774 100644 --- a/packages/modules/region/src/module-definition.ts +++ b/packages/modules/region/src/module-definition.ts @@ -1,32 +1,11 @@ import { ModuleExports } from "@medusajs/types" import { RegionModuleService } from "./services" - -import { Modules } from "@medusajs/modules-sdk" -import { ModulesSdkUtils } from "@medusajs/utils" -import * as RegionModels from "@models" -import loadConnection from "./loaders/connection" -import loadContainer from "./loaders/container" import loadDefaults from "./loaders/defaults" -const migrationScriptOptions = { - moduleName: Modules.REGION, - models: RegionModels, - pathToMigrations: __dirname + "/migrations", -} - -export const runMigrations = ModulesSdkUtils.buildMigrationScript( - migrationScriptOptions -) -export const revertMigration = ModulesSdkUtils.buildRevertMigrationScript( - migrationScriptOptions -) - const service = RegionModuleService -const loaders = [loadContainer, loadConnection, loadDefaults] as any +const loaders = [loadDefaults] export const moduleDefinition: ModuleExports = { service, loaders, - runMigrations, - revertMigration, } diff --git a/packages/modules/sales-channel/integration-tests/__tests__/services/sales-channel-module.spec.ts b/packages/modules/sales-channel/integration-tests/__tests__/services/sales-channel-module.spec.ts index b43d80ad88..70c3cc7c4c 100644 --- a/packages/modules/sales-channel/integration-tests/__tests__/services/sales-channel-module.spec.ts +++ b/packages/modules/sales-channel/integration-tests/__tests__/services/sales-channel-module.spec.ts @@ -2,242 +2,241 @@ import { SqlEntityManager } from "@mikro-orm/postgresql" import { ISalesChannelModuleService } from "@medusajs/types" -import { initialize } from "../../../src" - import { createSalesChannels } from "../../__fixtures__" -import { DB_URL, MikroOrmWrapper } from "../../utils" +import { moduleIntegrationTestRunner, SuiteOptions } from "medusa-test-utils" +import { Modules } from "@medusajs/modules-sdk" jest.setTimeout(30000) -describe("Sales Channel Service", () => { - let service: ISalesChannelModuleService - let testManager: SqlEntityManager - let repositoryManager: SqlEntityManager +moduleIntegrationTestRunner({ + moduleName: Modules.SALES_CHANNEL, + testSuite: ({ + MikroOrmWrapper, + medusaApp, + }: SuiteOptions) => { + let service: ISalesChannelModuleService - beforeEach(async () => { - await MikroOrmWrapper.setupDatabase() - repositoryManager = await MikroOrmWrapper.forkManager() - - service = await initialize({ - database: { - clientUrl: DB_URL, - schema: process.env.MEDUSA_SALES_CHANNEL_DB_SCHEMA, - }, + beforeEach(() => { + service = medusaApp.modules[Modules.SALES_CHANNEL] }) - testManager = await MikroOrmWrapper.forkManager() + describe("Sales Channel Service", () => { + let testManager: SqlEntityManager + let repositoryManager: SqlEntityManager - await createSalesChannels(testManager) - }) + beforeEach(async () => { + repositoryManager = await MikroOrmWrapper.forkManager() + testManager = await MikroOrmWrapper.forkManager() - afterEach(async () => { - await MikroOrmWrapper.clearDatabase() - }) - - describe("create", () => { - it("should create a SalesChannel successfully", async () => { - const [created] = await service.create([ - { - name: "test", - description: "test", - }, - ]) - - const [channel] = await service.list({ - name: [created.name], + await createSalesChannels(testManager) }) - expect(channel.name).toEqual("test") - expect(channel.description).toEqual("test") - }) - }) + describe("create", () => { + it("should create a SalesChannel successfully", async () => { + const [created] = await service.create([ + { + name: "test", + description: "test", + }, + ]) - describe("retrieve", () => { - const id = "channel-1" + const [channel] = await service.list({ + name: [created.name], + }) - it("should return SalesChannel for the given id", async () => { - const result = await service.retrieve(id) - - expect(result).toEqual( - expect.objectContaining({ - id, + expect(channel.name).toEqual("test") + expect(channel.description).toEqual("test") }) - ) - }) - - it("should throw an error when SalesChannelId with id does not exist", async () => { - let error - - try { - await service.retrieve("does-not-exist") - } catch (e) { - error = e - } - - expect(error.message).toEqual( - "SalesChannel with id: does-not-exist was not found" - ) - }) - }) - - describe("update", () => { - const id = "channel-2" - - it("should update the name of the SalesChannel successfully", async () => { - await service.update(id, { - name: "Update name 2", - is_disabled: true, }) - const channel = await service.retrieve(id) + describe("retrieve", () => { + const id = "channel-1" - expect(channel.name).toEqual("Update name 2") - expect(channel.is_disabled).toEqual(true) - }) + it("should return SalesChannel for the given id", async () => { + const result = await service.retrieve(id) - it("should throw an error when a id does not exist", async () => { - let error - - try { - await service.update("does-not-exist", { - name: "does-not-exist", + expect(result).toEqual( + expect.objectContaining({ + id, + }) + ) }) - } catch (e) { - error = e - } - expect(error.message).toEqual( - 'SalesChannel with id "does-not-exist" not found' - ) - }) - }) + it("should throw an error when SalesChannelId with id does not exist", async () => { + let error - describe("list", () => { - it("should return a list of SalesChannels", async () => { - const result = await service.list() + try { + await service.retrieve("does-not-exist") + } catch (e) { + error = e + } - expect(result).toEqual([ - expect.objectContaining({ - id: "channel-1", - }), - expect.objectContaining({ - id: "channel-2", - }), - expect.objectContaining({ - id: "channel-3", - }), - ]) - }) - - it("should list SalesChannels by name", async () => { - const result = await service.list({ - name: ["Channel 2", "Channel 3"], + expect(error.message).toEqual( + "SalesChannel with id: does-not-exist was not found" + ) + }) }) - expect(result).toEqual([ - expect.objectContaining({ - id: "channel-2", - }), - expect.objectContaining({ - id: "channel-3", - }), - ]) - }) - }) + describe("update", () => { + const id = "channel-2" - describe("listAndCount", () => { - it("should return sales channels and count", async () => { - const [result, count] = await service.listAndCount() + it("should update the name of the SalesChannel successfully", async () => { + await service.update(id, { + name: "Update name 2", + is_disabled: true, + }) - expect(count).toEqual(3) - expect(result).toEqual([ - expect.objectContaining({ - id: "channel-1", - }), - expect.objectContaining({ - id: "channel-2", - }), - expect.objectContaining({ - id: "channel-3", - }), - ]) - }) + const channel = await service.retrieve(id) - it("should return sales channels and count when filtered", async () => { - const [result, count] = await service.listAndCount({ - id: ["channel-2"], + expect(channel.name).toEqual("Update name 2") + expect(channel.is_disabled).toEqual(true) + }) + + it("should throw an error when a id does not exist", async () => { + let error + + try { + await service.update("does-not-exist", { + name: "does-not-exist", + }) + } catch (e) { + error = e + } + + expect(error.message).toEqual( + 'SalesChannel with id "does-not-exist" not found' + ) + }) }) - expect(count).toEqual(1) - expect(result).toEqual([ - expect.objectContaining({ - id: "channel-2", - }), - ]) - }) + describe("list", () => { + it("should return a list of SalesChannels", async () => { + const result = await service.list() - it("should return sales channels and count when using skip and take", async () => { - const [results, count] = await service.listAndCount( - {}, - { skip: 1, take: 1 } - ) + expect(result).toEqual([ + expect.objectContaining({ + id: "channel-1", + }), + expect.objectContaining({ + id: "channel-2", + }), + expect.objectContaining({ + id: "channel-3", + }), + ]) + }) - expect(count).toEqual(3) - expect(results).toEqual([ - expect.objectContaining({ - id: "channel-2", - }), - ]) - }) + it("should list SalesChannels by name", async () => { + const result = await service.list({ + name: ["Channel 2", "Channel 3"], + }) - it("should return requested fields", async () => { - const [result, count] = await service.listAndCount( - {}, - { - take: 1, - select: ["id", "name"], - } - ) - - const serialized = JSON.parse(JSON.stringify(result)) - - expect(count).toEqual(3) - expect(serialized).toEqual([ - { - id: "channel-1", - name: "Channel 1", - }, - ]) - }) - - it("should filter disabled channels", async () => { - const [result, count] = await service.listAndCount( - { is_disabled: true }, - { select: ["id"] } - ) - - const serialized = JSON.parse(JSON.stringify(result)) - - expect(count).toEqual(1) - expect(serialized).toEqual([ - { - id: "channel-3", - }, - ]) - }) - }) - - describe("delete", () => { - const id = "channel-2" - - it("should delete the SalesChannel given an id successfully", async () => { - await service.delete([id]) - - const result = await service.list({ - id: [id], + expect(result).toEqual([ + expect.objectContaining({ + id: "channel-2", + }), + expect.objectContaining({ + id: "channel-3", + }), + ]) + }) }) - expect(result).toHaveLength(0) + describe("listAndCount", () => { + it("should return sales channels and count", async () => { + const [result, count] = await service.listAndCount() + + expect(count).toEqual(3) + expect(result).toEqual([ + expect.objectContaining({ + id: "channel-1", + }), + expect.objectContaining({ + id: "channel-2", + }), + expect.objectContaining({ + id: "channel-3", + }), + ]) + }) + + it("should return sales channels and count when filtered", async () => { + const [result, count] = await service.listAndCount({ + id: ["channel-2"], + }) + + expect(count).toEqual(1) + expect(result).toEqual([ + expect.objectContaining({ + id: "channel-2", + }), + ]) + }) + + it("should return sales channels and count when using skip and take", async () => { + const [results, count] = await service.listAndCount( + {}, + { skip: 1, take: 1 } + ) + + expect(count).toEqual(3) + expect(results).toEqual([ + expect.objectContaining({ + id: "channel-2", + }), + ]) + }) + + it("should return requested fields", async () => { + const [result, count] = await service.listAndCount( + {}, + { + take: 1, + select: ["id", "name"], + } + ) + + const serialized = JSON.parse(JSON.stringify(result)) + + expect(count).toEqual(3) + expect(serialized).toEqual([ + { + id: "channel-1", + name: "Channel 1", + }, + ]) + }) + + it("should filter disabled channels", async () => { + const [result, count] = await service.listAndCount( + { is_disabled: true }, + { select: ["id"] } + ) + + const serialized = JSON.parse(JSON.stringify(result)) + + expect(count).toEqual(1) + expect(serialized).toEqual([ + { + id: "channel-3", + }, + ]) + }) + }) + + describe("delete", () => { + const id = "channel-2" + + it("should delete the SalesChannel given an id successfully", async () => { + await service.delete([id]) + + const result = await service.list({ + id: [id], + }) + + expect(result).toHaveLength(0) + }) + }) }) - }) + }, }) diff --git a/packages/modules/sales-channel/src/index.ts b/packages/modules/sales-channel/src/index.ts index cde39437b1..d464b550c0 100644 --- a/packages/modules/sales-channel/src/index.ts +++ b/packages/modules/sales-channel/src/index.ts @@ -1,27 +1,7 @@ -import { Modules } from "@medusajs/modules-sdk" -import { ModulesSdkUtils } from "@medusajs/utils" - -import * as SalesChannelModels from "@models" - import { moduleDefinition } from "./module-definition" export default moduleDefinition -const migrationScriptOptions = { - moduleName: Modules.SALES_CHANNEL, - models: SalesChannelModels, - pathToMigrations: __dirname + "/migrations", -} - -export const runMigrations = ModulesSdkUtils.buildMigrationScript( - migrationScriptOptions -) -export const revertMigration = ModulesSdkUtils.buildRevertMigrationScript( - migrationScriptOptions -) - -export * from "./initialize" export * from "./types" -export * from "./loaders" export * from "./models" export * from "./services" diff --git a/packages/modules/sales-channel/src/initialize/index.ts b/packages/modules/sales-channel/src/initialize/index.ts deleted file mode 100644 index 74a84a8116..0000000000 --- a/packages/modules/sales-channel/src/initialize/index.ts +++ /dev/null @@ -1,34 +0,0 @@ -import { - ExternalModuleDeclaration, - InternalModuleDeclaration, - MedusaModule, - MODULE_PACKAGE_NAMES, - Modules, -} from "@medusajs/modules-sdk" -import { ModulesSdkTypes, ISalesChannelModuleService } 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.SALES_CHANNEL - - const loaded = await MedusaModule.bootstrap({ - moduleKey: serviceKey, - defaultPath: MODULE_PACKAGE_NAMES[Modules.SALES_CHANNEL], - declaration: options as - | InternalModuleDeclaration - | ExternalModuleDeclaration, - injectedDependencies, - moduleExports: moduleDefinition, - }) - - return loaded[serviceKey] -} diff --git a/packages/modules/sales-channel/src/loaders/connection.ts b/packages/modules/sales-channel/src/loaders/connection.ts deleted file mode 100644 index fc88330aa2..0000000000 --- a/packages/modules/sales-channel/src/loaders/connection.ts +++ /dev/null @@ -1,37 +0,0 @@ -import { - InternalModuleDeclaration, - LoaderOptions, - Modules, -} from "@medusajs/modules-sdk" -import { ModulesSdkTypes } from "@medusajs/types" -import { ModulesSdkUtils } from "@medusajs/utils" -import { EntitySchema } from "@mikro-orm/core" - -import * as SalesChannelModels from "@models" - -export default async ( - { - options, - container, - logger, - }: LoaderOptions< - | ModulesSdkTypes.ModuleServiceInitializeOptions - | ModulesSdkTypes.ModuleServiceInitializeCustomDataLayerOptions - >, - moduleDeclaration?: InternalModuleDeclaration -): Promise => { - const entities = Object.values( - SalesChannelModels - ) as unknown as EntitySchema[] - const pathToMigrations = __dirname + "/../migrations" - - await ModulesSdkUtils.mikroOrmConnectionLoader({ - moduleName: Modules.SALES_CHANNEL, - entities, - container, - options, - moduleDeclaration, - logger, - pathToMigrations, - }) -} diff --git a/packages/modules/sales-channel/src/loaders/container.ts b/packages/modules/sales-channel/src/loaders/container.ts deleted file mode 100644 index 28ea110f2d..0000000000 --- a/packages/modules/sales-channel/src/loaders/container.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { ModulesSdkUtils } from "@medusajs/utils" -import * as ModuleModels from "@models" -import * as ModuleRepositories from "@repositories" -import * as ModuleServices from "@services" - -export default ModulesSdkUtils.moduleContainerLoaderFactory({ - moduleModels: ModuleModels, - moduleRepositories: ModuleRepositories, - moduleServices: ModuleServices, -}) diff --git a/packages/modules/sales-channel/src/loaders/index.ts b/packages/modules/sales-channel/src/loaders/index.ts deleted file mode 100644 index 3614963d8c..0000000000 --- a/packages/modules/sales-channel/src/loaders/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from "./connection" -export * from "./container" diff --git a/packages/modules/sales-channel/src/module-definition.ts b/packages/modules/sales-channel/src/module-definition.ts index ea646d3f28..55251db041 100644 --- a/packages/modules/sales-channel/src/module-definition.ts +++ b/packages/modules/sales-channel/src/module-definition.ts @@ -1,13 +1,8 @@ import { ModuleExports } from "@medusajs/types" import { SalesChannelModuleService } from "@services" -import loadConnection from "./loaders/connection" -import loadContainer from "./loaders/container" - const service = SalesChannelModuleService -const loaders = [loadContainer, loadConnection] as any export const moduleDefinition: ModuleExports = { service, - loaders, } diff --git a/packages/modules/sales-channel/src/repositories/index.ts b/packages/modules/sales-channel/src/repositories/index.ts deleted file mode 100644 index 147c9cc259..0000000000 --- a/packages/modules/sales-channel/src/repositories/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { MikroOrmBaseRepository as BaseRepository } from "@medusajs/utils" diff --git a/packages/modules/sales-channel/src/services/__fixtures__/sales-channel.ts b/packages/modules/sales-channel/src/services/__fixtures__/sales-channel.ts deleted file mode 100644 index 4549d004b4..0000000000 --- a/packages/modules/sales-channel/src/services/__fixtures__/sales-channel.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { asValue } from "awilix" - -export const salesChannelRepositoryMock = { - salesChannelRepository: asValue({ - find: jest.fn().mockImplementation(async ({ where: { code } }) => { - return [{}] - }), - findAndCount: jest.fn().mockResolvedValue([[], 0]), - getFreshManager: jest.fn().mockResolvedValue({}), - }), -} diff --git a/packages/modules/sales-channel/src/services/__tests__/index.ts b/packages/modules/sales-channel/src/services/__tests__/index.ts new file mode 100644 index 0000000000..f2e589564e --- /dev/null +++ b/packages/modules/sales-channel/src/services/__tests__/index.ts @@ -0,0 +1 @@ +it("noop", () => {}) diff --git a/packages/modules/sales-channel/src/services/__tests__/sales-channle.spec.ts b/packages/modules/sales-channel/src/services/__tests__/sales-channle.spec.ts deleted file mode 100644 index 22ec375ba1..0000000000 --- a/packages/modules/sales-channel/src/services/__tests__/sales-channle.spec.ts +++ /dev/null @@ -1,47 +0,0 @@ -import { createMedusaContainer } from "@medusajs/utils" -import { asValue } from "awilix" -import ContainerLoader from "../../loaders/container" -import { salesChannelRepositoryMock } from "../__fixtures__/sales-channel" - -describe("Sales channel service", function () { - let container - - beforeEach(async function () { - jest.clearAllMocks() - - container = createMedusaContainer() - container.register("manager", asValue({})) - - await ContainerLoader({ container }) - - container.register(salesChannelRepositoryMock) - }) - - it("should list sales channels with filters and relations", async function () { - const salesChannelRepository = container.resolve("salesChannelRepository") - const salesChannelService = container.resolve("salesChannelService") - - const config = { - select: ["id", "name"], - } - - await salesChannelService.list({}, config) - - expect(salesChannelRepository.find).toHaveBeenCalledWith( - { - where: {}, - options: { - fields: ["id", "name"], - limit: 15, - offset: 0, - orderBy: { - id: "ASC", - }, - withDeleted: undefined, - populate: [], - }, - }, - expect.any(Object) - ) - }) -}) diff --git a/packages/modules/stock-location-next/src/index.ts b/packages/modules/stock-location-next/src/index.ts index f9bdcf3c9e..5fb9170fa0 100644 --- a/packages/modules/stock-location-next/src/index.ts +++ b/packages/modules/stock-location-next/src/index.ts @@ -1,14 +1,6 @@ -import { Modules, initializeFactory } from "@medusajs/modules-sdk" - import { moduleDefinition } from "./module-definition" export * from "./models" export * from "./services" -export const initialize = initializeFactory({ - moduleName: Modules.STOCK_LOCATION, - moduleDefinition, -}) -export const runMigrations = moduleDefinition.runMigrations -export const revertMigration = moduleDefinition.revertMigration export default moduleDefinition diff --git a/packages/modules/stock-location-next/src/module-definition.ts b/packages/modules/stock-location-next/src/module-definition.ts index aacce844a9..028bc7f989 100644 --- a/packages/modules/stock-location-next/src/module-definition.ts +++ b/packages/modules/stock-location-next/src/module-definition.ts @@ -1,44 +1,8 @@ -import * as StockLocationModels from "@models" -import * as StockLocationRepostiories from "@repositories" -import * as StockLocationServices from "@services" - -import { Modules } from "@medusajs/modules-sdk" -import { ModuleExports } from "@medusajs/types" -import { ModulesSdkUtils } from "@medusajs/utils" import { StockLocationModuleService } from "@services" - -const migrationScriptOptions = { - moduleName: Modules.STOCK_LOCATION, - models: StockLocationModels, - pathToMigrations: __dirname + "/migrations", -} - -const runMigrations = ModulesSdkUtils.buildMigrationScript( - migrationScriptOptions -) - -const revertMigration = ModulesSdkUtils.buildRevertMigrationScript( - migrationScriptOptions -) - -const containerLoader = ModulesSdkUtils.moduleContainerLoaderFactory({ - moduleModels: StockLocationModels, - moduleRepositories: StockLocationRepostiories, - moduleServices: StockLocationServices, -}) - -const connectionLoader = ModulesSdkUtils.mikroOrmConnectionLoaderFactory({ - moduleName: Modules.STOCK_LOCATION, - moduleModels: Object.values(StockLocationModels), - migrationsPath: __dirname + "/migrations", -}) +import { ModuleExports } from "@medusajs/types" const service = StockLocationModuleService -const loaders = [containerLoader, connectionLoader] export const moduleDefinition: ModuleExports = { service, - loaders, - revertMigration, - runMigrations, } diff --git a/packages/modules/store/src/index.ts b/packages/modules/store/src/index.ts index 7b774fa278..5dc2ece165 100644 --- a/packages/modules/store/src/index.ts +++ b/packages/modules/store/src/index.ts @@ -1,14 +1,7 @@ import { moduleDefinition } from "./module-definition" -import { initializeFactory, Modules } from "@medusajs/modules-sdk" export * from "./types" export * from "./models" export * from "./services" -export const initialize = initializeFactory({ - moduleName: Modules.STORE, - moduleDefinition, -}) -export const runMigrations = moduleDefinition.runMigrations -export const revertMigration = moduleDefinition.revertMigration export default moduleDefinition diff --git a/packages/modules/store/src/module-definition.ts b/packages/modules/store/src/module-definition.ts index 6f9761f73e..462ef1004d 100644 --- a/packages/modules/store/src/module-definition.ts +++ b/packages/modules/store/src/module-definition.ts @@ -1,44 +1,8 @@ import { ModuleExports } from "@medusajs/types" -import * as ModuleServices from "@services" import { StoreModuleService } from "@services" -import { Modules } from "@medusajs/modules-sdk" -import * as Models from "@models" -import * as ModuleModels from "@models" -import { ModulesSdkUtils } from "@medusajs/utils" -import * as ModuleRepositories from "@repositories" - -const migrationScriptOptions = { - moduleName: Modules.STORE, - models: Models, - pathToMigrations: __dirname + "/migrations", -} - -const runMigrations = ModulesSdkUtils.buildMigrationScript( - migrationScriptOptions -) - -const revertMigration = ModulesSdkUtils.buildRevertMigrationScript( - migrationScriptOptions -) - -const containerLoader = ModulesSdkUtils.moduleContainerLoaderFactory({ - moduleModels: ModuleModels, - moduleRepositories: ModuleRepositories, - moduleServices: ModuleServices, -}) - -const connectionLoader = ModulesSdkUtils.mikroOrmConnectionLoaderFactory({ - moduleName: Modules.STORE, - moduleModels: Object.values(Models), - migrationsPath: __dirname + "/migrations", -}) const service = StoreModuleService -const loaders = [containerLoader, connectionLoader] as any export const moduleDefinition: ModuleExports = { service, - loaders, - revertMigration, - runMigrations, } diff --git a/packages/modules/tax/src/index.ts b/packages/modules/tax/src/index.ts index 4946d10114..5fb9170fa0 100644 --- a/packages/modules/tax/src/index.ts +++ b/packages/modules/tax/src/index.ts @@ -1,13 +1,6 @@ -import { initializeFactory, Modules } from "@medusajs/modules-sdk" import { moduleDefinition } from "./module-definition" export * from "./models" export * from "./services" -export const initialize = initializeFactory({ - moduleName: Modules.TAX, - moduleDefinition, -}) -export const runMigrations = moduleDefinition.runMigrations -export const revertMigration = moduleDefinition.revertMigration export default moduleDefinition diff --git a/packages/modules/tax/src/module-definition.ts b/packages/modules/tax/src/module-definition.ts index 3f3375578a..2744a70ef0 100644 --- a/packages/modules/tax/src/module-definition.ts +++ b/packages/modules/tax/src/module-definition.ts @@ -1,44 +1,11 @@ -import { MikroOrmBaseRepository, ModulesSdkUtils } from "@medusajs/utils" -import { Modules } from "@medusajs/modules-sdk" import { ModuleExports } from "@medusajs/types" -import * as Models from "@models" -import * as ModuleModels from "@models" -import * as ModuleServices from "@services" import { TaxModuleService } from "@services" import loadProviders from "./loaders/providers" -const migrationScriptOptions = { - moduleName: Modules.TAX, - models: Models, - pathToMigrations: __dirname + "/migrations", -} - -const runMigrations = ModulesSdkUtils.buildMigrationScript( - migrationScriptOptions -) - -const revertMigration = ModulesSdkUtils.buildRevertMigrationScript( - migrationScriptOptions -) - -const containerLoader = ModulesSdkUtils.moduleContainerLoaderFactory({ - moduleModels: ModuleModels, - moduleRepositories: { BaseRepository: MikroOrmBaseRepository }, - moduleServices: ModuleServices, -}) - -const connectionLoader = ModulesSdkUtils.mikroOrmConnectionLoaderFactory({ - moduleName: Modules.TAX, - moduleModels: Object.values(Models), - migrationsPath: __dirname + "/migrations", -}) - const service = TaxModuleService -const loaders = [containerLoader, connectionLoader, loadProviders] as any +const loaders = [loadProviders] export const moduleDefinition: ModuleExports = { service, loaders, - revertMigration, - runMigrations, } diff --git a/packages/modules/user/src/index.ts b/packages/modules/user/src/index.ts index 98c26a5e9e..dd414e1b19 100644 --- a/packages/modules/user/src/index.ts +++ b/packages/modules/user/src/index.ts @@ -1,11 +1,3 @@ -import { - moduleDefinition, - revertMigration, - runMigrations, -} from "./module-definition" +import { moduleDefinition } from "./module-definition" export default moduleDefinition -export { revertMigration, runMigrations } - -export * from "./initialize" -export * from "./loaders" diff --git a/packages/modules/user/src/initialize/index.ts b/packages/modules/user/src/initialize/index.ts deleted file mode 100644 index f9fddbaf44..0000000000 --- a/packages/modules/user/src/initialize/index.ts +++ /dev/null @@ -1,31 +0,0 @@ -import { - ExternalModuleDeclaration, - InternalModuleDeclaration, - MODULE_PACKAGE_NAMES, - MedusaModule, - Modules, -} from "@medusajs/modules-sdk" -import { IUserModuleService, ModulesSdkTypes } from "@medusajs/types" - -import { InitializeModuleInjectableDependencies } from "../types" -import { moduleDefinition } from "../module-definition" - -export const initialize = async ( - options?: - | ModulesSdkTypes.ModuleBootstrapDeclaration - | ModulesSdkTypes.ModuleServiceInitializeOptions - | ModulesSdkTypes.ModuleServiceInitializeCustomDataLayerOptions, - injectedDependencies?: InitializeModuleInjectableDependencies -): Promise => { - const loaded = await MedusaModule.bootstrap({ - moduleKey: Modules.USER, - defaultPath: MODULE_PACKAGE_NAMES[Modules.USER], - declaration: options as - | InternalModuleDeclaration - | ExternalModuleDeclaration, - injectedDependencies, - moduleExports: moduleDefinition, - }) - - return loaded[Modules.USER] -} diff --git a/packages/modules/user/src/loaders/connection.ts b/packages/modules/user/src/loaders/connection.ts deleted file mode 100644 index da26fa35a8..0000000000 --- a/packages/modules/user/src/loaders/connection.ts +++ /dev/null @@ -1,36 +0,0 @@ -import * as UserModels from "../models" - -import { - InternalModuleDeclaration, - LoaderOptions, - Modules, -} from "@medusajs/modules-sdk" - -import { EntitySchema } from "@mikro-orm/core" -import { ModulesSdkTypes } from "@medusajs/types" -import { ModulesSdkUtils } from "@medusajs/utils" - -export default async ( - { - options, - container, - logger, - }: LoaderOptions< - | ModulesSdkTypes.ModuleServiceInitializeOptions - | ModulesSdkTypes.ModuleServiceInitializeCustomDataLayerOptions - >, - moduleDeclaration?: InternalModuleDeclaration -): Promise => { - const entities = Object.values(UserModels) as unknown as EntitySchema[] - const pathToMigrations = __dirname + "/../migrations" - - await ModulesSdkUtils.mikroOrmConnectionLoader({ - moduleName: Modules.USER, - entities, - container, - options, - moduleDeclaration, - logger, - pathToMigrations, - }) -} diff --git a/packages/modules/user/src/loaders/container.ts b/packages/modules/user/src/loaders/container.ts deleted file mode 100644 index 28ea110f2d..0000000000 --- a/packages/modules/user/src/loaders/container.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { ModulesSdkUtils } from "@medusajs/utils" -import * as ModuleModels from "@models" -import * as ModuleRepositories from "@repositories" -import * as ModuleServices from "@services" - -export default ModulesSdkUtils.moduleContainerLoaderFactory({ - moduleModels: ModuleModels, - moduleRepositories: ModuleRepositories, - moduleServices: ModuleServices, -}) diff --git a/packages/modules/user/src/loaders/index.ts b/packages/modules/user/src/loaders/index.ts deleted file mode 100644 index 3614963d8c..0000000000 --- a/packages/modules/user/src/loaders/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from "./connection" -export * from "./container" diff --git a/packages/modules/user/src/module-definition.ts b/packages/modules/user/src/module-definition.ts index 01960256fb..74a1931795 100644 --- a/packages/modules/user/src/module-definition.ts +++ b/packages/modules/user/src/module-definition.ts @@ -1,31 +1,8 @@ -import * as Models from "@models" - import { UserModuleService } from "@services" import { ModuleExports } from "@medusajs/types" -import { Modules } from "@medusajs/modules-sdk" -import { ModulesSdkUtils } from "@medusajs/utils" -import loadConnection from "./loaders/connection" -import loadContainer from "./loaders/container" - -const migrationScriptOptions = { - moduleName: Modules.USER, - models: Models, - pathToMigrations: __dirname + "/migrations", -} - -export const runMigrations = ModulesSdkUtils.buildMigrationScript( - migrationScriptOptions -) -export const revertMigration = ModulesSdkUtils.buildRevertMigrationScript( - migrationScriptOptions -) const service = UserModuleService -const loaders = [loadContainer, loadConnection] as any export const moduleDefinition: ModuleExports = { service, - loaders, - runMigrations, - revertMigration, } diff --git a/packages/modules/workflow-engine-inmemory/src/index.ts b/packages/modules/workflow-engine-inmemory/src/index.ts index 7804040565..7aa317c3f4 100644 --- a/packages/modules/workflow-engine-inmemory/src/index.ts +++ b/packages/modules/workflow-engine-inmemory/src/index.ts @@ -1,22 +1,5 @@ -import { Modules } from "@medusajs/modules-sdk" -import { ModulesSdkUtils } from "@medusajs/utils" -import * as models from "@models" import { moduleDefinition } from "./module-definition" export default moduleDefinition -const migrationScriptOptions = { - moduleName: Modules.WORKFLOW_ENGINE, - models: models, - pathToMigrations: __dirname + "/migrations", -} - -export const runMigrations = ModulesSdkUtils.buildMigrationScript( - migrationScriptOptions -) -export const revertMigration = ModulesSdkUtils.buildRevertMigrationScript( - migrationScriptOptions -) - -export * from "./initialize" export * from "./loaders" diff --git a/packages/modules/workflow-engine-inmemory/src/initialize/index.ts b/packages/modules/workflow-engine-inmemory/src/initialize/index.ts deleted file mode 100644 index dafe1ddc8f..0000000000 --- a/packages/modules/workflow-engine-inmemory/src/initialize/index.ts +++ /dev/null @@ -1,34 +0,0 @@ -import { - ExternalModuleDeclaration, - InternalModuleDeclaration, - MODULE_PACKAGE_NAMES, - MedusaModule, - Modules, -} from "@medusajs/modules-sdk" -import { ModulesSdkTypes } from "@medusajs/types" -import { IWorkflowEngineService } from "@medusajs/workflows-sdk" -import { moduleDefinition } from "../module-definition" -import { InitializeModuleInjectableDependencies } from "../types" - -export const initialize = async ( - options?: - | ModulesSdkTypes.ModuleServiceInitializeOptions - | ModulesSdkTypes.ModuleServiceInitializeCustomDataLayerOptions - | ExternalModuleDeclaration - | InternalModuleDeclaration, - injectedDependencies?: InitializeModuleInjectableDependencies -): Promise => { - const loaded = - // eslint-disable-next-line max-len - await MedusaModule.bootstrap({ - moduleKey: Modules.WORKFLOW_ENGINE, - defaultPath: MODULE_PACKAGE_NAMES[Modules.WORKFLOW_ENGINE], - declaration: options as - | InternalModuleDeclaration - | ExternalModuleDeclaration, - injectedDependencies, - moduleExports: moduleDefinition, - }) - - return loaded[Modules.WORKFLOW_ENGINE] -} diff --git a/packages/modules/workflow-engine-inmemory/src/loaders/connection.ts b/packages/modules/workflow-engine-inmemory/src/loaders/connection.ts deleted file mode 100644 index 580e05e95c..0000000000 --- a/packages/modules/workflow-engine-inmemory/src/loaders/connection.ts +++ /dev/null @@ -1,36 +0,0 @@ -import { - InternalModuleDeclaration, - LoaderOptions, - Modules, -} from "@medusajs/modules-sdk" -import { ModulesSdkTypes } from "@medusajs/types" -import { ModulesSdkUtils } from "@medusajs/utils" -import { EntitySchema } from "@mikro-orm/core" -import * as WorkflowOrchestratorModels from "../models" - -export default async ( - { - options, - container, - logger, - }: LoaderOptions< - | ModulesSdkTypes.ModuleServiceInitializeOptions - | ModulesSdkTypes.ModuleServiceInitializeCustomDataLayerOptions - >, - moduleDeclaration?: InternalModuleDeclaration -): Promise => { - const entities = Object.values( - WorkflowOrchestratorModels - ) as unknown as EntitySchema[] - const pathToMigrations = __dirname + "/../migrations" - - await ModulesSdkUtils.mikroOrmConnectionLoader({ - moduleName: Modules.WORKFLOW_ENGINE, - entities, - container, - options, - moduleDeclaration, - logger, - pathToMigrations, - }) -} diff --git a/packages/modules/workflow-engine-inmemory/src/loaders/container.ts b/packages/modules/workflow-engine-inmemory/src/loaders/container.ts deleted file mode 100644 index 9a0c5553b4..0000000000 --- a/packages/modules/workflow-engine-inmemory/src/loaders/container.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { MikroOrmBaseRepository, ModulesSdkUtils } from "@medusajs/utils" -import * as ModuleModels from "@models" -import * as ModuleServices from "@services" - -export default ModulesSdkUtils.moduleContainerLoaderFactory({ - moduleModels: ModuleModels, - moduleServices: ModuleServices, - moduleRepositories: { BaseRepository: MikroOrmBaseRepository }, -}) diff --git a/packages/modules/workflow-engine-inmemory/src/loaders/index.ts b/packages/modules/workflow-engine-inmemory/src/loaders/index.ts index 5445bc7412..3eeaeaa90c 100644 --- a/packages/modules/workflow-engine-inmemory/src/loaders/index.ts +++ b/packages/modules/workflow-engine-inmemory/src/loaders/index.ts @@ -1,3 +1 @@ -export * from "./connection" -export * from "./container" export * from "./utils" diff --git a/packages/modules/workflow-engine-inmemory/src/module-definition.ts b/packages/modules/workflow-engine-inmemory/src/module-definition.ts index b86c23807b..7aa8cdf568 100644 --- a/packages/modules/workflow-engine-inmemory/src/module-definition.ts +++ b/packages/modules/workflow-engine-inmemory/src/module-definition.ts @@ -1,11 +1,9 @@ import { ModuleExports } from "@medusajs/types" import { WorkflowsModuleService } from "@services" -import loadConnection from "./loaders/connection" -import loadContainer from "./loaders/container" import loadUtils from "./loaders/utils" const service = WorkflowsModuleService -const loaders = [loadContainer, loadConnection, loadUtils] as any +const loaders = [loadUtils] export const moduleDefinition: ModuleExports = { service, diff --git a/packages/modules/workflow-engine-redis/src/index.ts b/packages/modules/workflow-engine-redis/src/index.ts index 7804040565..7aa317c3f4 100644 --- a/packages/modules/workflow-engine-redis/src/index.ts +++ b/packages/modules/workflow-engine-redis/src/index.ts @@ -1,22 +1,5 @@ -import { Modules } from "@medusajs/modules-sdk" -import { ModulesSdkUtils } from "@medusajs/utils" -import * as models from "@models" import { moduleDefinition } from "./module-definition" export default moduleDefinition -const migrationScriptOptions = { - moduleName: Modules.WORKFLOW_ENGINE, - models: models, - pathToMigrations: __dirname + "/migrations", -} - -export const runMigrations = ModulesSdkUtils.buildMigrationScript( - migrationScriptOptions -) -export const revertMigration = ModulesSdkUtils.buildRevertMigrationScript( - migrationScriptOptions -) - -export * from "./initialize" export * from "./loaders" diff --git a/packages/modules/workflow-engine-redis/src/initialize/index.ts b/packages/modules/workflow-engine-redis/src/initialize/index.ts deleted file mode 100644 index b548387c57..0000000000 --- a/packages/modules/workflow-engine-redis/src/initialize/index.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { - ExternalModuleDeclaration, - InternalModuleDeclaration, - MODULE_PACKAGE_NAMES, - MedusaModule, - Modules, -} from "@medusajs/modules-sdk" - -import { ModulesSdkTypes } from "@medusajs/types" -import { IWorkflowEngineService } from "@medusajs/workflows-sdk" -import { moduleDefinition } from "../module-definition" -import { InitializeModuleInjectableDependencies } from "../types" - -export const initialize = async ( - options?: - | ModulesSdkTypes.ModuleServiceInitializeOptions - | ModulesSdkTypes.ModuleServiceInitializeCustomDataLayerOptions - | ExternalModuleDeclaration - | InternalModuleDeclaration, - injectedDependencies?: InitializeModuleInjectableDependencies -): Promise => { - const loaded = - // eslint-disable-next-line max-len - await MedusaModule.bootstrap({ - moduleKey: Modules.WORKFLOW_ENGINE, - defaultPath: MODULE_PACKAGE_NAMES[Modules.WORKFLOW_ENGINE], - declaration: options as - | InternalModuleDeclaration - | ExternalModuleDeclaration, - injectedDependencies, - moduleExports: moduleDefinition, - }) - - return loaded[Modules.WORKFLOW_ENGINE] -} diff --git a/packages/modules/workflow-engine-redis/src/loaders/connection.ts b/packages/modules/workflow-engine-redis/src/loaders/connection.ts deleted file mode 100644 index 580e05e95c..0000000000 --- a/packages/modules/workflow-engine-redis/src/loaders/connection.ts +++ /dev/null @@ -1,36 +0,0 @@ -import { - InternalModuleDeclaration, - LoaderOptions, - Modules, -} from "@medusajs/modules-sdk" -import { ModulesSdkTypes } from "@medusajs/types" -import { ModulesSdkUtils } from "@medusajs/utils" -import { EntitySchema } from "@mikro-orm/core" -import * as WorkflowOrchestratorModels from "../models" - -export default async ( - { - options, - container, - logger, - }: LoaderOptions< - | ModulesSdkTypes.ModuleServiceInitializeOptions - | ModulesSdkTypes.ModuleServiceInitializeCustomDataLayerOptions - >, - moduleDeclaration?: InternalModuleDeclaration -): Promise => { - const entities = Object.values( - WorkflowOrchestratorModels - ) as unknown as EntitySchema[] - const pathToMigrations = __dirname + "/../migrations" - - await ModulesSdkUtils.mikroOrmConnectionLoader({ - moduleName: Modules.WORKFLOW_ENGINE, - entities, - container, - options, - moduleDeclaration, - logger, - pathToMigrations, - }) -} diff --git a/packages/modules/workflow-engine-redis/src/loaders/container.ts b/packages/modules/workflow-engine-redis/src/loaders/container.ts deleted file mode 100644 index 9a0c5553b4..0000000000 --- a/packages/modules/workflow-engine-redis/src/loaders/container.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { MikroOrmBaseRepository, ModulesSdkUtils } from "@medusajs/utils" -import * as ModuleModels from "@models" -import * as ModuleServices from "@services" - -export default ModulesSdkUtils.moduleContainerLoaderFactory({ - moduleModels: ModuleModels, - moduleServices: ModuleServices, - moduleRepositories: { BaseRepository: MikroOrmBaseRepository }, -}) diff --git a/packages/modules/workflow-engine-redis/src/loaders/index.ts b/packages/modules/workflow-engine-redis/src/loaders/index.ts index 8b66bc0be4..3b25a131a2 100644 --- a/packages/modules/workflow-engine-redis/src/loaders/index.ts +++ b/packages/modules/workflow-engine-redis/src/loaders/index.ts @@ -1,4 +1,2 @@ -export * from "./connection" -export * from "./container" export * from "./redis" export * from "./utils" diff --git a/packages/modules/workflow-engine-redis/src/module-definition.ts b/packages/modules/workflow-engine-redis/src/module-definition.ts index 0a3d33f580..1f6edab928 100644 --- a/packages/modules/workflow-engine-redis/src/module-definition.ts +++ b/packages/modules/workflow-engine-redis/src/module-definition.ts @@ -1,17 +1,10 @@ import { ModuleExports } from "@medusajs/types" import { WorkflowsModuleService } from "@services" -import loadConnection from "./loaders/connection" -import loadContainer from "./loaders/container" import redisConnection from "./loaders/redis" import loadUtils from "./loaders/utils" const service = WorkflowsModuleService -const loaders = [ - loadContainer, - loadConnection, - loadUtils, - redisConnection, -] as any +const loaders = [loadUtils, redisConnection] as any export const moduleDefinition: ModuleExports = { service,