@runly/core

Core components to connect to Runly

Usage no npm install needed!

<script type="module">
  import runlyCore from 'https://cdn.skypack.dev/@runly/core';
</script>

README

runly.js

Easy multi-threaded batch processing for Node.js

terminal

:rocket: Get Started

Install with npm:

$ npm install @runly/core

Create a job, jobs/hello.js:

exports.getItems = ({ names }) => names;

const delay = ms => new Promise(resolve => setTimeout(resolve, ms));

exports.process = async (name, { greeting = "Hello" }) => {
    await delay(1500); // simulate some long-running work

    console.log(`${greeting}, ${name}`);
};

Add an index.js entry point for your app:

const run = require("@runly/core");

run();

This gives you a CLI for your job for free and allows you to easily run your job multi-threaded without changing your code:

node index.js run hello --names Rick --names Morty --names Summer

This will reproduce the terminal animation above.

:gear: How It Works

Job:

  • config (input params)
    • from json file
  • getItems async
  • process
  • init
  • finalize

Job discovery:

  • from jobs folder, show how to override
  • show list command

Examples

  • csv parsing with async generator function
  • sending emails

Reference

Publishing to your Runly Organization

  1. In your package.json file, use the org name in the name of the package:
{
  "name": "@orgname/pkgname"
}
  1. Create a .npmrc file in package root, with the following contents, replacing orgname with the name of your org:
@orgname:registry=https://api.runly.io/npm/
  1. On the dashboard, go to your apps and create a new app named npm (or any name not in use), and copy the secret key.

  2. Run the following command in a terminal:

npm login --registry=https://api.runly.io/npm/

Enter any value for the username and email and paste the secret key copied above for the password.

  1. Run npm publish to publish your package to your Runly org.

:ledger: Release Notes

See the Releases.

:memo: License

Licensed under the MIT License.