yandex-cloud-functions-router
Version:
Node router for Yandex Cloud Functions
19 lines (18 loc) • 1.11 kB
JavaScript
;
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;