Skip to content

runnerty/module-core

Repository files navigation

Smart Processes Management

NPM version Downloads code style: prettier

Runnerty: Module Core

This module exposes the classes that Runnerty modules should extend from.

Trigger example:

const Trigger = require('@runnerty/module-core').Trigger;

class intervalTrigger extends Trigger {
  constructor(chain, params) {
    super(chain, params);
  }

  start() {
    const checkCalendar = true;
    const inputValues = [];
    const customValues = {};
    setTimeout(() => {
      // Run Chain 🚀:
      try {
        this.startChain(checkCalendar, inputValues, customValues);
      } catch (err) {
        this.logger.error('startChain (intervalTrigger):', err);
      }
    }, this.params.interval);
  }
}

module.exports = intervalTrigger;

Executor example:

const Executor = require('@runnerty/module-core').Executor;

class greetingExecutor extends Executor {
  constructor(process) {
    super(process);
    this.options = {};
    this.endOptions = { end: 'end' };
  }

  async exec(options) {
    this.options = options;
    try {
      // Greeting 👋:
      this.endOptions.messageLog = this.options.greeting;
      this.end(this.endOptions);
    } catch (err) {
      this.endOptions.end = 'error';
      this.endOptions.err_output = err.message;
      this.end(this.endOptions);
    }
  }
}

module.exports = greetingExecutor;

Notifier example:

const Notifier = require('@runnerty/module-core').Notifier;

class consoleNotifier extends Notifier {
  constructor(notification) {
    super(notification);
  }
  // Notification sender 📤:
  send(notification) {
    notification.mode = notification.mode ? notification.mode.toString() : 'info';
    notification.message = notification.message ? notification.message.toString() : '';
    this.logger.log(notification.mode, notification.message);
    this.end();
  }
}

module.exports = consoleNotifier;

Releases

No releases published

Packages

No packages published