eventBus.on

on: (
  eventName: string,
  handler: InMemoryEventHandler,
): void
import { eventBus, InMemoryEvent } from '@paralect/node-mongo';

const collectionName = 'users';

eventBus.on(`${collectionName}.created`, (data: InMemoryEvent<User>) => {
  try {
    const user = data.doc;

    console.log('user created', user);
  } catch (err) {
    logger.error(`${USERS}.created handler error: ${err}`);
  }
});

eventBus.on(`${collectionName}.updated`, (data: InMemoryEvent<User>) => {});

eventBus.on(`${collectionName}.deleted`, (data: InMemoryEvent<User>) => {});

In-memory events handler that listens for a CUD events.

Parameters

  • eventName: string;
    Events names to listen.
    Valid format: ${collectionName}.created, ${collectionName}.updated, ${collectionName}.deleted.
  • handler: InMemoryEventHandler;

Returns void.

eventBus.once

once: (
  eventName: string,
  handler: InMemoryEventHandler,
): void
eventBus.once(`${USERS}.updated`, (data: InMemoryEvent<User>) => {
  try {
    const user = data.doc;

    console.log('user updated', user);
  } catch (err) {
    logger.error(`${USERS}.updated handler error: ${err}`);
  }
});

In-memory events handler that listens for a CUD events. It will be called only once.

Parameters

  • eventName: string;
    Events names to listen.
    Valid format: ${collectionName}.created, ${collectionName}.updated, ${collectionName}.deleted.
  • handler: InMemoryEventHandler;

Returns void.

eventBus.onUpdated

onUpdated: (
  entity: string,
  properties: OnUpdatedProperties,
  handler: InMemoryEventHandler,
): void
import { eventBus, InMemoryEvent } from '@paralect/node-mongo';

eventBus.onUpdated('users', ['firstName', 'lastName'], async (data: InMemoryEvent<User>) => {
  try {
    await userService.atomic.updateOne(
      { _id: data.doc._id },
      { $set: { fullName: `${data.doc.firstName} ${data.doc.lastName}` } },
    );
  } catch (err) {
    console.log(`users onUpdated ['firstName', 'lastName'] handler error: ${err}`);
  }
});

eventBus.onUpdated('users', [{ fullName: 'John Wake', firstName: 'John' }, 'lastName'], () => {});

eventBus.onUpdated('users', ['oauth.google'], () => {});

In-memory events handler that listens for specific fields updates. It will be called when one of the provided properties updates.

Parameters

Returns void.