@slimio/utils

Slim.IO Utils functions

Usage no npm install needed!

<script type="module">
  import slimioUtils from 'https://cdn.skypack.dev/@slimio/utils';
</script>

README

Utils

version Maintenance MIT 1DEP Build Status Greenkeeper badge

SlimIO Utils. This package has been created for internal usage (Features are added to the package to avoid spreading of similar functionalities across multiple projects).

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/utils
# or
$ yarn add @slimio/utils

Usage example

TBC

API

taggedString(chaines: string, ...keys: any[]): Clojure

This method is inspired from Tagged Literal (look at the MDN Documentation)

Useful to build string templates:

const { strictEqual } = require("assert");
const tpl = taggedString`hello ${0}`;

strictEqual(tpl("fraxken"), "hello fraxken");

Template properties can be either index or key:

const { strictEqual } = require("assert");
const tpl = taggedString`hello ${"name"}`;

strictEqual(tpl({ name: "fraxken" }), "hello fraxken");
createDirectory(path: string): void

Create a directory at the given path. This method trigger fs.mkdir but catch the ENOENT error if the directory exist.

assertEntity(entity: SlimIO.RawEntity): void

Assert an Entity Object.

assertEntity({
    name: "myEntity",
    description: "desc",
    parent: 10,
    descriptors: {}
});
assertMIC(mic: SlimIO.RawIdentityCard): void

Assert an MicIdentityCard Object.

assertMIC({
    name: "myMIC",
    entityId: 1,
    unit: "unit",
    interval: 10,
    max: 100,
    description: "desc"
});
assertAlarm(alarm: SlimIO.RawAlarm): void

Assert an Alarm Object.

assertAlarm({
    message: "message",
    severity: 1,
    entityId: 2,
    correlateKey: "test_corrKey"
});
assertCorrelateID(CID: SlimIO.CID): void

Assert a correlate id (Alarm correlate id). A CID is the addition of a Alarm ID and a Correlate key. The maximum length of the CID is 44.

assertCorrelateID("1#test_corrkey");
assertCK(correlateKey: string): void

Assert a correlate key (Alarm correlate key). The length of CK must be between 1 and 35.

assertCK("test_corrkey");
privateProperty(target: object, propertyKey: string|symbol|number, value?: any): void

Define a private (non-enumable, non-configurable) property on the target.

const assert = require("assert");

const obj = {};
privateProperty(obj, "foo", "bar");
assert.deepEqual(Object.keys(obj), []);

obj.foo = "world!";
assert.strictEqual(obj.foo, "world!");
assert.throws(() => {
    delete obj.foo;
}, { name: 'TypeError' });

License

MIT