@slimio/profiles
v0.1.2
Published
Addon profiles manager
Readme
Profiles
Addon profiles manager.
Requirements
- Node.js v10 or higher
Getting Started
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/profilesUsage example
const profilesLoader = require("@slimio/profiles");
const Addon = require("@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);
});
CPU.ready();
});
CPU.on("stop", () => {
profiles.free(); // use free() to cleanup everything
});
module.exports = CPU;API
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.
Dependencies
|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|⚠️Major|Low|TBC|
License
MIT
