0.0.21 • Published 4 years ago

@bitbeat/web v0.0.21

Weekly downloads
-
License
MIT
Repository
github
Last release
4 years ago

BITBEAT WEB MODULE

Introduction

This is the official web module for bitbeat using fastify as web server. This package will export you a web server, a web server config and basic default actions. To use it follow the documentation of bitbeat at the homepage.

Default modules

The following modules are always enabled:

Optionally these modules can be enabled or disabled:

Configure

The default WebConfig looks like this:

export default class WebServerConfig extends Configuration {
    constructor() {
        super();
    }

    default: WebConfigProperties = {
        options: {
            disableRequestLogging: true,
        },
        host: '0.0.0.0',
        port: 8080,
        pathForActions: 'api',
        useVersioning: true,
        useHeaderVersioning: false,
        enableMiddlewares: true,
    };

    production: WebConfigProperties = {
        fastifyRateLimit: {
            max: 100,
        },
        underPressure: {
            maxEventLoopDelay: 1000,
            maxHeapUsedBytes: 100000000,
            maxRssBytes: 100000000,
        },
    };
}

You can edit those properties by either extending the WebConfig class in your project's config folder as own class or edit it in the boot.js.

Example 1:

-- config  |-- myOwnConfig.ts

import { WebConfig } from '@bitbeat/web';
import { merge } from 'lodash';

export default class MyOwnConfig extends WebConfig {
    constructor() {
        super();
    }

    default = {}; // this will overwrite the default props

    /* or you can do something non-destructive like this
    default = merge(default, {
        port: 3000,
    });
    */
}

Example 2:

This example happens in the boot.js:

import { registerBulk } from '@bitbeat/core';
import { WebConfig, WebServer } from '@bitbeat/web';

export default async () => {
    const webConfig = new WebConfig();
    webConfig.default.port = 3000;
    await registerBulk(new Set([webConfig, WebServer]));
};

Custom integrations

To add your own custom logic to the existing server use one of the following methods:

  • preRegister
  • postRegister
  • postRouteRegister
  • postServerStart
  • postServerStop

These are a sets of functions, which will run one by one and support async. There is always the "current" WebServer-runtime and WebConfig provided in those functions.

Add actions

To add your own web action to the web server, just extend the WebAction-class in the actions folder and the web server will automatically load them. Examples can be found in the default web actions.

0.0.21

4 years ago

0.0.20

4 years ago

0.0.19

4 years ago

0.0.18

4 years ago

0.0.17

4 years ago

0.0.16

4 years ago

0.0.15

4 years ago

0.0.14

4 years ago

0.0.13

4 years ago

0.0.12

4 years ago

0.0.10

4 years ago

0.0.11

4 years ago

0.0.9

4 years ago

0.0.8

4 years ago

0.0.7

4 years ago

0.0.6

4 years ago

0.0.5

4 years ago

0.0.4

4 years ago

0.0.3

4 years ago

0.0.2

4 years ago

0.0.1

4 years ago