Skip to main content

Runme.js Test Changes npm version Join us on Discord

A JavaScript module to use Runme in Node.js.

Runme.js contains the Runme CLI and allows to access its functionality through a simple JavaScript interface. The CLI binary is downloaded and cached when the interface is first being used.

Install

Node.js

Install the module through NPM:

$ npm install runme
# or Yarn
$ yarn add runme

You can also install the package globally and it as a CLI, e.g.:

npm i -g runme
runme list

By default this package downloads the Runme CLI when the interface is used for the first time. You can download it after running npm install by setting the RUNME_DOWNLOAD_ON_INSTALL environment flag. You can also modify the Runme version that is being installed by setting RUNME_VERSION, e.g.:

RUNME_DOWNLOAD_ON_INSTALL=1 RUNME_VERSION=1.0.0 npm install runme
npx runme --version # prints "runme version 1.0.0 (adae05c5b75351e9fe82acd595ac8086b6abf19b) on 2023-03-28T20:56:21Z"

Usage

The module exposes the following methods:

run

Run code cells from markdown files:

import { run } from 'runme'

const result = await run('.examples/example.md', 'helloWorld')
console.log(result) // outputs: { exitCode: 0, stdout: 'Hello World\r\n', stderr: '' }

Similar you can run runSeries and runParallel if you like to run multiple cells.

createServer

Start a Runme execution session:

import { createServer, run } from 'runme'

const server = await createServer()

// execute `export FOO="bar"` from markdown code cell with id "export"
await run('.examples/example.md', 'export', server)

// execute `echo "exported FOO=$FOO"` from markdown code cell with id "print"
const result = await run('.examples/example.md', 'print', server)
console.log(result) // outputs: { exitCode: 0, stdout: 'exported FOO=bar\r\n', stderr: '' }

Copyright 2023 © Stateful – Apache 2.0 License