UNPKG

@tsclean/core

Version:

Plugin for API Rest Full development, based on Clean Architecture, IoC and Dependency Injection.

57 lines 8.43 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.isSymbol = exports.isEmpty = exports.isNil = exports.isConstructor = exports.isString = exports.isFunction = exports.normalizePath = exports.stripEndSlash = exports.addLeadingSlash = exports.isPlainObject = exports.isObject = exports.isUndefined = void 0; exports.flatten = flatten; function flatten(arr) { const flat = [].concat(...arr); // Usamos unknown[] en lugar de any[] return flat.some(Array.isArray) ? flatten(flat) : flat; } const isUndefined = (obj) => typeof obj === 'undefined'; exports.isUndefined = isUndefined; const isObject = (fn) => !(0, exports.isNil)(fn) && typeof fn === 'object'; exports.isObject = isObject; const isPlainObject = (fn) => { if (!(0, exports.isObject)(fn)) { return false; } const proto = Object.getPrototypeOf(fn); if (proto === null) { return true; } const ctor = Object.prototype.hasOwnProperty.call(proto, 'constructor') && proto.constructor; return (typeof ctor === 'function' && ctor instanceof ctor && Function.prototype.toString.call(ctor) === Function.prototype.toString.call(Object)); }; exports.isPlainObject = isPlainObject; const addLeadingSlash = (path) => path && typeof path === 'string' ? path.charAt(0) !== '/' ? '/' + path : path : ''; exports.addLeadingSlash = addLeadingSlash; const stripEndSlash = (path) => path[path.length - 1] === '/' ? path.slice(0, path.length - 1) : path; exports.stripEndSlash = stripEndSlash; const normalizePath = (path) => path ? path.startsWith('/') ? ('/' + path.replace(/\/+$/, '')).replace(/\/+/g, '/') : '/' + path.replace(/\/+$/, '') : '/'; exports.normalizePath = normalizePath; const isFunction = (val) => typeof val === 'function'; exports.isFunction = isFunction; const isString = (fn) => typeof fn === 'string'; exports.isString = isString; const isConstructor = (fn) => fn === 'constructor'; exports.isConstructor = isConstructor; const isNil = (obj) => (0, exports.isUndefined)(obj) || obj === null; exports.isNil = isNil; const isEmpty = (array) => !(array && array.length > 0); exports.isEmpty = isEmpty; const isSymbol = (fn) => typeof fn === 'symbol'; exports.isSymbol = isSymbol; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmVkLnV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL3NoYXJlZC51dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwwQkFLQztBQUxELFNBQWdCLE9BQU8sQ0FBSSxHQUFRO0lBQ2pDLE1BQU0sSUFBSSxHQUFjLEVBQUUsQ0FBQyxNQUFNLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLHFDQUFxQztJQUNoRixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQztRQUM3QixDQUFDLENBQUUsT0FBTyxDQUFDLElBQWEsQ0FBdUM7UUFDL0QsQ0FBQyxDQUFFLElBQTBDLENBQUM7QUFDbEQsQ0FBQztBQUVNLE1BQU0sV0FBVyxHQUFHLENBQUMsR0FBUSxFQUFvQixFQUFFLENBQ3hELE9BQU8sR0FBRyxLQUFLLFdBQVcsQ0FBQTtBQURmLFFBQUEsV0FBVyxlQUNJO0FBRXJCLE1BQU0sUUFBUSxHQUFHLENBQUMsRUFBTyxFQUFnQixFQUFFLENBQ2hELENBQUMsSUFBQSxhQUFLLEVBQUMsRUFBRSxDQUFDLElBQUksT0FBTyxFQUFFLEtBQUssUUFBUSxDQUFBO0FBRHpCLFFBQUEsUUFBUSxZQUNpQjtBQUUvQixNQUFNLGFBQWEsR0FBRyxDQUFDLEVBQU8sRUFBZ0IsRUFBRTtJQUNyRCxJQUFJLENBQUMsSUFBQSxnQkFBUSxFQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUM7UUFDbEIsT0FBTyxLQUFLLENBQUE7SUFDZCxDQUFDO0lBQ0QsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUMsQ0FBQTtJQUN2QyxJQUFJLEtBQUssS0FBSyxJQUFJLEVBQUUsQ0FBQztRQUNuQixPQUFPLElBQUksQ0FBQTtJQUNiLENBQUM7SUFDRCxNQUFNLElBQUksR0FDUixNQUFNLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLGFBQWEsQ0FBQztRQUMxRCxLQUFLLENBQUMsV0FBVyxDQUFBO0lBQ25CLE9BQU8sQ0FDTCxPQUFPLElBQUksS0FBSyxVQUFVO1FBQzFCLElBQUksWUFBWSxJQUFJO1FBQ3BCLFFBQVEsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7WUFDdEMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUN6QyxDQUFBO0FBQ0gsQ0FBQyxDQUFBO0FBakJZLFFBQUEsYUFBYSxpQkFpQnpCO0FBRU0sTUFBTSxlQUFlLEdBQUcsQ0FBQyxJQUFhLEVBQVUsRUFBRSxDQUN2RCxJQUFJLElBQUksT0FBTyxJQUFJLEtBQUssUUFBUTtJQUM5QixDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHO1FBQ3RCLENBQUMsQ0FBQyxHQUFHLEdBQUcsSUFBSTtRQUNaLENBQUMsQ0FBQyxJQUFJO0lBQ1IsQ0FBQyxDQUFDLEVBQUUsQ0FBQTtBQUxLLFFBQUEsZUFBZSxtQkFLcEI7QUFFRCxNQUFNLGFBQWEsR0FBRyxDQUFDLElBQVksRUFBRSxFQUFFLENBQzVDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFBO0FBRDFELFFBQUEsYUFBYSxpQkFDNkM7QUFFaEUsTUFBTSxhQUFhLEdBQUcsQ0FBQyxJQUFhLEVBQVUsRUFBRSxDQUNyRCxJQUFJO0lBQ0YsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDO1FBQ3BCLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDO1FBQ3ZELENBQUMsQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDO0lBQ2xDLENBQUMsQ0FBQyxHQUFHLENBQUE7QUFMSSxRQUFBLGFBQWEsaUJBS2pCO0FBRUYsTUFBTSxVQUFVLEdBQUcsQ0FBQyxHQUFRLEVBQW1CLEVBQUUsQ0FDdEQsT0FBTyxHQUFHLEtBQUssVUFBVSxDQUFDO0FBRGYsUUFBQSxVQUFVLGNBQ0s7QUFFckIsTUFBTSxRQUFRLEdBQUcsQ0FBQyxFQUFPLEVBQWdCLEVBQUUsQ0FBQyxPQUFPLEVBQUUsS0FBSyxRQUFRLENBQUE7QUFBNUQsUUFBQSxRQUFRLFlBQW9EO0FBQ2xFLE1BQU0sYUFBYSxHQUFHLENBQUMsRUFBTyxFQUFXLEVBQUUsQ0FBQyxFQUFFLEtBQUssYUFBYSxDQUFBO0FBQTFELFFBQUEsYUFBYSxpQkFBNkM7QUFDaEUsTUFBTSxLQUFLLEdBQUcsQ0FBQyxHQUFRLEVBQTJCLEVBQUUsQ0FDekQsSUFBQSxtQkFBVyxFQUFDLEdBQUcsQ0FBQyxJQUFJLEdBQUcsS0FBSyxJQUFJLENBQUE7QUFEckIsUUFBQSxLQUFLLFNBQ2dCO0FBQzNCLE1BQU0sT0FBTyxHQUFHLENBQUMsS0FBVSxFQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxJQUFJLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUE7QUFBL0QsUUFBQSxPQUFPLFdBQXdEO0FBQ3JFLE1BQU0sUUFBUSxHQUFHLENBQUMsRUFBTyxFQUFnQixFQUFFLENBQUMsT0FBTyxFQUFFLEtBQUssUUFBUSxDQUFBO0FBQTVELFFBQUEsUUFBUSxZQUFvRCIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBmbGF0dGVuPFQ+KGFycjogVFtdKTogVCBleHRlbmRzIChpbmZlciBSKVtdID8gUltdIDogVFtdIHtcbiAgY29uc3QgZmxhdDogdW5rbm93bltdID0gW10uY29uY2F0KC4uLmFycik7IC8vIFVzYW1vcyB1bmtub3duW10gZW4gbHVnYXIgZGUgYW55W11cbiAgcmV0dXJuIGZsYXQuc29tZShBcnJheS5pc0FycmF5KVxuICAgID8gKGZsYXR0ZW4oZmxhdCBhcyBhbnlbXSkgYXMgVCBleHRlbmRzIChpbmZlciBSKVtdID8gUltdIDogVFtdKVxuICAgIDogKGZsYXQgYXMgVCBleHRlbmRzIChpbmZlciBSKVtdID8gUltdIDogVFtdKTtcbn1cblxuZXhwb3J0IGNvbnN0IGlzVW5kZWZpbmVkID0gKG9iajogYW55KTogb2JqIGlzIHVuZGVmaW5lZCA9PlxuICB0eXBlb2Ygb2JqID09PSAndW5kZWZpbmVkJ1xuXG5leHBvcnQgY29uc3QgaXNPYmplY3QgPSAoZm46IGFueSk6IGZuIGlzIG9iamVjdCA9PlxuICAhaXNOaWwoZm4pICYmIHR5cGVvZiBmbiA9PT0gJ29iamVjdCdcblxuZXhwb3J0IGNvbnN0IGlzUGxhaW5PYmplY3QgPSAoZm46IGFueSk6IGZuIGlzIG9iamVjdCA9PiB7XG4gIGlmICghaXNPYmplY3QoZm4pKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cbiAgY29uc3QgcHJvdG8gPSBPYmplY3QuZ2V0UHJvdG90eXBlT2YoZm4pXG4gIGlmIChwcm90byA9PT0gbnVsbCkge1xuICAgIHJldHVybiB0cnVlXG4gIH1cbiAgY29uc3QgY3RvciA9XG4gICAgT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHByb3RvLCAnY29uc3RydWN0b3InKSAmJlxuICAgIHByb3RvLmNvbnN0cnVjdG9yXG4gIHJldHVybiAoXG4gICAgdHlwZW9mIGN0b3IgPT09ICdmdW5jdGlvbicgJiZcbiAgICBjdG9yIGluc3RhbmNlb2YgY3RvciAmJlxuICAgIEZ1bmN0aW9uLnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGN0b3IpID09PVxuICAgIEZ1bmN0aW9uLnByb3RvdHlwZS50b1N0cmluZy5jYWxsKE9iamVjdClcbiAgKVxufVxuXG5leHBvcnQgY29uc3QgYWRkTGVhZGluZ1NsYXNoID0gKHBhdGg/OiBzdHJpbmcpOiBzdHJpbmcgPT5cbiAgcGF0aCAmJiB0eXBlb2YgcGF0aCA9PT0gJ3N0cmluZydcbiAgICA/IHBhdGguY2hhckF0KDApICE9PSAnLydcbiAgICAgID8gJy8nICsgcGF0aFxuICAgICAgOiBwYXRoXG4gICAgOiAnJ1xuXG5leHBvcnQgY29uc3Qgc3RyaXBFbmRTbGFzaCA9IChwYXRoOiBzdHJpbmcpID0+XG4gIHBhdGhbcGF0aC5sZW5ndGggLSAxXSA9PT0gJy8nID8gcGF0aC5zbGljZSgwLCBwYXRoLmxlbmd0aCAtIDEpIDogcGF0aFxuXG5leHBvcnQgY29uc3Qgbm9ybWFsaXplUGF0aCA9IChwYXRoPzogc3RyaW5nKTogc3RyaW5nID0+XG4gIHBhdGhcbiAgICA/IHBhdGguc3RhcnRzV2l0aCgnLycpXG4gICAgICA/ICgnLycgKyBwYXRoLnJlcGxhY2UoL1xcLyskLywgJycpKS5yZXBsYWNlKC9cXC8rL2csICcvJylcbiAgICAgIDogJy8nICsgcGF0aC5yZXBsYWNlKC9cXC8rJC8sICcnKVxuICAgIDogJy8nXG5cbmV4cG9ydCBjb25zdCBpc0Z1bmN0aW9uID0gKHZhbDogYW55KTogdmFsIGlzIEZ1bmN0aW9uID0+XG4gIHR5cGVvZiB2YWwgPT09ICdmdW5jdGlvbic7XG5cbmV4cG9ydCBjb25zdCBpc1N0cmluZyA9IChmbjogYW55KTogZm4gaXMgc3RyaW5nID0+IHR5cGVvZiBmbiA9PT0gJ3N0cmluZydcbmV4cG9ydCBjb25zdCBpc0NvbnN0cnVjdG9yID0gKGZuOiBhbnkpOiBib29sZWFuID0+IGZuID09PSAnY29uc3RydWN0b3InXG5leHBvcnQgY29uc3QgaXNOaWwgPSAob2JqOiBhbnkpOiBvYmogaXMgbnVsbCB8IHVuZGVmaW5lZCA9PlxuICBpc1VuZGVmaW5lZChvYmopIHx8IG9iaiA9PT0gbnVsbFxuZXhwb3J0IGNvbnN0IGlzRW1wdHkgPSAoYXJyYXk6IGFueSk6IGJvb2xlYW4gPT4gIShhcnJheSAmJiBhcnJheS5sZW5ndGggPiAwKVxuZXhwb3J0IGNvbnN0IGlzU3ltYm9sID0gKGZuOiBhbnkpOiBmbiBpcyBzeW1ib2wgPT4gdHlwZW9mIGZuID09PSAnc3ltYm9sJ1xuIl19