# @runnerty/module-core

> Runnerty module core classes

Latest version **3.1.3** (published 2026-08-18) · MIT license · 0 weekly downloads

## Install

```sh
npm install @runnerty/module-core
pnpm add @runnerty/module-core
yarn add @runnerty/module-core
bun add @runnerty/module-core
```

## Health

**Score 55/100 (C)** — status: active.

Positive: no vulnerabilities; recently updated; high maintenance score.

Warnings: low downloads; no types; no esm support.

## Facts

| | |
|---|---|
| Version | 3.1.3 |
| Published | 2026-08-18 |
| First published | 2020-11-15 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 4 |
| Unpacked size | 41.7 KB |
| Known vulnerabilities | 0 (+2 in 1 direct dependencies) |
| Install scripts | no |
| GitHub stars | 0 |
| Author | Runnerty Tech |
| Maintainers | coderty |
| Keywords | runnerty, trigger, executor, notifier, module, core, class |

## Links

- npm: https://www.npmjs.com/package/@runnerty/module-core
- Repository: https://github.com/runnerty/module-core
- Homepage: https://github.com/runnerty/module-core#readme
- Issues: https://github.com/runnerty/module-core/issues
- npm.io page: https://npm.io/package/@runnerty/module-core

## Dependencies (4)

- [lodash](https://npm.io/package/lodash.md) ~4.17.21
- [millisecond](https://npm.io/package/millisecond.md) ~0.1.2
- [json-stringify-safe](https://npm.io/package/json-stringify-safe.md) ~5.0.1
- [@runnerty/interpreter-core](https://npm.io/package/@runnerty/interpreter-core.md) ~3.1.2

## Alternatives

- [lodash.assign](https://npm.io/package/lodash.assign.md) — 2.3M weekly downloads
- [lodash.chunk](https://npm.io/package/lodash.chunk.md) — 1.8M weekly downloads
- [react-native-ios-utilities](https://npm.io/package/react-native-ios-utilities.md) — 138.5K weekly downloads
- [@technically/lodash](https://npm.io/package/@technically/lodash.md) — 50.9K weekly downloads
- [@fluid-topics/ft-icon](https://npm.io/package/@fluid-topics/ft-icon.md) — 20.6K weekly downloads

## Recent versions

- 3.1.3 (latest) — 2026-08-18
- 3.0.0-alpha.4 (alpha) — 2020-12-24
- 3.1.2 — 2024-09-30
- 3.1.1 — 2022-04-14
- 3.1.0 — 2022-02-03
- 3.0.8 — 2022-01-19
- 3.0.7 — 2021-12-27
- 3.0.6 — 2021-09-27
- 3.0.5 — 2021-02-27
- 3.0.4 — 2021-02-11
- 3.0.3 — 2021-02-09
- 3.0.2 — 2021-01-31
- 3.0.1 — 2021-01-04
- 3.0.0-alpha.3 — 2020-12-11
- 3.0.0-alpha.2 — 2020-12-11
- … 2 more at https://npm.io/package/@runnerty/module-core/versions

## README

<p align="center">
  <a href="http://runnerty.io">
    <img height="257" src="https://runnerty.io/assets/header/logo-stroked.png">
  </a>
  <p align="center">Smart Processes Management</p>
</p>

[![NPM version][npm-image]][npm-url] [![Downloads][downloads-image]][npm-url]
<a href="#badge">
<img alt="code style: prettier" src="https://img.shields.io/badge/code_style-prettier-ff69b4.svg">
</a>

# Runnerty: Module Core

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

### Trigger example:

```javascript
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:

```javascript
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:

```javascript
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;
```

[runnerty]: http://www.runnerty.io
[downloads-image]: https://img.shields.io/npm/dm/@runnerty/module-core.svg
[npm-url]: https://www.npmjs.com/package/@runnerty/module-core
[npm-image]: https://img.shields.io/npm/v/@runnerty/module-core.svg
[david-badge]: https://david-dm.org/runnerty/module-core.svg
[david-badge-url]: https://david-dm.org/runnerty/module-core

---
_Source: https://npm.io/package/@runnerty/module-core · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
