Bones/node_modules/weinre/lib/utils.js

195 lines
4.7 KiB
JavaScript
Raw Normal View History

2017-05-17 13:45:25 -04:00
// Generated by CoffeeScript 1.8.0
var Program, SequenceNumber, SequenceNumberMax, fs, log, path, utils,
__hasProp = {}.hasOwnProperty;
fs = require('fs');
path = require('path');
utils = exports;
utils.Program = Program = path.basename(process.argv[1]);
SequenceNumberMax = 100 * 1024 * 1024;
SequenceNumber = 0;
utils.getNextSequenceNumber = function(g) {
SequenceNumber++;
if (SequenceNumber > SequenceNumberMax) {
SequenceNumber = 0;
}
return SequenceNumber;
};
utils.trim = function(string) {
return string.replace(/(^\s+)|(\s+$)/g, '');
};
utils.log = log = function(message) {
var date, time;
date = new Date();
time = date.toISOString();
return console.log("" + time + " " + Program + ": " + message);
};
utils.logVerbose = function(message) {
var _ref;
if (!(utils != null ? (_ref = utils.options) != null ? _ref.verbose : void 0 : void 0)) {
return;
}
return log(message);
};
utils.logDebug = function(message) {
var _ref;
if (!(utils != null ? (_ref = utils.options) != null ? _ref.debug : void 0 : void 0)) {
return;
}
return log(message);
};
utils.exit = function(message) {
log(message);
return process.exit(1);
};
utils.pitch = function(message) {
log(message);
throw message;
};
utils.setOptions = function(options) {
return utils.options = options;
};
utils.ensureInteger = function(value, message) {
var newValue;
newValue = parseInt(value);
if (isNaN(newValue)) {
utils.exit("" + message + ": '" + value + "'");
}
return newValue;
};
utils.ensureString = function(value, message) {
if (typeof value !== 'string') {
utils.exit("" + message + ": '" + value + "'");
}
return value;
};
utils.ensureBoolean = function(value, message) {
var newValue, uValue;
uValue = value.toString().toUpperCase();
newValue = null;
switch (uValue) {
case 'TRUE':
newValue = true;
break;
case 'FALSE':
newValue = false;
}
if (typeof newValue !== 'boolean') {
utils.exit("" + message + ": '" + value + "'");
}
return newValue;
};
utils.setNamesForClass = function(aClass) {
var key, val, _ref, _results;
for (key in aClass) {
if (!__hasProp.call(aClass, key)) continue;
val = aClass[key];
if (typeof val === "function") {
val.signature = "" + aClass.name + "::" + key;
val.displayName = val.signature;
val.name = val.signature;
}
}
_ref = aClass.prototype;
_results = [];
for (key in _ref) {
if (!__hasProp.call(_ref, key)) continue;
val = _ref[key];
if (typeof val === "function") {
val.signature = "" + aClass.name + "." + key;
val.displayName = val.signature;
_results.push(val.name = val.signature);
} else {
_results.push(void 0);
}
}
return _results;
};
utils.registerClass = function(aClass) {
utils.setNamesForClass(aClass);
return aClass;
};
utils.alignLeft = function(string, length) {
while (string.length < length) {
string = "" + string + " ";
}
return string;
};
utils.alignRight = function(string, length) {
while (string.length < length) {
string = " " + string;
}
return string;
};
utils.fileExistsSync = function(name) {
if (fs.existsSync) {
return fs.existsSync(name);
}
return path.existsSync(name);
};
Error.prepareStackTrace = function(error, structuredStackTrace) {
var callSite, file, func, funcName, line, longestFile, longestLine, result, _i, _j, _len, _len1;
result = [];
result.push("---------------------------------------------------------");
result.push("error: " + error);
result.push("---------------------------------------------------------");
result.push("stack: ");
longestFile = 0;
longestLine = 0;
for (_i = 0, _len = structuredStackTrace.length; _i < _len; _i++) {
callSite = structuredStackTrace[_i];
file = callSite.getFileName();
line = callSite.getLineNumber();
file = path.basename(file);
line = "" + line;
if (file.length > longestFile) {
longestFile = file.length;
}
if (line.length > longestLine) {
longestLine = line.length;
}
}
for (_j = 0, _len1 = structuredStackTrace.length; _j < _len1; _j++) {
callSite = structuredStackTrace[_j];
func = callSite.getFunction();
file = callSite.getFileName();
line = callSite.getLineNumber();
file = path.basename(file);
line = "" + line;
file = utils.alignRight(file, longestFile);
line = utils.alignLeft(line, longestLine);
funcName = func.displayName || func.name || callSite.getFunctionName();
callSite.getMethodName();
'???';
if (funcName === "Module._compile") {
result.pop();
result.pop();
break;
}
result.push(" " + file + ":" + line + " - " + funcName + "()");
}
return result.join("\n");
};