UNPKG

@decorators/server

Version:

node decorators - decorators for express library

49 lines 5.6 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.isEnum = exports.isFunction = exports.isClass = exports.extractParamNames = exports.toStandardType = exports.asyncMap = exports.buildUrl = exports.addLeadingSlash = void 0; function addLeadingSlash(url) { return url.startsWith('/') ? url : `/${url}`; } exports.addLeadingSlash = addLeadingSlash; function buildUrl(...paths) { return paths .filter(Boolean) .map(path => path.startsWith('/') ? path.slice(1) : path) .filter(Boolean) .join('/'); } exports.buildUrl = buildUrl; function asyncMap(iterables, func) { return Promise.all(iterables.map(func)); } exports.asyncMap = asyncMap; function toStandardType(param) { if (param === 'false' || param === 'true') { return param === 'true'; } if (typeof param === 'string' && !isNaN(Number(param)) && !isNaN(parseFloat(param))) { return parseFloat(param); } return param; } exports.toStandardType = toStandardType; function extractParamNames(handler) { return /\(\s*([^)]+?)\s*\)/ .exec(handler.toString())[1] .split(',') .map(key => key.trim()); } exports.extractParamNames = extractParamNames; function isClass(type) { return typeof type === 'function' && type.toString().startsWith('class'); } exports.isClass = isClass; function isFunction(type) { return typeof type === 'function' && !isClass(type); } exports.isFunction = isFunction; function isEnum(type, val) { return Object.values(type).includes(val); } exports.isEnum = isEnum; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29yZS91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQSxTQUFnQixlQUFlLENBQUMsR0FBVztJQUN6QyxPQUFPLEdBQUcsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQztBQUMvQyxDQUFDO0FBRkQsMENBRUM7QUFFRCxTQUFnQixRQUFRLENBQUMsR0FBRyxLQUFlO0lBQ3pDLE9BQU8sS0FBSztTQUNULE1BQU0sQ0FBQyxPQUFPLENBQUM7U0FDZixHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7U0FDeEQsTUFBTSxDQUFDLE9BQU8sQ0FBQztTQUNmLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNmLENBQUM7QUFORCw0QkFNQztBQUVELFNBQWdCLFFBQVEsQ0FBSSxTQUFvQixFQUFFLElBQW1EO0lBQ25HLE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7QUFDMUMsQ0FBQztBQUZELDRCQUVDO0FBRUQsU0FBZ0IsY0FBYyxDQUFDLEtBQWM7SUFDM0MsSUFBSSxLQUFLLEtBQUssT0FBTyxJQUFJLEtBQUssS0FBSyxNQUFNLEVBQUU7UUFDekMsT0FBTyxLQUFLLEtBQUssTUFBTSxDQUFDO0tBQ3pCO0lBRUQsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUU7UUFDbkYsT0FBTyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7S0FDMUI7SUFFRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUM7QUFWRCx3Q0FVQztBQUVELFNBQWdCLGlCQUFpQixDQUFDLE9BQWdCO0lBQ2hELE9BQU8sb0JBQW9CO1NBQ3hCLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDM0IsS0FBSyxDQUFDLEdBQUcsQ0FBQztTQUNWLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0FBQzVCLENBQUM7QUFMRCw4Q0FLQztBQUVELFNBQWdCLE9BQU8sQ0FBQyxJQUFnQztJQUN0RCxPQUFPLE9BQU8sSUFBSSxLQUFLLFVBQVUsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQzNFLENBQUM7QUFGRCwwQkFFQztBQUVELFNBQWdCLFVBQVUsQ0FBQyxJQUFnQztJQUN6RCxPQUFPLE9BQU8sSUFBSSxLQUFLLFVBQVUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUN0RCxDQUFDO0FBRkQsZ0NBRUM7QUFFRCxTQUFnQixNQUFNLENBQUMsSUFBWSxFQUFFLEdBQVk7SUFDL0MsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUMzQyxDQUFDO0FBRkQsd0JBRUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDbGFzc0NvbnN0cnVjdG9yLCBIYW5kbGVyIH0gZnJvbSAnLi90eXBlcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBhZGRMZWFkaW5nU2xhc2godXJsOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gdXJsLnN0YXJ0c1dpdGgoJy8nKSA/IHVybCA6IGAvJHt1cmx9YDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkVXJsKC4uLnBhdGhzOiBzdHJpbmdbXSkge1xuICByZXR1cm4gcGF0aHNcbiAgICAuZmlsdGVyKEJvb2xlYW4pXG4gICAgLm1hcChwYXRoID0+IHBhdGguc3RhcnRzV2l0aCgnLycpID8gcGF0aC5zbGljZSgxKSA6IHBhdGgpXG4gICAgLmZpbHRlcihCb29sZWFuKVxuICAgIC5qb2luKCcvJyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhc3luY01hcDxUPihpdGVyYWJsZXM6IHVua25vd25bXSwgZnVuYzogKGl0ZXJhYmxlOiB1bmtub3duLCBpPzogbnVtYmVyKSA9PiBQcm9taXNlPFQ+KTogUHJvbWlzZTxUW10+IHtcbiAgcmV0dXJuIFByb21pc2UuYWxsKGl0ZXJhYmxlcy5tYXAoZnVuYykpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdG9TdGFuZGFyZFR5cGUocGFyYW06IHVua25vd24pIHtcbiAgaWYgKHBhcmFtID09PSAnZmFsc2UnIHx8IHBhcmFtID09PSAndHJ1ZScpIHtcbiAgICByZXR1cm4gcGFyYW0gPT09ICd0cnVlJztcbiAgfVxuXG4gIGlmICh0eXBlb2YgcGFyYW0gPT09ICdzdHJpbmcnICYmICFpc05hTihOdW1iZXIocGFyYW0pKSAmJiAhaXNOYU4ocGFyc2VGbG9hdChwYXJhbSkpKSB7XG4gICAgcmV0dXJuIHBhcnNlRmxvYXQocGFyYW0pO1xuICB9XG5cbiAgcmV0dXJuIHBhcmFtO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZXh0cmFjdFBhcmFtTmFtZXMoaGFuZGxlcjogSGFuZGxlcikge1xuICByZXR1cm4gL1xcKFxccyooW14pXSs/KVxccypcXCkvXG4gICAgLmV4ZWMoaGFuZGxlci50b1N0cmluZygpKVsxXVxuICAgIC5zcGxpdCgnLCcpXG4gICAgLm1hcChrZXkgPT4ga2V5LnRyaW0oKSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0NsYXNzKHR5cGU6IEhhbmRsZXIgfCBDbGFzc0NvbnN0cnVjdG9yKSB7XG4gIHJldHVybiB0eXBlb2YgdHlwZSA9PT0gJ2Z1bmN0aW9uJyAmJiB0eXBlLnRvU3RyaW5nKCkuc3RhcnRzV2l0aCgnY2xhc3MnKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzRnVuY3Rpb24odHlwZTogSGFuZGxlciB8IENsYXNzQ29uc3RydWN0b3IpIHtcbiAgcmV0dXJuIHR5cGVvZiB0eXBlID09PSAnZnVuY3Rpb24nICYmICFpc0NsYXNzKHR5cGUpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNFbnVtKHR5cGU6IG9iamVjdCwgdmFsOiB1bmtub3duKSB7XG4gIHJldHVybiBPYmplY3QudmFsdWVzKHR5cGUpLmluY2x1ZGVzKHZhbCk7XG59XG4iXX0=