UNPKG

@backstage/backend-defaults

Version:

Backend defaults used by Backstage backend apps

39 lines (36 loc) 1.13 kB
'use strict'; const parseRegex = (s) => { if (!s.startsWith("/")) return null; const lastSlash = s.lastIndexOf("/"); if (lastSlash <= 0) return null; const pattern = s.slice(1, lastSlash); const flags = s.slice(lastSlash + 1); try { return new RegExp(pattern, flags); } catch { return null; } }; const createLogFieldMatcher = (matcher) => { if (Array.isArray(matcher)) { const fns = matcher.map((m) => createLogFieldMatcher(m)); return (logField) => fns.some((fn) => fn(logField)); } if (typeof matcher !== "string") { return (logField) => logField === matcher; } const regex = parseRegex(matcher); if (regex) { return (logField) => typeof logField === "string" && regex.test(logField); } return (logField) => logField === matcher; }; const createLogMatcher = (matchers) => { const logFieldMatchers = Object.entries(matchers).map(([key, m]) => { const fn = createLogFieldMatcher(m); return [key, fn]; }); return (log) => logFieldMatchers.every(([key, fn]) => fn(log[key])); }; exports.createLogMatcher = createLogMatcher; //# sourceMappingURL=utils.cjs.js.map