ch4o
v3.0.1
Published
Javascript native utils, include Stack TPL generator etc.
Downloads
6
Maintainers
Readme
ch4o
Basic NATIVE js utils
r
r recursively tranverse an object. it provides hooks on each data node, let you to get or modify nodeValue you interested there are two search algorithms: depth-first(DFS) & breadth-first(BFS), use diffrent way to get particular nodes easier.
example:
import {r, BFS, DFS} from 'ch4o';
const o = {a: [2,1]};
function watcher(prop, value) {
console.log(prop, value);
return value;
}
const maxDepth = 2;
r(o, watcher, DFS, maxDepth);
TPL
TPL is a template generator
import {TPL, ID, IF, ENDIF, ELSE} from 'ch4o';
const tpl = TPL`Hello ${IF('name')} tpl ${ELSE} ${ID('name')} world${ENDIF}`;
const str = tpl({name: 'ch4o'});
console.log(str);
TaskChain
TaskChain calls task sequence in order, passing result value from one to next, and return the final value Task can be async, you can use either async/await or Promise
import {TaskChain, Task} from 'ch4o';
function inc(src, len = 1) {
return new Promise((resolve, reject) => {
setTimeout(() => resolve(src + len), 500);
console.log(src,len);
});
}
function toString(value, radix = 10) {
return +value.toString(radix);
}
const tc = new TaskChain([
inc,
new Task(toString, 16),
new class extends Task {
name = 'inline'
exec(value){
return value + '.';
}
},
new LastTask
]);
let res = await tc.exec(253);
exec
Excecute a string of js expression and return its result
import {exec} from 'ch4o';
console.log(exec('1 + 1')); // 2
// With host values
console.log(exec('1 + a', {a: 2})); // 3