chore: Initialize method for modules (#3649)
What:
- Export initialize methods for all modules to be used as a package.
- Export `runMigrations` and `revertMigration` on modules that DB migrations are available
```typescript
import {
initialize as initializeInventory,
InventoryServiceInitializeOptions,
runMigrations as runMigrationsInventory,
} from "@medusajs/inventory";
import { initialize as eventBusInitialize } from "@medusajs/event-bus-redis";
import { initialize as cacheInitialize } from "@medusajs/cache-redis";
const eventBus = await eventBusInitialize({
redisUrl: "localhost",
});
const cache = await cacheInitialize({
redisUrl: "localhost",
});
const options: InventoryServiceInitializeOptions = {
database: {
type: "postgres",
url: `postgres://postgres:@localhost/inventory`,
},
};
await runMigrationsInventory({
options,
});
const inventoryService = await initializeInventory(options, {
eventBusService: eventBus,
});
const sku = "sku_123"
const item = await service.createInventoryItem({
sku,
});
cache.set(sku, { item });
```
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
import { InternalModuleDeclaration, Logger } from "@medusajs/modules-sdk"
|
||||
import { ConfigModule, EmitData } from "@medusajs/types"
|
||||
import { EmitData } from "@medusajs/types"
|
||||
import { AbstractEventBusModuleService } from "@medusajs/utils"
|
||||
import { BulkJobOptions, JobsOptions, Queue, Worker } from "bullmq"
|
||||
import { Redis } from "ioredis"
|
||||
@@ -7,7 +7,6 @@ import { BullJob, EmitOptions, EventBusRedisModuleOptions } from "../types"
|
||||
|
||||
type InjectedDependencies = {
|
||||
logger: Logger
|
||||
configModule: ConfigModule
|
||||
eventBusRedisConnection: Redis
|
||||
}
|
||||
|
||||
@@ -17,7 +16,6 @@ type InjectedDependencies = {
|
||||
*/
|
||||
// eslint-disable-next-line max-len
|
||||
export default class RedisEventBusService extends AbstractEventBusModuleService {
|
||||
protected readonly config_: ConfigModule
|
||||
protected readonly logger_: Logger
|
||||
protected readonly moduleOptions_: EventBusRedisModuleOptions
|
||||
// eslint-disable-next-line max-len
|
||||
@@ -26,7 +24,7 @@ export default class RedisEventBusService extends AbstractEventBusModuleService
|
||||
protected queue_: Queue
|
||||
|
||||
constructor(
|
||||
{ configModule, logger, eventBusRedisConnection }: InjectedDependencies,
|
||||
{ logger, eventBusRedisConnection }: InjectedDependencies,
|
||||
moduleOptions: EventBusRedisModuleOptions = {},
|
||||
moduleDeclaration: InternalModuleDeclaration
|
||||
) {
|
||||
@@ -35,7 +33,6 @@ export default class RedisEventBusService extends AbstractEventBusModuleService
|
||||
super(...arguments)
|
||||
|
||||
this.moduleOptions_ = moduleOptions
|
||||
this.config_ = configModule
|
||||
this.logger_ = logger
|
||||
|
||||
this.queue_ = new Queue(moduleOptions.queueName ?? `events-queue`, {
|
||||
|
||||
Reference in New Issue
Block a user