Addon profiles manager.
- Node.js v12 or higher
This package is available in the Node Package Repository and can be easily installed with npm or yarn.
$ npm i @slimio/profiles
# or
$ yarn add @slimio/profiles
import profilesLoader from "@slimio/profiles";
import Addon from "@slimio/addon";
const CPU = new Addon("cpu");
let profiles;
CPU.on("start", async() => {
profiles = await profilesLoader("./config.json");
profiles.events.on("walk", (name, payload) => {
console.log(`profile name => ${name}`);
console.log(payload);
});
await CPU.ready();
});
CPU.on("stop", () => {
profiles.free(); // use free() to cleanup everything
});
export default CPU;
interface Event<T> {
walk: (name: string, payload: T) => any;
}
declare function profiles<T>(configPath: string, predicate?: Function) : {
events: SafeEmitter<Event<T>>;
get: (profileName: string) => object | null;
free: () => any;
}
Predicate can be used to filter profiles before calling walk event.
Name | Refactoring | Security Risk | Usage |
---|---|---|---|
@slimio/config | Minor | High | TBC |
@slimio/is | Minor | Low | Type checker |
@slimio/safe-emitter | Minor | Medium | Node.js Safe Emitter |
@slimio/scheduler | Minor | Low | TBC |
@slimio/timer | Minor | Low | Driftless interval |
ms | Low | TBC |
MIT