fix(medusa): Bulk create variant + pass transaction to the inventory service context methods (#3835)
* fix(medusa): Bulk create variant and pass transaction where needed * Create fair-penguins-stare.md * fix unit tests * event * transaction orchestration * revert options * Prevent isolated module to use the given transaction if any in the exposed service * Use enum * remove changeset to re do it * Create thick-ants-tickle.md * update event bus local * remove changeset to re do it * Create thick-kings-wonder.md * remove changeset to re do it * Create slimy-bees-eat.md * Update packages/utils/src/event-bus/index.ts Co-authored-by: Oliver Windall Juhl <59018053+olivermrbl@users.noreply.github.com> --------- Co-authored-by: Philip Korsholm <88927411+pKorsholm@users.noreply.github.com> Co-authored-by: Oliver Windall Juhl <59018053+olivermrbl@users.noreply.github.com>
This commit is contained in:
17 files changed
+504
-275
No files matched your search
@@ -1,7 +1,8 @@
|
||||
import { Logger, MedusaContainer } from "@medusajs/modules-sdk"
|
||||
import { EmitData, Subscriber } from "@medusajs/types"
|
||||
import { EmitData, EventBusTypes, Subscriber } from "@medusajs/types"
|
||||
import { AbstractEventBusModuleService } from "@medusajs/utils"
|
||||
import { EventEmitter } from "events"
|
||||
import { ulid } from "ulid"
|
||||
|
||||
type InjectedDependencies = {
|
||||
logger: Logger
|
||||
@@ -65,6 +66,8 @@ export default class LocalEventBusService extends AbstractEventBusModuleService
|
||||
}
|
||||
|
||||
subscribe(event: string | symbol, subscriber: Subscriber): this {
|
||||
const randId = ulid()
|
||||
this.storeSubscribers({ event, subscriberId: randId, subscriber })
|
||||
this.eventEmitter_.on(event, async (...args) => {
|
||||
try {
|
||||
// @ts-ignore
|
||||
@@ -78,7 +81,23 @@ export default class LocalEventBusService extends AbstractEventBusModuleService
|
||||
return this
|
||||
}
|
||||
|
||||
unsubscribe(event: string | symbol, subscriber: Subscriber): this {
|
||||
unsubscribe(
|
||||
event: string | symbol,
|
||||
subscriber: Subscriber,
|
||||
context?: EventBusTypes.SubscriberContext
|
||||
): this {
|
||||
const existingSubscribers = this.retrieveSubscribers(event)
|
||||
|
||||
if (existingSubscribers?.length) {
|
||||
const subIndex = existingSubscribers?.findIndex(
|
||||
(sub) => sub.id === context?.subscriberId
|
||||
)
|
||||
|
||||
if (subIndex !== -1) {
|
||||
this.eventToSubscribersMap_.get(event)?.splice(subIndex as number, 1)
|
||||
}
|
||||
}
|
||||
|
||||
this.eventEmitter_.off(event, subscriber)
|
||||
return this
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user