UNPKG

@tsclean/core

Version:

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

45 lines 6.95 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.RouteInfoPathExtractor = void 0; const shared_utils_1 = require("../utils/shared.utils"); const utils_1 = require("../router/utils"); class RouteInfoPathExtractor { constructor(applicationConfig) { this.applicationConfig = applicationConfig; this.prefixPath = (0, shared_utils_1.stripEndSlash)((0, shared_utils_1.addLeadingSlash)(this.applicationConfig.getGlobalPrefix())); this.excludedGlobalPrefixRoutes = this.applicationConfig.getGlobalPrefixOptions().exclude; } extractPathsFrom({ path, method }) { if (this.isAWildcard(path)) { const entries = this.prefixPath ? [this.prefixPath + '$', this.prefixPath + (0, shared_utils_1.addLeadingSlash)(path)] : [(0, shared_utils_1.addLeadingSlash)(path)]; return Array.isArray(this.excludedGlobalPrefixRoutes) ? [ ...entries, ...this.excludedGlobalPrefixRoutes.map(route => (0, shared_utils_1.addLeadingSlash)(route.path)) ] : entries; } return this.extractNonWildcardPathsFrom({ path, method }); } extractPathFrom(route) { if (this.isAWildcard(route.path)) { return [(0, shared_utils_1.addLeadingSlash)(route.path)]; } return this.extractNonWildcardPathsFrom(route); } isAWildcard(path) { return ['*', '/*', '/*/', '(.*)', '/(.*)'].includes(path); } extractNonWildcardPathsFrom({ path, method }) { if (Array.isArray(this.excludedGlobalPrefixRoutes) && (0, utils_1.isRouteExcluded)(this.excludedGlobalPrefixRoutes, path, method)) { return [(0, shared_utils_1.addLeadingSlash)(path)]; } return [this.prefixPath + (0, shared_utils_1.addLeadingSlash)(path)]; } } exports.RouteInfoPathExtractor = RouteInfoPathExtractor; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUtaW5mby1wYXRoLWV4dHJhY3Rvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9taWRkbGV3YXJlL3JvdXRlLWluZm8tcGF0aC1leHRyYWN0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsd0RBQXNFO0FBRXRFLDJDQUFpRDtBQUdqRCxNQUFhLHNCQUFzQjtJQUlqQyxZQUE4QixpQkFBb0M7UUFBcEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNoRSxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUEsNEJBQWEsRUFDN0IsSUFBQSw4QkFBZSxFQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxlQUFlLEVBQUUsQ0FBQyxDQUMxRCxDQUFBO1FBQ0QsSUFBSSxDQUFDLDBCQUEwQjtZQUM3QixJQUFJLENBQUMsaUJBQWlCLENBQUMsc0JBQXNCLEVBQUUsQ0FBQyxPQUFPLENBQUE7SUFDM0QsQ0FBQztJQUVNLGdCQUFnQixDQUFFLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBYTtRQUNsRCxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUMzQixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsVUFBVTtnQkFDN0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsR0FBRyxHQUFHLEVBQUUsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFBLDhCQUFlLEVBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ2xFLENBQUMsQ0FBQyxDQUFDLElBQUEsOEJBQWUsRUFBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO1lBRTNCLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsMEJBQTBCLENBQUM7Z0JBQ25ELENBQUMsQ0FBQztvQkFDRSxHQUFHLE9BQU87b0JBQ1YsR0FBRyxJQUFJLENBQUMsMEJBQTBCLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQzdDLElBQUEsOEJBQWUsRUFBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQzVCO2lCQUNGO2dCQUNILENBQUMsQ0FBQyxPQUFPLENBQUE7UUFDYixDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUMsMkJBQTJCLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQTtJQUMzRCxDQUFDO0lBRU0sZUFBZSxDQUFFLEtBQWdCO1FBQ3RDLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUNqQyxPQUFPLENBQUMsSUFBQSw4QkFBZSxFQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO1FBQ3RDLENBQUM7UUFFRCxPQUFPLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUNoRCxDQUFDO0lBRU8sV0FBVyxDQUFFLElBQVk7UUFDL0IsT0FBTyxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUE7SUFDM0QsQ0FBQztJQUVPLDJCQUEyQixDQUFFLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBYTtRQUM5RCxJQUNFLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLDBCQUEwQixDQUFDO1lBQzlDLElBQUEsdUJBQWUsRUFBQyxJQUFJLENBQUMsMEJBQTBCLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxFQUM5RCxDQUFDO1lBQ0QsT0FBTyxDQUFDLElBQUEsOEJBQWUsRUFBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ2pDLENBQUM7UUFFRCxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFBLDhCQUFlLEVBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUNuRCxDQUFDO0NBQ0Y7QUFyREQsd0RBcURDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYWRkTGVhZGluZ1NsYXNoLCBzdHJpcEVuZFNsYXNoIH0gZnJvbSAnLi4vdXRpbHMvc2hhcmVkLnV0aWxzJ1xuaW1wb3J0IHsgQXBwbGljYXRpb25Db25maWcgfSBmcm9tICcuLi9hcHAnXG5pbXBvcnQgeyBpc1JvdXRlRXhjbHVkZWQgfSBmcm9tICcuLi9yb3V0ZXIvdXRpbHMnXG5pbXBvcnQgeyBFeGNsdWRlUm91dGVNZXRhZGF0YUludGVyZmFjZSwgUm91dGVJbmZvIH0gZnJvbSAnLi4vY29udHJhY3RzJ1xuXG5leHBvcnQgY2xhc3MgUm91dGVJbmZvUGF0aEV4dHJhY3RvciB7XG4gIHByaXZhdGUgcmVhZG9ubHkgcHJlZml4UGF0aDogc3RyaW5nXG4gIHByaXZhdGUgcmVhZG9ubHkgZXhjbHVkZWRHbG9iYWxQcmVmaXhSb3V0ZXM6IEV4Y2x1ZGVSb3V0ZU1ldGFkYXRhSW50ZXJmYWNlW11cblxuICBjb25zdHJ1Y3RvciAocHJpdmF0ZSByZWFkb25seSBhcHBsaWNhdGlvbkNvbmZpZzogQXBwbGljYXRpb25Db25maWcpIHtcbiAgICB0aGlzLnByZWZpeFBhdGggPSBzdHJpcEVuZFNsYXNoKFxuICAgICAgYWRkTGVhZGluZ1NsYXNoKHRoaXMuYXBwbGljYXRpb25Db25maWcuZ2V0R2xvYmFsUHJlZml4KCkpXG4gICAgKVxuICAgIHRoaXMuZXhjbHVkZWRHbG9iYWxQcmVmaXhSb3V0ZXMgPVxuICAgICAgdGhpcy5hcHBsaWNhdGlvbkNvbmZpZy5nZXRHbG9iYWxQcmVmaXhPcHRpb25zKCkuZXhjbHVkZVxuICB9XG5cbiAgcHVibGljIGV4dHJhY3RQYXRoc0Zyb20gKHsgcGF0aCwgbWV0aG9kIH06IFJvdXRlSW5mbyk6IHN0cmluZ1tdIHtcbiAgICBpZiAodGhpcy5pc0FXaWxkY2FyZChwYXRoKSkge1xuICAgICAgY29uc3QgZW50cmllcyA9IHRoaXMucHJlZml4UGF0aFxuICAgICAgICA/IFt0aGlzLnByZWZpeFBhdGggKyAnJCcsIHRoaXMucHJlZml4UGF0aCArIGFkZExlYWRpbmdTbGFzaChwYXRoKV1cbiAgICAgICAgOiBbYWRkTGVhZGluZ1NsYXNoKHBhdGgpXVxuXG4gICAgICByZXR1cm4gQXJyYXkuaXNBcnJheSh0aGlzLmV4Y2x1ZGVkR2xvYmFsUHJlZml4Um91dGVzKVxuICAgICAgICA/IFtcbiAgICAgICAgICAgIC4uLmVudHJpZXMsXG4gICAgICAgICAgICAuLi50aGlzLmV4Y2x1ZGVkR2xvYmFsUHJlZml4Um91dGVzLm1hcChyb3V0ZSA9PlxuICAgICAgICAgICAgICBhZGRMZWFkaW5nU2xhc2gocm91dGUucGF0aClcbiAgICAgICAgICAgIClcbiAgICAgICAgICBdXG4gICAgICAgIDogZW50cmllc1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmV4dHJhY3ROb25XaWxkY2FyZFBhdGhzRnJvbSh7IHBhdGgsIG1ldGhvZCB9KVxuICB9XG5cbiAgcHVibGljIGV4dHJhY3RQYXRoRnJvbSAocm91dGU6IFJvdXRlSW5mbyk6IHN0cmluZ1tdIHtcbiAgICBpZiAodGhpcy5pc0FXaWxkY2FyZChyb3V0ZS5wYXRoKSkge1xuICAgICAgcmV0dXJuIFthZGRMZWFkaW5nU2xhc2gocm91dGUucGF0aCldXG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuZXh0cmFjdE5vbldpbGRjYXJkUGF0aHNGcm9tKHJvdXRlKVxuICB9XG5cbiAgcHJpdmF0ZSBpc0FXaWxkY2FyZCAocGF0aDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIFsnKicsICcvKicsICcvKi8nLCAnKC4qKScsICcvKC4qKSddLmluY2x1ZGVzKHBhdGgpXG4gIH1cblxuICBwcml2YXRlIGV4dHJhY3ROb25XaWxkY2FyZFBhdGhzRnJvbSAoeyBwYXRoLCBtZXRob2QgfTogUm91dGVJbmZvKTogc3RyaW5nW10ge1xuICAgIGlmIChcbiAgICAgIEFycmF5LmlzQXJyYXkodGhpcy5leGNsdWRlZEdsb2JhbFByZWZpeFJvdXRlcykgJiZcbiAgICAgIGlzUm91dGVFeGNsdWRlZCh0aGlzLmV4Y2x1ZGVkR2xvYmFsUHJlZml4Um91dGVzLCBwYXRoLCBtZXRob2QpXG4gICAgKSB7XG4gICAgICByZXR1cm4gW2FkZExlYWRpbmdTbGFzaChwYXRoKV07XG4gICAgfVxuXG4gICAgcmV0dXJuIFt0aGlzLnByZWZpeFBhdGggKyBhZGRMZWFkaW5nU2xhc2gocGF0aCldO1xuICB9XG59XG4iXX0=