isotropic-make
Version:
A factory function that makes factory functions
2 lines • 10.4 kB
JavaScript
import _create from"isotropic-create";import _mixin from"isotropic-mixin";export default((a,b,c,d,e,f,g)=>{"function"!=typeof a&&(g=f,f=e,e=d,d=c,c=b,b=a,a=Object),Array.isArray(b)||(g=f,f=e,e=d,d=c,c=b,b=null),"object"!=typeof d&&(g=f,f=e,e=d,d=null),Array.isArray(e)?(g=e,f="_init",e="_init"):(e||="_init",Array.isArray(f)?(g=f,f="_init"):f||="_init");const h=a.prototype,i=Object.create(h),j="function"==typeof e?function(...a){return Reflect.apply(e,_create(j,i),a)}:function(...a){const b=_create(j,i),c=b[e];return"function"==typeof c?Reflect.apply(c,b,a):b};if(b){const a={};b.forEach(b=>{_mixin(b,a),_mixin(b.prototype,i)}),d&&_mixin(d,a),d=a}return _mixin(c,i),Object.defineProperty(i,"constructor",{configurable:!0,enumerable:!1,value:j,writable:!0}),d&&_mixin(d,j),j.mixins=b,j.prototype=i,j.super_=a,j.superclass=h,Reflect.setPrototypeOf(j,a),"string"==typeof f&&(f=j[f]),"function"==typeof f?Reflect.apply(f,j,Array.isArray(g)?g:[]):j});
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY3JlYXRlIiwiX21peGluIiwic3VwZXJDb25zdHJ1Y3RvckZ1bmN0aW9uIiwibWl4aW5Db25zdHJ1Y3RvckZ1bmN0aW9ucyIsInByb3RvdHlwZU9iamVjdCIsInN0YXRpY09iamVjdCIsImluaXRGdW5jdGlvbiIsInN0YXRpY0luaXRGdW5jdGlvbiIsInN0YXRpY0luaXRGdW5jdGlvbkFyZ3MiLCJPYmplY3QiLCJBcnJheSIsImlzQXJyYXkiLCJzdXBlclByb3RvdHlwZU9iamVjdCIsInByb3RvdHlwZSIsImluaGVyaXRlZFByb3RvdHlwZU9iamVjdCIsImNyZWF0ZSIsImNvbnN0cnVjdG9yRnVuY3Rpb24iLCJhcmdzIiwiUmVmbGVjdCIsImFwcGx5IiwiaW5zdGFuY2UiLCJpbnN0YW5jZUluaXRGdW5jdGlvbiIsInN0YXRpY01peGluT2JqZWN0IiwiZm9yRWFjaCIsIm1peGluQ29uc3RydWN0b3JGdW5jdGlvbiIsImRlZmluZVByb3BlcnR5IiwiY29uZmlndXJhYmxlIiwiZW51bWVyYWJsZSIsInZhbHVlIiwid3JpdGFibGUiLCJtaXhpbnMiLCJzdXBlcl8iLCJzdXBlcmNsYXNzIiwic2V0UHJvdG90eXBlT2YiXSwic291cmNlcyI6WyIuLi9qcy9tYWtlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBfY3JlYXRlIGZyb20gJ2lzb3Ryb3BpYy1jcmVhdGUnO1xuaW1wb3J0IF9taXhpbiBmcm9tICdpc290cm9waWMtbWl4aW4nO1xuXG5leHBvcnQgZGVmYXVsdCAoc3VwZXJDb25zdHJ1Y3RvckZ1bmN0aW9uLCBtaXhpbkNvbnN0cnVjdG9yRnVuY3Rpb25zLCBwcm90b3R5cGVPYmplY3QsIHN0YXRpY09iamVjdCwgaW5pdEZ1bmN0aW9uLCBzdGF0aWNJbml0RnVuY3Rpb24sIHN0YXRpY0luaXRGdW5jdGlvbkFyZ3MpID0+IHtcbiAgICBpZiAodHlwZW9mIHN1cGVyQ29uc3RydWN0b3JGdW5jdGlvbiAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICBzdGF0aWNJbml0RnVuY3Rpb25BcmdzID0gc3RhdGljSW5pdEZ1bmN0aW9uO1xuICAgICAgICBzdGF0aWNJbml0RnVuY3Rpb24gPSBpbml0RnVuY3Rpb247XG4gICAgICAgIGluaXRGdW5jdGlvbiA9IHN0YXRpY09iamVjdDtcbiAgICAgICAgc3RhdGljT2JqZWN0ID0gcHJvdG90eXBlT2JqZWN0O1xuICAgICAgICBwcm90b3R5cGVPYmplY3QgPSBtaXhpbkNvbnN0cnVjdG9yRnVuY3Rpb25zO1xuICAgICAgICBtaXhpbkNvbnN0cnVjdG9yRnVuY3Rpb25zID0gc3VwZXJDb25zdHJ1Y3RvckZ1bmN0aW9uO1xuICAgICAgICBzdXBlckNvbnN0cnVjdG9yRnVuY3Rpb24gPSBPYmplY3Q7XG4gICAgfVxuXG4gICAgaWYgKCFBcnJheS5pc0FycmF5KG1peGluQ29uc3RydWN0b3JGdW5jdGlvbnMpKSB7XG4gICAgICAgIHN0YXRpY0luaXRGdW5jdGlvbkFyZ3MgPSBzdGF0aWNJbml0RnVuY3Rpb247XG4gICAgICAgIHN0YXRpY0luaXRGdW5jdGlvbiA9IGluaXRGdW5jdGlvbjtcbiAgICAgICAgaW5pdEZ1bmN0aW9uID0gc3RhdGljT2JqZWN0O1xuICAgICAgICBzdGF0aWNPYmplY3QgPSBwcm90b3R5cGVPYmplY3Q7XG4gICAgICAgIHByb3RvdHlwZU9iamVjdCA9IG1peGluQ29uc3RydWN0b3JGdW5jdGlvbnM7XG4gICAgICAgIG1peGluQ29uc3RydWN0b3JGdW5jdGlvbnMgPSBudWxsO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2Ygc3RhdGljT2JqZWN0ICE9PSAnb2JqZWN0Jykge1xuICAgICAgICBzdGF0aWNJbml0RnVuY3Rpb25BcmdzID0gc3RhdGljSW5pdEZ1bmN0aW9uO1xuICAgICAgICBzdGF0aWNJbml0RnVuY3Rpb24gPSBpbml0RnVuY3Rpb247XG4gICAgICAgIGluaXRGdW5jdGlvbiA9IHN0YXRpY09iamVjdDtcbiAgICAgICAgc3RhdGljT2JqZWN0ID0gbnVsbDtcbiAgICB9XG5cbiAgICBpZiAoQXJyYXkuaXNBcnJheShpbml0RnVuY3Rpb24pKSB7XG4gICAgICAgIHN0YXRpY0luaXRGdW5jdGlvbkFyZ3MgPSBpbml0RnVuY3Rpb247XG4gICAgICAgIHN0YXRpY0luaXRGdW5jdGlvbiA9ICdfaW5pdCc7XG4gICAgICAgIGluaXRGdW5jdGlvbiA9ICdfaW5pdCc7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgaW5pdEZ1bmN0aW9uIHx8PSAnX2luaXQnO1xuXG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHN0YXRpY0luaXRGdW5jdGlvbikpIHtcbiAgICAgICAgICAgIHN0YXRpY0luaXRGdW5jdGlvbkFyZ3MgPSBzdGF0aWNJbml0RnVuY3Rpb247XG4gICAgICAgICAgICBzdGF0aWNJbml0RnVuY3Rpb24gPSAnX2luaXQnO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgc3RhdGljSW5pdEZ1bmN0aW9uIHx8PSAnX2luaXQnO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY29uc3Qgc3VwZXJQcm90b3R5cGVPYmplY3QgPSBzdXBlckNvbnN0cnVjdG9yRnVuY3Rpb24ucHJvdG90eXBlLFxuXG4gICAgICAgIGluaGVyaXRlZFByb3RvdHlwZU9iamVjdCA9IE9iamVjdC5jcmVhdGUoc3VwZXJQcm90b3R5cGVPYmplY3QpLFxuXG4gICAgICAgIGNvbnN0cnVjdG9yRnVuY3Rpb24gPSB0eXBlb2YgaW5pdEZ1bmN0aW9uID09PSAnZnVuY3Rpb24nID9cbiAgICAgICAgICAgIGZ1bmN0aW9uICguLi5hcmdzKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFJlZmxlY3QuYXBwbHkoaW5pdEZ1bmN0aW9uLCBfY3JlYXRlKGNvbnN0cnVjdG9yRnVuY3Rpb24sIGluaGVyaXRlZFByb3RvdHlwZU9iamVjdCksIGFyZ3MpO1xuICAgICAgICAgICAgfSA6XG4gICAgICAgICAgICBmdW5jdGlvbiAoLi4uYXJncykge1xuICAgICAgICAgICAgICAgIGNvbnN0IGluc3RhbmNlID0gX2NyZWF0ZShjb25zdHJ1Y3RvckZ1bmN0aW9uLCBpbmhlcml0ZWRQcm90b3R5cGVPYmplY3QpLFxuICAgICAgICAgICAgICAgICAgICBpbnN0YW5jZUluaXRGdW5jdGlvbiA9IGluc3RhbmNlW2luaXRGdW5jdGlvbl07XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gdHlwZW9mIGluc3RhbmNlSW5pdEZ1bmN0aW9uID09PSAnZnVuY3Rpb24nID9cbiAgICAgICAgICAgICAgICAgICAgUmVmbGVjdC5hcHBseShpbnN0YW5jZUluaXRGdW5jdGlvbiwgaW5zdGFuY2UsIGFyZ3MpIDpcbiAgICAgICAgICAgICAgICAgICAgaW5zdGFuY2U7XG4gICAgICAgICAgICB9O1xuXG4gICAgaWYgKG1peGluQ29uc3RydWN0b3JGdW5jdGlvbnMpIHtcbiAgICAgICAgY29uc3Qgc3RhdGljTWl4aW5PYmplY3QgPSB7fTtcblxuICAgICAgICBtaXhpbkNvbnN0cnVjdG9yRnVuY3Rpb25zLmZvckVhY2gobWl4aW5Db25zdHJ1Y3RvckZ1bmN0aW9uID0+IHtcbiAgICAgICAgICAgIF9taXhpbihtaXhpbkNvbnN0cnVjdG9yRnVuY3Rpb24sIHN0YXRpY01peGluT2JqZWN0KTtcbiAgICAgICAgICAgIF9taXhpbihtaXhpbkNvbnN0cnVjdG9yRnVuY3Rpb24ucHJvdG90eXBlLCBpbmhlcml0ZWRQcm90b3R5cGVPYmplY3QpO1xuICAgICAgICB9KTtcblxuICAgICAgICBpZiAoc3RhdGljT2JqZWN0KSB7XG4gICAgICAgICAgICBfbWl4aW4oc3RhdGljT2JqZWN0LCBzdGF0aWNNaXhpbk9iamVjdCk7XG4gICAgICAgIH1cblxuICAgICAgICBzdGF0aWNPYmplY3QgPSBzdGF0aWNNaXhpbk9iamVjdDtcbiAgICB9XG5cbiAgICBfbWl4aW4ocHJvdG90eXBlT2JqZWN0LCBpbmhlcml0ZWRQcm90b3R5cGVPYmplY3QpO1xuXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGluaGVyaXRlZFByb3RvdHlwZU9iamVjdCwgJ2NvbnN0cnVjdG9yJywge1xuICAgICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICB2YWx1ZTogY29uc3RydWN0b3JGdW5jdGlvbixcbiAgICAgICAgd3JpdGFibGU6IHRydWVcbiAgICB9KTtcblxuICAgIGlmIChzdGF0aWNPYmplY3QpIHtcbiAgICAgICAgX21peGluKHN0YXRpY09iamVjdCwgY29uc3RydWN0b3JGdW5jdGlvbik7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3JGdW5jdGlvbi5taXhpbnMgPSBtaXhpbkNvbnN0cnVjdG9yRnVuY3Rpb25zO1xuICAgIGNvbnN0cnVjdG9yRnVuY3Rpb24ucHJvdG90eXBlID0gaW5oZXJpdGVkUHJvdG90eXBlT2JqZWN0O1xuICAgIGNvbnN0cnVjdG9yRnVuY3Rpb24uc3VwZXJfID0gc3VwZXJDb25zdHJ1Y3RvckZ1bmN0aW9uO1xuICAgIGNvbnN0cnVjdG9yRnVuY3Rpb24uc3VwZXJjbGFzcyA9IHN1cGVyUHJvdG90eXBlT2JqZWN0O1xuXG4gICAgUmVmbGVjdC5zZXRQcm90b3R5cGVPZihjb25zdHJ1Y3RvckZ1bmN0aW9uLCBzdXBlckNvbnN0cnVjdG9yRnVuY3Rpb24pO1xuXG4gICAgaWYgKHR5cGVvZiBzdGF0aWNJbml0RnVuY3Rpb24gPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHN0YXRpY0luaXRGdW5jdGlvbiA9IGNvbnN0cnVjdG9yRnVuY3Rpb25bc3RhdGljSW5pdEZ1bmN0aW9uXTtcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIHN0YXRpY0luaXRGdW5jdGlvbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICByZXR1cm4gUmVmbGVjdC5hcHBseShcbiAgICAgICAgICAgIHN0YXRpY0luaXRGdW5jdGlvbixcbiAgICAgICAgICAgIGNvbnN0cnVjdG9yRnVuY3Rpb24sXG4gICAgICAgICAgICBBcnJheS5pc0FycmF5KHN0YXRpY0luaXRGdW5jdGlvbkFyZ3MpID9cbiAgICAgICAgICAgICAgICBzdGF0aWNJbml0RnVuY3Rpb25BcmdzIDpcbiAgICAgICAgICAgICAgICBbXVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiBjb25zdHJ1Y3RvckZ1bmN0aW9uO1xufTtcbiJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTyxDQUFBQSxPQUFPLEtBQU0sa0JBQWtCLENBQ3RDLE1BQU8sQ0FBQUMsTUFBTSxLQUFNLGlCQUFpQixDQUVwQyxlQUFlLENBQUNDLENBQXdCLENBQUVDLENBQXlCLENBQUVDLENBQWUsQ0FBRUMsQ0FBWSxDQUFFQyxDQUFZLENBQUVDLENBQWtCLENBQUVDLENBQXNCLEdBQUssQ0FDckgsVUFBVSxFQUE5QyxNQUFPLENBQUFOLENBQXVDLEdBQzlDTSxDQUFzQixDQUFHRCxDQUFrQixDQUMzQ0EsQ0FBa0IsQ0FBR0QsQ0FBWSxDQUNqQ0EsQ0FBWSxDQUFHRCxDQUFZLENBQzNCQSxDQUFZLENBQUdELENBQWUsQ0FDOUJBLENBQWUsQ0FBR0QsQ0FBeUIsQ0FDM0NBLENBQXlCLENBQUdELENBQXdCLENBQ3BEQSxDQUF3QixDQUFHTyxNQUFNLEVBR2hDQyxLQUFLLENBQUNDLE9BQU8sQ0FBQ1IsQ0FBeUIsQ0FBQyxHQUN6Q0ssQ0FBc0IsQ0FBR0QsQ0FBa0IsQ0FDM0NBLENBQWtCLENBQUdELENBQVksQ0FDakNBLENBQVksQ0FBR0QsQ0FBWSxDQUMzQkEsQ0FBWSxDQUFHRCxDQUFlLENBQzlCQSxDQUFlLENBQUdELENBQXlCLENBQzNDQSxDQUF5QixDQUFHLElBQUksRUFHUixRQUFRLEVBQWhDLE1BQU8sQ0FBQUUsQ0FBeUIsR0FDaENHLENBQXNCLENBQUdELENBQWtCLENBQzNDQSxDQUFrQixDQUFHRCxDQUFZLENBQ2pDQSxDQUFZLENBQUdELENBQVksQ0FDM0JBLENBQVksQ0FBRyxJQUFJLEVBR25CSyxLQUFLLENBQUNDLE9BQU8sQ0FBQ0wsQ0FBWSxDQUFDLEVBQzNCRSxDQUFzQixDQUFHRixDQUFZLENBQ3JDQyxDQUFrQixDQUFHLE9BQU8sQ0FDNUJELENBQVksQ0FBRyxPQUFPLEdBRXRCQSxD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