extra-runnable
TypeScript icon, indicating that this package has built-in type declarations

5.0.2 • Public • Published

extra-runnable

The Runnable and Runner in JavaScript/Typescript.

Install

npm install --save extra-runnable
# or
yarn add extra-runnable

API

IRunnable

interface IRunnable<Result, Args extends unknown[]> {
  init(): Awaitable<void>
  run(...args: Args): Awaitable<Result>
  abort(): Awaitable<void>
  destroy(): Awaitable<void>
}

Runner

enum RunnerState {
  Created = 'created' // => Initializing
, Initializing = 'initializing' // => Ready or Crashed
, Crashed = 'crashed' // => Initializing
, Ready = 'ready' // => Starting or Destroyed
, Starting = 'starting' // => Running or Error
, Running = 'running' // => Stopping or Completed or Error
, Stopping = 'stopping' // => Stopped
, Stopped = 'stopped' // => Destroyed or Starting
, Completed = 'completed' // => Destroyed or Starting
, Error = 'error' // => Destroyed or Starting
, Destroyed = 'destroyed'
}

class Runner<Result, Args extends unknown[]> {
  constructor(runnable: IRunnable<Result, Args>)

  getState(): RunnableState
  async init(): Promise<void>
  async run(...args: Args): Promise<Result>
  async abort(): Promise<void>
  async destroy(): Promise<void>
}

Readme

Keywords

none

Package Sidebar

Install

npm i extra-runnable

Weekly Downloads

0

Version

5.0.2

License

MIT

Unpacked Size

15.9 kB

Total Files

15

Last publish

Collaborators

  • black_glory