@kospa/base
Version:
Base components for kospa framework
93 lines (92 loc) • 3.03 kB
JavaScript
(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;
});