Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/idaho/feathers-async-boot
booting feathersjs asynchron
https://github.com/idaho/feathers-async-boot
Last synced: 26 days ago
JSON representation
booting feathersjs asynchron
- Host: GitHub
- URL: https://github.com/idaho/feathers-async-boot
- Owner: idaho
- Created: 2020-03-26T09:03:18.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2023-01-06T02:50:55.000Z (almost 2 years ago)
- Last Synced: 2024-10-01T18:07:26.041Z (about 1 month ago)
- Language: TypeScript
- Size: 452 KB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 11
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
- awesome-feathersjs - feathers-async-bootstrap - Booting feathers application asynchron (Plugins / Utilities)
README
# feathers-async-boot
[![Build Status](https://travis-ci.org/idaho/feathers-async-boot.svg?branch=master)](https://travis-ci.org/idaho/feathers-async-boot)
[![Node.js CI](https://github.com/idaho/feathers-async-boot/workflows/Node.js%20CI/badge.svg)](https://github.com/idaho/feathers-async-boot/actions?query=workflow:%22Node.js+CI%22)
[![codecov](https://codecov.io/gh/idaho/feathers-async-boot/branch/master/graph/badge.svg?token=4F8RQ4KWSQ)](https://codecov.io/gh/idaho/feathers-async-boot)
[![Maintainability](https://api.codeclimate.com/v1/badges/68167f15dc0b56e49910/maintainability)](https://codeclimate.com/github/idaho/feathers-async-boot/maintainability)Booting FeathersJS asynchron.
* [About](#about)
* [Installation](#installation)
* [Configuration](#configuration)
* [Example](#example)# About
Starting the application after all required tasks are done. For example you have
to fill your memory storage with content before the application should start
the http server.# Installation
```bash
npm install --save feathers-async-boot
```
# Usage
* create a module which should do you asynchron task. This module __must__ return a Promise
* register the async bootstrap module
* configure the async bootstrap
* Call `app.start()`. This will return a Promise.Example:
```js
const app = feathers();...
app.configure(boot);
app.bootstrap([...modules]);app.start()
.then(() => {
app.listen(3040);
})
.catch(err => {
logger.error(`error during boostrap the application. ${err}`);
});
```# Configuration
## Error handling
There are different posibilities to start your application, even on when your bootstrap
modules are rejected.### ABORT
* with finally (using finally Node.js >= 10 is required)
```js
const app = feathers();app
.start()
.finally(() => {
app.listen(3040);
});
```* or on rejection (using Node.js < 10)
```js
const app = feathers();app
.start()
.then(res => {})
.catch(err => {
app.listen(3040);
});
```
### WARNThe start will always resolve, as a result you get all possible errors
```js
const app = feathers();
const ErrorHandling = requier('feathers-async-boot/lib/errorhandling');app
.start(ErrorHandling.WARN)
.then(res => {
app.listen(3040);
});
```### IGNORE
The start will always resolve, result will be always true
```js
const app = feathers();
const ErrorHandling = requier('feathers-async-boot/lib/errorhandling');app
.start(ErrorHandling.WARN)
.then(res => {
app.listen(3040);
});
```# Example
```js
const feathers = require('@feathersjs/feathers');
const express = require('@feathersjs/express');
const boot = require('feathers-async-boot');const asyncModuleToBoot = require('./async-module-to-boot');
const app = express(feathers());
app.configure(boot);
app.bootstrap([asyncModuleToBoot]);
app.bootstrap([asyncModuleToBoot]);
app.bootstrap([asyncModuleToBoot]);app
.start()
.then(res => {
const server = app.listen(3040);
server.on('listening', () => {
console.log(`server started @ port ${server.address().port}`);
});
});
```for more examples see the example directory.