@randajan/jet-base

2.3.1 • Public • Published

@randajan/jet-base

NPM JavaScript Style Guide

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) // initialize base (first argument = debug on/off)

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) // config base for later use (first argument = debug on/off)

License

MIT © randajan

Readme

Keywords

Package Sidebar

Install

npm i @randajan/jet-base

Weekly Downloads

2

Version

2.3.1

License

MIT

Unpacked Size

482 kB

Total Files

75

Last publish

Collaborators

  • randajan