3.0.1 • Published 4 months ago

@parameter1/terminus v3.0.1

Weekly downloads
23
License
MIT
Repository
github
Last release
4 months ago

Terminus Bootstrapper

A terminus bootstrapper for running servers/microservices.

Installation

yarn add @parameter1/terminus

Usage

To boot a service, import the @parameter1/terminus/boot-service file and execute it in the entrypoint of your project. You must provide an http.Server-like object that contains the server you wish to run. For example (using Express):

import http from 'http';
import express from 'express';
import { bootService } from '@parameter1/terminus';

const app = express();
app.get('/', (req, res) => {
  res.json({ ping: 'pong' });
});

const server = http.createServer(app);

bootService({
  name: 'foo',
  version: '1.0.0',
  server,
  port: 1000,

  // advanced hooks (see the `packages/terminus/boot-service.js` file for more)
  // in these cases, `someService` is pseudo-code :)
  onStart: async () => {
    // ensure services are awaited before booting the server
    await someService.start();
  },
  onSignal: async () => {
    // stop services when a signal is received.
    await someService.stop();
  },
  onHealthCheck: async () => {
    // ensure services are still healthy.
    // by default, health can be checked on `/_health`
    await someService.ping();
  },

  // log a different exposed port when the server boots. useful with docker
  exposedPort: 1200,
}).catch((e) => setImmediate(() => {
  throw e;
}));

This will boot an Express server (wrapped with http) on port 1000.

Configuration

The following environment variables can be used to adjust the timeout and shutdown delay of terminus (with defaults shown):

TERMINUS_TIMEOUT=1000
TERMINUS_SHUTDOWN_DELAY=0
3.0.1

4 months ago

2.3.0

9 months ago

3.0.0

8 months ago

2.2.1

2 years ago

2.2.0

2 years ago

2.1.0

2 years ago

2.0.0

2 years ago

1.10.0

2 years ago

1.9.0

3 years ago

1.8.2

3 years ago

1.8.1

3 years ago

1.8.0

3 years ago

1.7.0

3 years ago

1.6.3

3 years ago

1.6.2

3 years ago

1.6.1

3 years ago

1.6.0

3 years ago

1.5.0

3 years ago

1.4.0

3 years ago

1.3.1

3 years ago

1.3.0

3 years ago

1.2.3

3 years ago

1.2.2

3 years ago

1.2.1

4 years ago

1.2.0

4 years ago

1.1.5

4 years ago

1.1.4

4 years ago

1.1.3

4 years ago

1.1.2

4 years ago

1.1.1

4 years ago

1.1.0

4 years ago

1.0.3

4 years ago

1.0.2

4 years ago

1.0.1

4 years ago

1.0.0

4 years ago