UNPKG

@eggjs/controller-decorator

Version:

tegg controller decorator

46 lines 2.69 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.HTTPPriorityUtil = void 0; const path_to_regexp_1 = require("path-to-regexp"); class HTTPPriorityUtil { /** * | Path | RegExp index | priority | * | --- | --- | --- | * | /* | [0] | 0 | * | /hello/:name | [1] | 1000 | * | /hello/world/message/:message | [3] | 3000 | * | /hello/:name/message/:message | [1, 3] | 4000 | * | /hello/world | [] | 100000/Infinity? | * * priority = hasRegExp * : regexpIndex.reduce((p,c) => p + c * 1000, 0) * : 100000; * @param {string} path - */ static calcPathPriority(path) { const tokens = (0, path_to_regexp_1.parse)(path); let priority = 0; let hasRegExp = false; let index = 0; let token; while ((token = tokens.shift())) { if (typeof token === 'string') { // /view/users/* // token is [ '/view/users', '*' ] index += (token.split('/').length - 1); } else { hasRegExp = true; priority += index++ * this.TOKEN_PRIORITY; } } if (!hasRegExp) { return this.DEFAULT_PRIORITY; } return priority; } } exports.HTTPPriorityUtil = HTTPPriorityUtil; HTTPPriorityUtil.DEFAULT_PRIORITY = 100000; HTTPPriorityUtil.TOKEN_PRIORITY = 1000; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSFRUUFByaW9yaXR5VXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91dGlsL0hUVFBQcmlvcml0eVV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbURBQXVDO0FBRXZDLE1BQWEsZ0JBQWdCO0lBSTNCOzs7Ozs7Ozs7Ozs7O09BYUc7SUFDSCxNQUFNLENBQUMsZ0JBQWdCLENBQUMsSUFBWTtRQUNsQyxNQUFNLE1BQU0sR0FBRyxJQUFBLHNCQUFLLEVBQUMsSUFBSSxDQUFDLENBQUM7UUFDM0IsSUFBSSxRQUFRLEdBQUcsQ0FBQyxDQUFDO1FBQ2pCLElBQUksU0FBUyxHQUFHLEtBQUssQ0FBQztRQUN0QixJQUFJLEtBQUssR0FBRyxDQUFDLENBQUM7UUFDZCxJQUFJLEtBQUssQ0FBQztRQUNWLE9BQU8sQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLEVBQUUsQ0FBQztZQUNoQyxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRSxDQUFDO2dCQUM5QixnQkFBZ0I7Z0JBQ2hCLGtDQUFrQztnQkFDbEMsS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDekMsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLFNBQVMsR0FBRyxJQUFJLENBQUM7Z0JBQ2pCLFFBQVEsSUFBSSxLQUFLLEVBQUUsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDO1lBQzVDLENBQUM7UUFDSCxDQUFDO1FBQ0QsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ2YsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7UUFDL0IsQ0FBQztRQUNELE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7O0FBdENILDRDQXVDQztBQXRDaUIsaUNBQWdCLEdBQUcsTUFBTSxDQUFDO0FBQ2xCLCtCQUFjLEdBQUcsSUFBSSxDQUFDIn0=