node-libcurl-ja3
Version:
Node.js native bindings for libcurl-impersonate. Impersonate Chrome, Edge, Firefox and Safari TLS fingerprints.
36 lines • 1.15 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.parseHeaders = exports.deepMerge = void 0;
function deepMerge(...objects) {
return objects.reduce((res, cur) => {
if (cur) {
;
Object.keys(cur).forEach((key) => {
const resVal = res[key];
const curVal = cur[key];
if (isObject(resVal) && isObject(curVal)) {
// deep merge objects
res[key] = deepMerge(resVal, curVal);
}
else {
// replace arrays and primitives
res[key] = curVal;
}
});
}
return res;
}, {});
}
exports.deepMerge = deepMerge;
function isObject(value) {
return value && typeof value === 'object' && !Array.isArray(value);
}
function parseHeaders(headers) {
return headers.reduce((obj, header) => {
const [key, value] = header.replace(/: */, '\0').split('\0', 2);
obj[key] = value;
return obj;
}, {});
}
exports.parseHeaders = parseHeaders;
//# sourceMappingURL=util.js.map