UNPKG

@logtape/redaction

Version:

Redact sensitive data from log messages

30 lines (28 loc) 947 B
//#region src/traversal.ts const redactionTruncatedValue = "[truncated]"; const defaultMaxDepth = 20; const defaultMaxProperties = 1e3; function createRedactionTraversalContext(options, reportLimitExceeded, visited = /* @__PURE__ */ new Map()) { const limits = { maxDepth: normalizeLimit(options.maxDepth, defaultMaxDepth), maxProperties: normalizeLimit(options.maxProperties, defaultMaxProperties) }; const exceededLimits = /* @__PURE__ */ new Set(); return { limits, visited, exceededLimits, reportLimitExceeded(limit) { exceededLimits.add(limit); reportLimitExceeded(limit, limits); } }; } function normalizeLimit(value, defaultValue) { if (value == null) return defaultValue; if (!Number.isFinite(value) || value < 0) return defaultValue; return Math.floor(value); } //#endregion exports.createRedactionTraversalContext = createRedactionTraversalContext; exports.redactionTruncatedValue = redactionTruncatedValue;