2
2
3
3
'use strict' ;
4
4
5
- var resolveModule = require ( 'resolve' ) . sync ;
6
- var resolvePath = require ( 'path' ) . resolve ;
7
- var readFileSync = require ( 'fs' ) . readFileSync ;
8
5
var parseOpts = require ( 'minimist' ) ;
9
- var glob = require ( 'glob' ) ;
10
- var ignore = require ( 'dotignore' ) ;
11
- var hasImport = require ( 'has-dynamic-import' ) ;
12
-
13
- var tape = require ( '../' ) ;
14
6
15
7
var opts = parseOpts ( process . argv . slice ( 2 ) , {
16
8
alias : { r : 'require' , i : 'ignore' } ,
@@ -24,24 +16,33 @@ if (typeof opts.require === 'string') {
24
16
opts . require = [ opts . require ] ;
25
17
}
26
18
19
+ var resolveModule ;
27
20
opts . require . forEach ( function ( module ) {
28
21
var options = { basedir : cwd , extensions : Object . keys ( require . extensions ) } ;
29
22
if ( module ) {
23
+ if ( ! resolveModule ) { resolveModule = require ( 'resolve' ) . sync ; }
30
24
// This check ensures we ignore `-r ""`, trailing `-r`, or other silly things the user might (inadvertently) be doing.
31
25
require ( resolveModule ( module , options ) ) ;
32
26
}
33
27
} ) ;
34
28
29
+ var resolvePath = require ( 'path' ) . resolve ;
30
+
31
+ var matcher ;
35
32
if ( typeof opts . ignore === 'string' ) {
33
+ var readFileSync = require ( 'fs' ) . readFileSync ;
36
34
try {
37
35
var ignoreStr = readFileSync ( resolvePath ( cwd , opts . ignore || '.gitignore' ) , 'utf-8' ) ;
38
36
} catch ( e ) {
39
37
console . error ( e . message ) ;
40
38
process . exit ( 2 ) ;
41
39
}
42
- var matcher = ignore . createMatcher ( ignoreStr ) ;
40
+ var ignore = require ( 'dotignore' ) ;
41
+ matcher = ignore . createMatcher ( ignoreStr ) ;
43
42
}
44
43
44
+ var glob = require ( 'glob' ) ;
45
+
45
46
var files = opts . _ . reduce ( function ( result , arg ) {
46
47
// If glob does not match, `files` will be an empty array.
47
48
// Note: `glob.sync` may throw an error and crash the node process.
@@ -58,12 +59,16 @@ var files = opts._.reduce(function (result, arg) {
58
59
return resolvePath ( cwd , file ) ;
59
60
} ) ;
60
61
62
+ var hasImport = require ( 'has-dynamic-import' ) ;
63
+
61
64
hasImport ( ) . then ( function ( hasSupport ) {
62
65
// the nextTick callback gets called outside the promise chain, avoiding
63
66
// promises and unhandled rejections when only loading commonjs files
64
67
process . nextTick ( importFiles , hasSupport ) ;
65
68
} ) ;
66
69
70
+ var tape = require ( '../' ) ;
71
+
67
72
function importFiles ( hasSupport ) {
68
73
if ( ! hasSupport ) {
69
74
return files . forEach ( function ( x ) { require ( x ) ; } ) ;
0 commit comments