Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
@skava/modules / ___dist / exotic / @examples / overArgs-over-class-and-wrap.js
Size: Mime:
"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)