stryker
Version:
The extendable JavaScript mutation testing framework
107 lines • 3.23 kB
JavaScript
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
;