@bitbeat/web v0.0.21
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:
- fastify-rate-limiter (enabled in production by default)
- underPressure (enabled in production by default)
- middie (enabled in default)
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.
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago