UNPKG

cds-rate-limit

Version:

enabled rate limit pattern for CAP NodeJS Runtime

28 lines 1.65 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.keyExtractorCreatorBuilder = exports.builtInExtractors = void 0; exports.builtInExtractors = [ { targetKeyPart: "tenant", extract: (evt) => { var _a; return (_a = evt === null || evt === void 0 ? void 0 : evt.tenant) !== null && _a !== void 0 ? _a : "unknown_tenant"; } }, { targetKeyPart: "user_id", extract: (evt) => { var _a, _b; return (_b = (_a = evt === null || evt === void 0 ? void 0 : evt.user) === null || _a === void 0 ? void 0 : _a.id) !== null && _b !== void 0 ? _b : "unknown_user"; } }, { targetKeyPart: "remote_ip", extract: (evt) => { var _a, _b, _c, _d, _e, _f; return (_f = (_c = (_b = (_a = evt === null || evt === void 0 ? void 0 : evt._) === null || _a === void 0 ? void 0 : _a.req) === null || _b === void 0 ? void 0 : _b.ip) !== null && _c !== void 0 ? _c : (_e = (_d = evt === null || evt === void 0 ? void 0 : evt._) === null || _d === void 0 ? void 0 : _d.req) === null || _e === void 0 ? void 0 : _e.socket.remoteAddress) !== null && _f !== void 0 ? _f : "unknown_ip"; } }, ]; const keyExtractorCreatorBuilder = (extensionExtractors = []) => (keyParts) => (evt) => { const parts = []; for (const extractor of [...exports.builtInExtractors, ...extensionExtractors]) { if (extractor.targetKeyPart !== undefined && keyParts.includes(extractor.targetKeyPart)) { parts.push(extractor.extract(evt)); } } return parts.join("/"); }; exports.keyExtractorCreatorBuilder = keyExtractorCreatorBuilder; //# sourceMappingURL=key.js.map