@randajan/jet-base
Goal was to create universal structure for storing variables with watcher and validator.
Install
npm install @randajan/jet-base
or
yarn add @randajan/jet-base
Usage
Init
import { BaseSync } from "@randajan/jet-base";
const base = new BaseSync();
base.init(true)
there is also possibility to use 'base.config(true)' instead. Base will be initialized with arguments passed to config function when it will be necessarily
Set
function that simply assign values. For rewrite whole structure it can be used with object as first argument:
base.set({a:1, b:2, c:3, d:{x:123}});
or first argument could be path, and second argument value:
base.set("a", 1);
base.set("b", 2);
base.set("c", 3);
base.set("d.x", 123);
result will be the same.
Get
accessing stored values first argument could be path
base.get("d") == {x:123};
base.get("d.x") === 123;
result is everytime a deep copy.
Is / IsType / IsFull
simple comparing
base.is("d.x", 123) === true;
base.isType("d.x", "Number") === true;
base.isFulll("d.y") === false;
Fit
validator of value with middleware iterator. Also accept path as first argument
base.fit("a", (next, value, valueBefore)=>next(value > 0 ? 0 : value));
after defining new validator base will reprocess last input.
Watch
run me when variable under path has changed
base.watch("a", (get, changes)=>console.log(get()));
after any change at desired path will be called this function. Passing two arguments. Both are functions. get() will return value at same path and changes() will return list of sub changes;
Async
async version working pretty same
import { BaseAsync } from "@randajan/jet-base";
const base = new BaseAsync();
base.config(true)
License
MIT © randajan