UNPKG

@aikidosec/firewall

Version:

Zen by Aikido is an embedded Web Application Firewall that autonomously protects Node.js apps against common and critical attacks

32 lines (31 loc) 898 B
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.mergeApiAuthTypes = mergeApiAuthTypes; /** * Merge two APIAuthType arrays into one, without duplicates. * Can return undefined if both parameters are not an array. */ function mergeApiAuthTypes(existing, newAuth) { if (!Array.isArray(newAuth) || newAuth.length === 0) { return existing; } if (!Array.isArray(existing) || existing.length === 0) { return newAuth; } const result = [...existing]; for (const auth of newAuth) { if (!result.find((a) => isEqualAPIAuthType(a, auth))) { result.push(auth); } } return result; } /** * Compare two APIAuthType objects for equality. */ function isEqualAPIAuthType(a, b) { return (a.type === b.type && a.in === b.in && a.name === b.name && a.scheme === b.scheme); }