tia
Version:
Time is All (logs driven test engine with ExtJs support)
117 lines (95 loc) • 2.81 kB
text/typescript
import * as util from 'util';
import { sep } from 'path';
export function removeSelSid(str: string) {
const re = /\?_dc=\d+/g;
return str.replace(re, '');
}
export function filterStack(strStack: string) {
const stArr = strStack.split('\n');
const newArr = stArr.filter(el => {
const startingFrom = el.indexOf('/tia/');
return !el.includes(`${sep}node_modules${sep}`, startingFrom);
});
return newArr.join('\n');
}
export function excToStr(err: Error, noStack?: boolean) {
if (typeof err === 'undefined') {
return '\nNo Exception info\n';
}
let errStr = err.toString(); // (typeof err.message === 'undefined') ? err : err.message;
if (/* gT.cLParams.stackToLog || */ !noStack) {
if (typeof err.stack !== 'undefined') {
errStr += `\n${filterStack(err.stack)}`;
} else {
errStr += '\n No stack trace\n';
}
}
return errStr;
}
export function winToUnixSep(path: string) {
return path.replace(/\\\\/g, '/');
}
export function changeExt(jsPath: string, newExt: string) {
return jsPath.substr(0, jsPath.length - 3) + newExt;
}
export function jsToEt(jsPath: string) {
return changeExt(jsPath, '.et');
}
export function jsToTs(jsPath: string) {
return changeExt(jsPath, '.ts');
}
/**
* Creates log path knowing js file path.
* Just replaces two last symbols by 'log' at the end of string.
* @param jsPath - path to js file.
*/
export function jsToLog(jsPath: string) {
return changeExt(jsPath, '.log');
}
export function jsToDif(jsPath: string) {
return changeExt(jsPath, '.dif');
}
export function expandHost(str: string) {
return str.replace('$(host)', gT.config.selHost);
}
export function collapseHost(str: string) {
return str.replace(gT.config.selHost, '$(host)');
}
export function valToStr(value: any) {
if (Buffer.isBuffer(value)) {
return value.toString('utf8');
}
if (typeof value === 'string') {
return value;
}
return util.inspect(value, { compact: false, sorted: true, depth: Infinity });
}
export function v2s(value: any) {
if (Buffer.isBuffer(value)) {
return value.toString('utf8');
}
if (typeof value === 'string') {
return value;
}
return util.inspect(value, {
compact: true,
sorted: true,
depth: Infinity,
breakLength: 200,
});
}
// function escapeRegExp(string) {
// return string.replace(/([.*+?^=!:${}()|\[\]\/\\])/g, "\\$1");
// }
//
// export function prepareHostRE(){
// let str = escapeRegExp(gT.config.selHost);
// hostRe = new RegExp(str, g);
// };
// // Multi-line version.
// export function collapseHostML(str){
// // TODO: optimize, this function should be called only if gT.config.selHost is changed.
// // For now there are not even such use cases.
// prepareHostRE();
// return str.replace(hostRe, '$(host)');
// };