Skip to content

Commit 0e192a2

Browse files
committed
refactor(unassertify): extract unassert module out
1 parent 799970c commit 0e192a2

File tree

2 files changed

+6
-50
lines changed

2 files changed

+6
-50
lines changed

index.js

Lines changed: 4 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -13,58 +13,15 @@
1313
var through = require('through');
1414
var esprima = require('esprima');
1515
var escodegen = require('escodegen');
16-
var estraverse = require('estraverse');
17-
var escallmatch = require('escallmatch');
18-
var patterns = [
19-
'assert(value, [message])',
20-
'assert.ok(value, [message])',
21-
'assert.equal(actual, expected, [message])',
22-
'assert.notEqual(actual, expected, [message])',
23-
'assert.strictEqual(actual, expected, [message])',
24-
'assert.notStrictEqual(actual, expected, [message])',
25-
'assert.deepEqual(actual, expected, [message])',
26-
'assert.notDeepEqual(actual, expected, [message])',
27-
'assert.deepStrictEqual(actual, expected, [message])',
28-
'assert.notDeepStrictEqual(actual, expected, [message])',
29-
'assert.fail(actual, expected, message, operator)',
30-
'assert.throws(block, [error], [message])',
31-
'assert.doesNotThrow(block, [message])',
32-
'assert.ifError(value)',
33-
'console.assert(value, [message])'
34-
];
35-
var matchers = patterns.map(escallmatch);
16+
var unassert = require('unassert');
3617

3718
function isDebugMode (filepath, options) {
3819
return (options && options._flags && options._flags.debug);
3920
}
4021

41-
function matches (node) {
42-
return function (matcher) {
43-
return matcher.test(node);
44-
};
45-
}
46-
47-
function parentPath (controller) {
48-
return controller.path().slice(0, -1).join('/');
49-
}
50-
51-
function unassert (code, options) {
52-
var pathToRemove = {};
22+
function applyUnassert (code, options) {
5323
var ast = esprima.parse(code);
54-
estraverse.replace(ast, {
55-
enter: function (currentNode, parentNode) {
56-
if (matchers.some(matches(currentNode))) {
57-
pathToRemove[parentPath(this)] = true;
58-
this.skip();
59-
}
60-
},
61-
leave: function (currentNode, parentNode) {
62-
if (this.path() && pathToRemove[this.path().join('/')]) {
63-
this.remove();
64-
}
65-
}
66-
});
67-
return escodegen.generate(ast);
24+
return escodegen.generate(unassert(ast));
6825
}
6926

7027
module.exports = function unassertify (filepath, options) {
@@ -80,7 +37,7 @@ module.exports = function unassertify (filepath, options) {
8037
}
8138

8239
function end() {
83-
stream.queue(unassert(data, options));
40+
stream.queue(applyUnassert(data, options));
8441
stream.queue(null);
8542
}
8643

package.json

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,10 @@
99
},
1010
"bugs": "https://github.com/twada/unassertify/issues",
1111
"dependencies": {
12-
"escallmatch": "^1.4.1",
1312
"escodegen": "^1.6.1",
1413
"esprima": "^2.2.0",
15-
"estraverse": "^4.1.0",
16-
"through": "^2.3.7"
14+
"through": "^2.3.7",
15+
"unassert": "^1.0.0"
1716
},
1817
"devDependencies": {
1918
"mocha": "^2.2.5"

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy