aboutsummaryrefslogtreecommitdiff
path: root/atom/packages/vim-mode/node_modules/grim/lib/grim.js
diff options
context:
space:
mode:
authorBen Beltran <ben@nsovocal.com>2015-09-28 12:39:59 -0500
committerBen Beltran <ben@nsovocal.com>2015-09-28 12:39:59 -0500
commit455f099b504ec07dd492ab31987ae05a6f6774c7 (patch)
tree22b0c7fd8e492733b97e661750a2d79c46da451d /atom/packages/vim-mode/node_modules/grim/lib/grim.js
parent24c7594d62d8d7fbbcdb64b11ce4adc5d8e6991a (diff)
Adds atom packages
Diffstat (limited to 'atom/packages/vim-mode/node_modules/grim/lib/grim.js')
-rw-r--r--atom/packages/vim-mode/node_modules/grim/lib/grim.js105
1 files changed, 105 insertions, 0 deletions
diff --git a/atom/packages/vim-mode/node_modules/grim/lib/grim.js b/atom/packages/vim-mode/node_modules/grim/lib/grim.js
new file mode 100644
index 0000000..52ca968
--- /dev/null
+++ b/atom/packages/vim-mode/node_modules/grim/lib/grim.js
@@ -0,0 +1,105 @@
+(function() {
+ var Deprecation, Emitter, grim;
+
+ Emitter = require('emissary').Emitter;
+
+ Deprecation = require('./deprecation');
+
+ if (global.__grim__ == null) {
+ grim = global.__grim__ = {
+ deprecations: {},
+ includeDeprecatedAPIs: true,
+ getDeprecations: function() {
+ var deprecation, deprecations, deprecationsByLineNumber, deprecationsByPackage, fileName, lineNumber, packageName, _ref;
+ deprecations = [];
+ _ref = grim.deprecations;
+ for (fileName in _ref) {
+ deprecationsByLineNumber = _ref[fileName];
+ for (lineNumber in deprecationsByLineNumber) {
+ deprecationsByPackage = deprecationsByLineNumber[lineNumber];
+ for (packageName in deprecationsByPackage) {
+ deprecation = deprecationsByPackage[packageName];
+ deprecations.push(deprecation);
+ }
+ }
+ }
+ return deprecations;
+ },
+ getDeprecationsLength: function() {
+ return this.getDeprecations().length;
+ },
+ clearDeprecations: function() {
+ grim.deprecations = {};
+ },
+ logDeprecations: function() {
+ var deprecation, deprecations, _i, _len;
+ deprecations = this.getDeprecations();
+ deprecations.sort(function(a, b) {
+ return b.getCallCount() - a.getCallCount();
+ });
+ console.warn("\nCalls to deprecated functions\n-----------------------------");
+ for (_i = 0, _len = deprecations.length; _i < _len; _i++) {
+ deprecation = deprecations[_i];
+ console.warn("(" + (deprecation.getCallCount()) + ") " + (deprecation.getOriginName()) + " : " + (deprecation.getMessage()), deprecation);
+ }
+ },
+ deprecate: function(message, metadata) {
+ var deprecation, deprecationSite, error, fileName, lineNumber, originalPrepareStackTrace, originalStackTraceLimit, packageName, stack, _base, _base1, _base2, _ref;
+ originalStackTraceLimit = Error.stackTraceLimit;
+ Error.stackTraceLimit = 7;
+ error = new Error;
+ Error.captureStackTrace(error);
+ Error.stackTraceLimit = originalStackTraceLimit;
+ originalPrepareStackTrace = Error.prepareStackTrace;
+ Error.prepareStackTrace = function(error, stack) {
+ return stack;
+ };
+ stack = error.stack.slice(1);
+ Error.prepareStackTrace = originalPrepareStackTrace;
+ deprecationSite = stack[0];
+ fileName = deprecationSite.getFileName();
+ lineNumber = deprecationSite.getLineNumber();
+ packageName = (_ref = metadata != null ? metadata.packageName : void 0) != null ? _ref : "";
+ if ((_base = grim.deprecations)[fileName] == null) {
+ _base[fileName] = {};
+ }
+ if ((_base1 = grim.deprecations[fileName])[lineNumber] == null) {
+ _base1[lineNumber] = {};
+ }
+ if ((_base2 = grim.deprecations[fileName][lineNumber])[packageName] == null) {
+ _base2[packageName] = new Deprecation(message);
+ }
+ deprecation = grim.deprecations[fileName][lineNumber][packageName];
+ deprecation.addStack(stack, metadata);
+ grim.emit("updated", deprecation);
+ },
+ addSerializedDeprecation: function(serializedDeprecation) {
+ var deprecation, fileName, lineNumber, message, packageName, stack, stacks, _base, _base1, _base2, _i, _len, _ref, _ref1, _ref2;
+ deprecation = Deprecation.deserialize(serializedDeprecation);
+ message = deprecation.getMessage();
+ fileName = deprecation.fileName, lineNumber = deprecation.lineNumber;
+ stacks = deprecation.getStacks();
+ packageName = (_ref = (_ref1 = stacks[0]) != null ? (_ref2 = _ref1.metadata) != null ? _ref2.packageName : void 0 : void 0) != null ? _ref : "";
+ if ((_base = grim.deprecations)[fileName] == null) {
+ _base[fileName] = {};
+ }
+ if ((_base1 = grim.deprecations[fileName])[lineNumber] == null) {
+ _base1[lineNumber] = {};
+ }
+ if ((_base2 = grim.deprecations[fileName][lineNumber])[packageName] == null) {
+ _base2[packageName] = new Deprecation(message, fileName, lineNumber);
+ }
+ deprecation = grim.deprecations[fileName][lineNumber][packageName];
+ for (_i = 0, _len = stacks.length; _i < _len; _i++) {
+ stack = stacks[_i];
+ deprecation.addStack(stack, stack.metadata);
+ }
+ grim.emit("updated", deprecation);
+ }
+ };
+ Emitter.extend(grim);
+ }
+
+ module.exports = global.__grim__;
+
+}).call(this);