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 11var current = ( process . versions && process . versions . node && process . versions . node . split ( '.' ) ) || [ ] ;
22
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+
69 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+ }
822 }
923 return false ;
1024}
1125
1226var data = require ( './core.json' ) ;
1327
1428var 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 ] ) ;
2032 }
2133}
2234module . exports = core ;
Original file line number Diff line number Diff line change 11{
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
5042}
Original file line number Diff line number Diff line change 11var test = require ( 'tape' ) ;
2+ var keys = require ( 'object-keys' ) ;
23var resolve = require ( '../' ) ;
34
45test ( 'core modules' , function ( t ) {
@@ -13,13 +14,19 @@ test('core modules', function (t) {
1314 } ) ;
1415
1516 t . test ( 'core list' , function ( st ) {
16- st . plan ( resolve . core . length ) ;
17+ var cores = keys ( resolve . core ) ;
18+ st . plan ( cores . length ) ;
1719
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+ }
2330 }
2431
2532 st . end ( ) ;
You can’t perform that action at this time.
0 commit comments