Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"name": "grim",
"version": "2.0.3",
"description": "Log usage of deprecated methods",
"main": "./lib/grim",
"main": "./src/grim.js",
"scripts": {
"prepublish": "grunt clean lint coffee",
"test": "grunt test"
Expand Down
93 changes: 0 additions & 93 deletions src/deprecation.coffee

This file was deleted.

20 changes: 5 additions & 15 deletions src/deprecation.js
Original file line number Diff line number Diff line change
@@ -1,16 +1,8 @@
/*
* decaffeinate suggestions:
* DS101: Remove unnecessary use of Array.from
* DS102: Remove unnecessary code created because of implicit returns
* DS104: Avoid inline assignments
* DS207: Consider shorter variations of null checks
* Full docs: https://github.com/decaffeinate/decaffeinate/blob/main/docs/suggestions.md
*/
let Deprecation;

const SourceMapCache = {};

module.exports =
(Deprecation = class Deprecation {
class Deprecation {
static getFunctionNameFromCallsite(callsite) {}

static deserialize({message, fileName, lineNumber, stacks}) {
Expand All @@ -33,16 +25,14 @@ module.exports =
if (callsite.functionName != null) { return callsite.functionName; }

if (callsite.isToplevel()) {
let left;
return (left = callsite.getFunctionName()) != null ? left : '<unknown>';
return callsite.getFunctionName() ?? "<unknown>";
} else {
if (callsite.isConstructor()) {
return `new ${callsite.getFunctionName()}`;
} else if (callsite.getMethodName() && !callsite.getFunctionName()) {
return callsite.getMethodName();
} else {
let left1, left2;
return `${callsite.getTypeName()}.${(left1 = (left2 = callsite.getMethodName()) != null ? left2 : callsite.getFunctionName()) != null ? left1 : '<anonymous>'}`;
return `${callsite.getTypeName()}.${callsite.getMethodName() ?? callsite.getFunctionName() ?? "<anonymous>" }`;
}
}
}
Expand Down Expand Up @@ -129,4 +119,4 @@ module.exports =
stacks: this.getStacks()
};
}
});
}
88 changes: 0 additions & 88 deletions src/grim.coffee

This file was deleted.

41 changes: 17 additions & 24 deletions src/grim.js
Original file line number Diff line number Diff line change
@@ -1,17 +1,8 @@
/*
* decaffeinate suggestions:
* DS101: Remove unnecessary use of Array.from
* DS102: Remove unnecessary code created because of implicit returns
* DS103: Rewrite code to no longer use __guard__, or convert again using --optional-chaining
* DS104: Avoid inline assignments
* DS207: Consider shorter variations of null checks
* Full docs: https://github.com/decaffeinate/decaffeinate/blob/main/docs/suggestions.md
*/
const Deprecation = require('./deprecation');
const Deprecation = require('./deprecation.js');

if (global.__grim__ == null) {
const {Emitter} = require('event-kit');
var grim = (global.__grim__ = {
const { Emitter } = require('event-kit');
const grim = {
deprecations: {},
emitter: new Emitter,
includeDeprecatedAPIs: true,
Expand Down Expand Up @@ -58,7 +49,7 @@ if (global.__grim__ == null) {
Error.stackTraceLimit = 7;
const error = new Error;
// Get an array of v8 CallSite objects
stack = (left = (typeof error.getRawStack === 'function' ? error.getRawStack() : undefined)) != null ? left : getRawStack(error);
stack = error?.getRawStack?.() ?? getRawStack(error);
stack = stack.slice(1);
} finally {
Error.stackTraceLimit = originalStackTraceLimit;
Expand All @@ -68,10 +59,12 @@ if (global.__grim__ == null) {
const deprecationSite = stack[0];
const fileName = deprecationSite.getFileName();
const lineNumber = deprecationSite.getLineNumber();
const packageName = (metadata != null ? metadata.packageName : undefined) != null ? (metadata != null ? metadata.packageName : undefined) : "";
const packageName = metadata?.packageName ?? "";
if (grim.deprecations[fileName] == null) { grim.deprecations[fileName] = {}; }
if (grim.deprecations[fileName][lineNumber] == null) { grim.deprecations[fileName][lineNumber] = {}; }
if (grim.deprecations[fileName][lineNumber][packageName] == null) { grim.deprecations[fileName][lineNumber][packageName] = new Deprecation(message); }
if (grim.deprecations[fileName][lineNumber][packageName] == null) {
grim.deprecations[fileName][lineNumber][packageName] = new Deprecation(message);
}

const deprecation = grim.deprecations[fileName][lineNumber][packageName];

Expand All @@ -85,32 +78,32 @@ if (global.__grim__ == null) {
const message = deprecation.getMessage();
const {fileName, lineNumber} = deprecation;
const stacks = deprecation.getStacks();
const packageName = __guard__(stacks[0] != null ? stacks[0].metadata : undefined, x => x.packageName) != null ? __guard__(stacks[0] != null ? stacks[0].metadata : undefined, x => x.packageName) : "";
const packageName = stacks[0]?.metadata?.packageName ?? "";

if (grim.deprecations[fileName] == null) { grim.deprecations[fileName] = {}; }
if (grim.deprecations[fileName][lineNumber] == null) { grim.deprecations[fileName][lineNumber] = {}; }
if (grim.deprecations[fileName][lineNumber][packageName] == null) { grim.deprecations[fileName][lineNumber][packageName] = new Deprecation(message, fileName, lineNumber); }
if (grim.deprecations[fileName][lineNumber][packageName] == null) {
grim.deprecations[fileName][lineNumber][packageName] = new Deprecation(message, fileName, lineNumber);
}

deprecation = grim.deprecations[fileName][lineNumber][packageName];
for (let stack of Array.from(stacks)) { deprecation.addStack(stack, stack.metadata); }
grim.emitter.emit("updated", deprecation);
},

on(eventName, callback) { return grim.emitter.on(eventName, callback); }
});
};

global.__grim__ = grim;
}

var getRawStack = function(error) {
function getRawStack(error) {
const originalPrepareStackTrace = Error.prepareStackTrace;
Error.prepareStackTrace = (error, stack) => stack;
Error.captureStackTrace(error, getRawStack);
const result = error.stack;
Error.prepareStackTrace = originalPrepareStackTrace;
return result;
};
}

module.exports = global.__grim__;

function __guard__(value, transform) {
return (typeof value !== 'undefined' && value !== null) ? transform(value) : undefined;
}
Loading