UNPKG

yandex-cloud-functions-router

Version:
19 lines (18 loc) 1.11 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.isRequestMeetCorsRules = void 0; const getHeaderValue_1 = require("../getHeaderValue"); const isOriginValid_1 = require("./isOriginValid"); const isRequestSimple_1 = require("./isRequestSimple"); const isRequestMeetCorsRules = (request, options) => { var _a; const method = (_a = request.httpMethod) === null || _a === void 0 ? void 0 : _a.toString().trim().toUpperCase(); const currentOrigin = getHeaderValue_1.getHeaderValue(request, 'origin'); const allowedHeaders = [...isRequestSimple_1.simpleRequestAllowedHeaders, ...options.allowedHeaders.map((h) => h.trim().toLowerCase())]; const isMethodValid = options.allowedMethods.map((m) => m.trim().toUpperCase()).indexOf(method) !== -1; const areHeadersValid = Object.keys(request.headers) .map((h) => h.trim().toLowerCase()) .every((h) => allowedHeaders.indexOf(h) !== -1); return isMethodValid && areHeadersValid && isOriginValid_1.isOriginValid(options, currentOrigin); }; exports.isRequestMeetCorsRules = isRequestMeetCorsRules;