UNPKG

stryker

Version:
107 lines 3.23 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _ = require("lodash"); var treeKill = require("tree-kill"); var surrial_1 = require("surrial"); exports.serialize = surrial_1.serialize; exports.deserialize = surrial_1.deserialize; function freezeRecursively(target) { Object.freeze(target); Object.keys(target).forEach(function (key) { if (_.isObject(target[key])) { freezeRecursively(target[key]); } }); return target; } exports.freezeRecursively = freezeRecursively; function isPromise(input) { return input && typeof input.then === 'function'; } exports.isPromise = isPromise; function filterEmpty(input) { return input.filter(function (item) { return item !== undefined && item !== null; }); } exports.filterEmpty = filterEmpty; function copy(obj, deep) { if (deep) { return _.cloneDeep(obj); } else { return _.clone(obj); } } exports.copy = copy; function wrapInClosure(codeFragment) { return "\n (function (window) {\n " + codeFragment + "\n })((Function('return this'))());"; } exports.wrapInClosure = wrapInClosure; /** * A wrapper around `process.env` (for testability) */ function getEnvironmentVariable(nameEnvironmentVariable) { return process.env[nameEnvironmentVariable]; } exports.getEnvironmentVariable = getEnvironmentVariable; /** * A wrapper around `process.exitCode = n` (for testability) */ function setExitCode(n) { process.exitCode = n; } exports.setExitCode = setExitCode; function base64Decode(base64EncodedString) { return Buffer.from(base64EncodedString, 'base64').toString('utf8'); } exports.base64Decode = base64Decode; /** * Consolidates multiple consecutive white spaces into a single space. * @param str The string to be normalized */ function normalizeWhiteSpaces(str) { return str.replace(/\s+/g, ' ').trim(); } exports.normalizeWhiteSpaces = normalizeWhiteSpaces; function kill(pid) { return new Promise(function (res, rej) { treeKill(pid, 'SIGKILL', function (err) { if (err && !canIgnore(err.code)) { rej(err); } else { res(); } }); function canIgnore(code) { // https://docs.microsoft.com/en-us/windows/desktop/Debug/system-error-codes--0-499- // these error codes mean the program is _already_ closed. return code === 255 || code === 128; } }); } exports.kill = kill; exports.TimeoutExpired = Symbol('TimeoutExpired'); function timeout(promise, ms) { var sleep = new Promise(function (res, rej) { var timer = setTimeout(function () { return res(exports.TimeoutExpired); }, ms); promise .then(function (result) { clearTimeout(timer); res(result); }) .catch(function (error) { clearTimeout(timer); rej(error); }); }); return sleep; } exports.timeout = timeout; function padLeft(input) { return input .split('\n') .map(function (str) { return '\t' + str; }) .join('\n'); } exports.padLeft = padLeft; //# sourceMappingURL=objectUtils.js.map