Repository URL to install this package:
|
Version:
1.2.7 ▾
|
"use strict";
const _require = require("../../chain-able/index.js"),
curry = _require.curry,
overStaticMethods = _require.overStaticMethods;
const coersionArgs = require("../../chain-able/src/deps/overArgs");
let Klay = class Klay {
static eh(arg1, arg2) {
console.log('eh', {
arg1,
arg2
});
}
};
const toCoercer = coercer => coersionArgs(coercer); // @TODO aka `tap`
const updateKlass = (Klass, coercer) => overStaticMethods(Klass, toCoercer(coercer));
const toRamdom = x => Math.random(0, 1000);
updateKlass(toRamdom); // filter?
// const overStatics = Klass => {}
const coerceOverArgs = curry(2, coersionArgs);
function myFn(obj, ar, str, num) {
return {
obj,
ar,
str,
num
};
}
const overMyArgs = coerceOverArgs(Object, Array, String('string'), Number(1));
const mySafeFn = overMyArgs(myFn); // const results = mySafeFn('null', 'null', 'null', 'null')
const results = mySafeFn(null, {
obj: []
}, 1, '10');
function myFnWithTypeHintsForBabel(obj = Object, ar = Array, str = String('string'), num = Number(1)) {
return {
obj,
ar,
str,
num
};
} // const { obj, ar, str, num } = results
// console.assert(isObj(obj))
// console.assert(isArray(ar))
// console.assert(isString(str))
// console.assert(isNumber(num))
// console.log('overMyArgs', overMyArgs)
// const defaultMyArgs = coerceOverArgs({}, [], '', 1)
// const myDefaultedFn = defaultMyArgs(myFn)
//
// const myAPIFn = coerceOverArgs(myFn, {}, [], '', 1)
// const myFlippedFn = coerceOverArgs(myFn, {}, [], '', 1)