File tree Expand file tree Collapse file tree 3 files changed +74
-63
lines changed Expand file tree Collapse file tree 3 files changed +74
-63
lines changed Original file line number Diff line number Diff line change 1
1
var current = ( process . versions && process . versions . node && process . versions . node . split ( '.' ) ) || [ ] ;
2
2
3
- function versionIncluded ( version ) {
4
- if ( version === '*' ) return true ;
5
- var versionParts = version . split ( '.' ) ;
3
+ function versionIncluded ( specifier ) {
4
+ if ( specifier === true ) { return true ; }
5
+ var parts = specifier . split ( ' ' ) ;
6
+ var op = parts [ 0 ] ;
7
+ var versionParts = parts [ 1 ] . split ( '.' ) ;
8
+
6
9
for ( var i = 0 ; i < 3 ; ++ i ) {
7
- if ( ( current [ i ] || 0 ) >= ( versionParts [ i ] || 0 ) ) return true ;
10
+ var cur = Number ( current [ i ] || 0 ) ;
11
+ var ver = Number ( versionParts [ i ] || 0 ) ;
12
+ if ( cur === ver ) {
13
+ continue ; // eslint-disable-line no-restricted-syntax, no-continue
14
+ }
15
+ if ( op === '<' ) {
16
+ return cur < ver ;
17
+ } else if ( op === '>=' ) {
18
+ return cur >= ver ;
19
+ } else {
20
+ return false ;
21
+ }
8
22
}
9
23
return false ;
10
24
}
11
25
12
26
var data = require ( './core.json' ) ;
13
27
14
28
var core = { } ;
15
- for ( var version in data ) { // eslint-disable-line no-restricted-syntax
16
- if ( Object . prototype . hasOwnProperty . call ( data , version ) && versionIncluded ( version ) ) {
17
- for ( var i = 0 ; i < data [ version ] . length ; ++ i ) {
18
- core [ data [ version ] [ i ] ] = true ;
19
- }
29
+ for ( var mod in data ) { // eslint-disable-line no-restricted-syntax
30
+ if ( Object . prototype . hasOwnProperty . call ( data , mod ) ) {
31
+ core [ mod ] = versionIncluded ( data [ mod ] ) ;
20
32
}
21
33
}
22
34
module . exports = core ;
Original file line number Diff line number Diff line change 1
1
{
2
- "*" : [
3
- " assert" ,
4
- " buffer_ieee754" ,
5
- " buffer" ,
6
- " child_process" ,
7
- " cluster" ,
8
- " console" ,
9
- " constants" ,
10
- " crypto" ,
11
- " _debugger" ,
12
- " dgram" ,
13
- " dns" ,
14
- " domain" ,
15
- " events" ,
16
- " freelist" ,
17
- " fs" ,
18
- " http" ,
19
- " https" ,
20
- " _linklist" ,
21
- " module" ,
22
- " net" ,
23
- " os" ,
24
- " path" ,
25
- " punycode" ,
26
- " querystring" ,
27
- " readline" ,
28
- " repl" ,
29
- " stream" ,
30
- " string_decoder" ,
31
- " sys" ,
32
- " timers" ,
33
- " tls" ,
34
- " tty" ,
35
- " url" ,
36
- " util" ,
37
- " vm" ,
38
- " zlib"
39
- ],
40
- "0.11" : [
41
- " _http_server"
42
- ],
43
- "1.0" : [
44
- " process" ,
45
- " v8"
46
- ],
47
- "8.5" : [
48
- " perf_hooks"
49
- ]
2
+ "assert" : true ,
3
+ "buffer_ieee754" : " < 0.9.7" ,
4
+ "buffer" : true ,
5
+ "child_process" : true ,
6
+ "cluster" : true ,
7
+ "console" : true ,
8
+ "constants" : true ,
9
+ "crypto" : true ,
10
+ "_debugger" : " < 8" ,
11
+ "dgram" : true ,
12
+ "dns" : true ,
13
+ "domain" : true ,
14
+ "events" : true ,
15
+ "freelist" : " < 6.0.0" ,
16
+ "fs" : true ,
17
+ "http" : true ,
18
+ "https" : true ,
19
+ "_http_server" : " >= 0.11" ,
20
+ "_linklist" : " < 8.0.0" ,
21
+ "module" : true ,
22
+ "net" : true ,
23
+ "os" : true ,
24
+ "path" : true ,
25
+ "perf_hooks" : " >= 8.5" ,
26
+ "process" : " >= 1" ,
27
+ "punycode" : true ,
28
+ "querystring" : true ,
29
+ "readline" : true ,
30
+ "repl" : true ,
31
+ "stream" : true ,
32
+ "string_decoder" : true ,
33
+ "sys" : true ,
34
+ "timers" : true ,
35
+ "tls" : true ,
36
+ "tty" : true ,
37
+ "url" : true ,
38
+ "util" : true ,
39
+ "v8" : " >= 1" ,
40
+ "vm" : true ,
41
+ "zlib" : true
50
42
}
Original file line number Diff line number Diff line change 1
1
var test = require ( 'tape' ) ;
2
+ var keys = require ( 'object-keys' ) ;
2
3
var resolve = require ( '../' ) ;
3
4
4
5
test ( 'core modules' , function ( t ) {
@@ -13,13 +14,19 @@ test('core modules', function (t) {
13
14
} ) ;
14
15
15
16
t . test ( 'core list' , function ( st ) {
16
- st . plan ( resolve . core . length ) ;
17
+ var cores = keys ( resolve . core ) ;
18
+ st . plan ( cores . length ) ;
17
19
18
- for ( var i = 0 ; i < resolve . core . length ; ++ i ) {
19
- st . doesNotThrow (
20
- function ( ) { require ( resolve . core [ i ] ) ; } , // eslint-disable-line no-loop-func
21
- 'requiring ' + resolve . core [ i ] + ' does not throw'
22
- ) ;
20
+ for ( var i = 0 ; i < cores . length ; ++ i ) {
21
+ var mod = cores [ i ] ;
22
+ if ( resolve . core [ mod ] ) {
23
+ st . doesNotThrow (
24
+ function ( ) { require ( mod ) ; } , // eslint-disable-line no-loop-func
25
+ 'requiring ' + mod + ' does not throw'
26
+ ) ;
27
+ } else {
28
+ st . skip ( mod + ' not supported' ) ;
29
+ }
23
30
}
24
31
25
32
st . end ( ) ;
You can’t perform that action at this time.
0 commit comments