UNPKG

@kospa/base

Version:

Base components for kospa framework

93 lines (92 loc) 3.03 kB
(function (factory) { if (typeof module === "object" && typeof module.exports === "object") { var v = factory(require, exports); if (v !== undefined) module.exports = v; } else if (typeof define === "function" && define.amd) { define(["require", "exports", "./loader"], factory); } })(function (require, exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.asyncEach = exports.deferred = exports.module = exports.extend = exports.error = exports.log = exports.enableLog = void 0; var loader = require("./loader"); var _enableLog = true; function enableLog(enable) { _enableLog = enable; } exports.enableLog = enableLog; function log() { var args = []; for (var _i = 0; _i < arguments.length; _i++) { args[_i] = arguments[_i]; } if (_enableLog) { console.log.apply(console, args); } } exports.log = log; function error() { var args = []; for (var _i = 0; _i < arguments.length; _i++) { args[_i] = arguments[_i]; } if (_enableLog) { console.error.apply(console, args); } } exports.error = error; exports.extend = (function (Obj) { if ("assign" in Obj) { return Obj.assign; } return function assign(target) { if (typeof target === "undefined") { throw new Error("Please specify a target object"); } var T = Object(target); var l = arguments.length; var i = 1; var S; while (l > i) { S = Object(arguments[i++]); // eslint-disable-line Object.keys(S).forEach(assignKey, S); } return T; function assignKey(key) { T[key] = this[key]; } }; })(Object); function module() { var args = Array.prototype.slice.call(arguments); // eslint-disable-line if (args.length === 0) { return Promise.resolve(null); } if (args.length === 1 && Array.isArray(args[0])) { args = args[0]; } if (args.length === 1) { return loader.loadModule(args[0]); } return Promise.all(args.map(loader.loadModule)); } exports.module = module; function deferred() { var defer = { resolve: null, reject: null, promise: null }; defer.promise = new Promise(function (resolve, reject) { defer.resolve = resolve; defer.reject = reject; }); return defer; } exports.deferred = deferred; function asyncEach(array, iterator) { return array.reduce(function (prom, value, index, list) { return prom.then(function () { return iterator(value, index, list); }); }, Promise.resolve()); } exports.asyncEach = asyncEach; });