UNPKG

@trifrost/core

Version:

Blazingly fast, runtime-agnostic server framework for modern edge and node environments

80 lines (79 loc) 2.66 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.isValidHandler = isValidHandler; exports.isValidGrouper = isValidGrouper; exports.isValidMiddleware = isValidMiddleware; exports.isValidLimit = isValidLimit; exports.isValidBodyParser = isValidBodyParser; exports.normalizeMiddleware = normalizeMiddleware; const number_1 = require("@valkyriestudios/utils/number"); const constants_1 = require("../types/constants"); /** * Validates whether or not a provided value is a valid handler or handler config * @param {TriFrostRouteHandler} val - Value to check */ function isValidHandler(val) { if (typeof val === 'function') return true; if (typeof val?.fn !== 'function') return false; if ('timeout' in val && !(0, number_1.isIntGt)(val.timeout, 0) && val.timeout !== null) return false; return true; } /** * Validates whether or not a provided value is a valid grouper or grouper config * @param {TriFrostRouteHandler} val - Value to check */ function isValidGrouper(val) { if (typeof val === 'function') return true; if (typeof val?.fn !== 'function') return false; if ('timeout' in val && !(0, number_1.isIntGt)(val.timeout, 0) && val.timeout !== null) return false; return true; } /** * Validates whether or not a provided value is a valid handler or handler config * @param {TriFrostRouteHandler} val - Value to check */ function isValidMiddleware(val) { return typeof val === 'function'; } /** * Validates whether or not a provided value is a valid handler or handler config * @param {number|TriFrostRateLimitLimitFunction} val - Value to check */ function isValidLimit(val) { return (0, number_1.isIntGt)(val, 0) || typeof val === 'function'; } /** * Validates whether or not a provided value is a valid bodyparser config * * @param {TriFrostBodyParserOptions|null} val - Value to verify */ function isValidBodyParser(val) { return val === null || Object.prototype.toString.call(val) === '[object Object]'; } /** * Normalizes middleware for internal usage * @param {TriFrostMiddleware[]} val - Value to normalize */ function normalizeMiddleware(val) { const acc = []; for (let i = 0; i < val.length; i++) { const el = val[i]; acc.push({ name: Reflect.get(el, constants_1.Sym_TriFrostName) || 'anonymous_mware', description: Reflect.get(el, constants_1.Sym_TriFrostDescription) || null, fingerprint: Reflect.get(el, constants_1.Sym_TriFrostFingerPrint) || null, handler: el, }); } return acc; }