@microfleet/core
Version:
Abstract microservice core
46 lines (36 loc) • 1.01 kB
Markdown
is a function that returns `Promise`
```js
const Extensions = require('./extensions');
const config = {
enabled: [
'preHandler'
'postHandler'
],
register: [
[
{
point: "preHandler",
handler: result => Promise.resolve(result),
}
]
]
};
const extensions = new Extensions(config);
extensions.register('preHandler', args => Promise.resolve(args));
// ...
const promise = extensions.exec('preHandler');
// ...
const promise = extensions.exec('postHandler');
```
`new Extension(config)`
* `config` - configuration object
* `enabled` - an array of enabled extensions
* `register` - an array that contains a set of auto-registered extensions
`Extension.exec(name, args = [], context)`
* `name` - a name of extension
* `args` - an array of arguments passed to extension handlers
* `context` - `this` context of extension handlers
`Extensions` module adds the ability to register `extension` to lifecycle.
`Extension`