@decorators/server
Version:
node decorators - decorators for express library
49 lines • 5.6 kB
JavaScript
;
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=