https://github.com/astrohelm/helm
Application lifecycle manager
https://github.com/astrohelm/helm
Last synced: over 1 year ago
JSON representation
Application lifecycle manager
- Host: GitHub
- URL: https://github.com/astrohelm/helm
- Owner: astrohelm
- License: mit
- Created: 2025-04-07T13:45:36.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-04-07T13:50:59.000Z (over 1 year ago)
- Last Synced: 2025-04-07T14:40:25.521Z (over 1 year ago)
- Language: JavaScript
- Size: 0 Bytes
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Security: SECURITY.md
- Authors: AUTHORS
Awesome Lists containing this project
README
# HELM | Backbone of your application
## About
Helm purpose to provide a simple application lifecycle without corresponding race conditions. To
achieve such behavior this library uses Graph-based queue system. This allows to process components
without any doubt of a right order.
## Example
```js
'use strict';
const app = new Helm();
app.use(first, { firstName: 'first' });
app.use(third);
app.start((err) /* Error during boot */ => {
if (err /* Must be handled somehow */) {
throw err;
}
console.log('Application booted!');
});
function first(app, opts) {
console.log(`${opts.firstName} !`, opts);
app.use(second, { secondName: 'Second' });
}
function second(app, opts, done) {
console.log(`${opts.secondName} !`, opts);
process.nextTick(cb);
}
// async/await or Promise support
async function third(app, opts) {
console.log('Third !');
}
```
## API
### new Helm(app, opts, ?done)