@tsclean/core
Version:
Plugin for API Rest Full development, based on Clean Architecture, IoC and Dependency Injection.
57 lines • 8.43 kB
JavaScript
;
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