UNPKG

process-reporting-ts

Version:
100 lines (99 loc) 3.17 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.maskContentMD5 = exports.maskBinary = exports.maskPassword = exports.serializePayload = exports.getPayload = exports.getParameters = exports.parseExpression = exports.waitFor = void 0; const mustache_1 = __importDefault(require("mustache")); function waitFor(delayInMs) { return new Promise(resolve => setTimeout(resolve, delayInMs)); } exports.waitFor = waitFor; function parseExpression(expression, payload) { if (!expression) { return null; } if (!payload) { return null; } let context = payload; if (payload instanceof Array) { context = { "items": payload }; } if (typeof expression === 'function') { return expression(context); } return mustache_1.default.render(expression, context); } exports.parseExpression = parseExpression; function getParameters(func) { const str = func.toString(); const startBracket = str.indexOf('('); if (startBracket < 0) { return []; } const endBracket = str.indexOf(')', startBracket); if (endBracket < 0) { return []; } const paramsString = str.substring(startBracket + 1, endBracket); if (paramsString.length === 0) { return []; } const parameters = paramsString.split(',').map(e => e.trim()); for (let index = 0; index < parameters.length; index++) { let param = parameters[index]; param = param.replace('...', ''); param = param.replace('{', ''); param = param.replace('}', ''); param = param.trim(); if (param) { parameters[index] = param; } } return parameters; } exports.getParameters = getParameters; function getPayload(parameterNames, methodArguments) { const payload = {}; for (let index = 0; index < parameterNames.length; index++) { const param = parameterNames[index]; payload[param] = methodArguments[index]; } return payload; } exports.getPayload = getPayload; function serializePayload(payload, maskProperties) { if (!payload) { return payload; } if (typeof payload === 'string') { return payload; } if (!maskProperties) { return JSON.stringify(payload); } return JSON.stringify(payload, (k, v) => { if (!maskProperties.hasOwnProperty(k)) { return v; } const mask = maskProperties[k]; if (typeof mask === 'function') { return mask(v); } return mask; }); } exports.serializePayload = serializePayload; function maskPassword(pwd) { return pwd !== undefined ? '*****' : pwd; } exports.maskPassword = maskPassword; function maskBinary(binary) { return binary ? 'bytes [' + binary.length + ']' : binary; } exports.maskBinary = maskBinary; function maskContentMD5(it) { return it ? Object.assign(Object.assign({}, it), { data: '[' + it.data.length + ']' }) : it; } exports.maskContentMD5 = maskContentMD5;