13
13
var through = require ( 'through' ) ;
14
14
var esprima = require ( 'esprima' ) ;
15
15
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' ) ;
36
17
37
18
function isDebugMode ( filepath , options ) {
38
19
return ( options && options . _flags && options . _flags . debug ) ;
39
20
}
40
21
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 ) {
53
23
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 ) ) ;
68
25
}
69
26
70
27
module . exports = function unassertify ( filepath , options ) {
@@ -80,7 +37,7 @@ module.exports = function unassertify (filepath, options) {
80
37
}
81
38
82
39
function end ( ) {
83
- stream . queue ( unassert ( data , options ) ) ;
40
+ stream . queue ( applyUnassert ( data , options ) ) ;
84
41
stream . queue ( null ) ;
85
42
}
86
43
0 commit comments