UNPKG

msw-snapshot

Version:

Transparently create an API cache for testing.

110 lines 3.23 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.maskFormData = exports.maskJSON = exports.maskURLSearchParams = exports.maskHeaders = exports.maskBody = void 0; /** * Mask the specified object field. */ function maskBody(body, specifiers) { if (body instanceof FormData) { return maskFormData(body, specifiers); } else if (body instanceof URLSearchParams) { return maskURLSearchParams(body, specifiers); } else if (typeof body === 'object' && body) { return maskJSON(body, specifiers); } else if (typeof body === 'string') { // Special support for JSON-string. try { return JSON.stringify(maskJSON(JSON.parse(body), specifiers)); } catch (e) { } } return body; } exports.maskBody = maskBody; /** * Mask specified header fields. */ function maskHeaders(headers, specifiers) { var maskedHeaders = new Headers(); headers.forEach(function (val, key) { if (!specifiers.some(function (specifier) { return matchField(specifier, key); })) { maskedHeaders.append(key, val); } else { maskedHeaders.append(key, '*****'); } }); return maskedHeaders; } exports.maskHeaders = maskHeaders; /** * Mask specified search params. */ function maskURLSearchParams(searchParams, specifiers) { var maskedSearchParams = new URLSearchParams(); searchParams.forEach(function (value, key) { if (!specifiers.some(function (specifier) { return matchField(specifier, key); })) { maskedSearchParams.append(key, value); } else { maskedSearchParams.append(key, '*****'); } }); return maskedSearchParams; } exports.maskURLSearchParams = maskURLSearchParams; /** * Mask specified search params. */ function maskJSON(json, specifiers) { if (json === null || Array.isArray(json) || typeof json !== 'object') { return json; } var maskedJSON = {}; var _loop_1 = function (key, val) { if (!specifiers.some(function (specifier) { return matchField(specifier, key); })) { maskedJSON[key] = maskJSON(val, specifiers); } else { maskedJSON[key] = '*****'; } }; for (var _i = 0, _a = Object.entries(json); _i < _a.length; _i++) { var _b = _a[_i], key = _b[0], val = _b[1]; _loop_1(key, val); } return maskedJSON; } exports.maskJSON = maskJSON; /** * Mask specified form data. */ function maskFormData(formData, specifiers) { var maskedFormData = new FormData(); formData.forEach(function (value, key) { if (!specifiers.some(function (specifier) { return matchField(specifier, key); })) { maskedFormData.append(key, value); } else { maskedFormData.append(key, '*****'); } }); return maskedFormData; } exports.maskFormData = maskFormData; /** * Match the specified field. */ function matchField(specifier, field) { if (typeof specifier === 'string') { return specifier === field; } else { return specifier.test(field); } } //# sourceMappingURL=mask.js.map