@slimio/profiles
TypeScript icon, indicating that this package has built-in type declarations

0.1.2 • Public • Published

Profiles

version Maintenance MIT

Addon profiles manager.

Requirements

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/profiles

Usage 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

Package Sidebar

Install

npm i @slimio/profiles

Weekly Downloads

0

Version

0.1.2

License

MIT

Unpacked Size

9.98 kB

Total Files

6

Last publish

Collaborators

  • fraxken
  • alexandre.malaj