Comparing version 4.1.0 to 5.0.0
135
index.js
'use strict' | ||
var semver = require('semver') | ||
const semver = require('semver') | ||
module.exports = function ({ | ||
version = process.version, | ||
experimental = false | ||
} = {}) { | ||
var coreModules = [ | ||
'assert', | ||
'buffer', | ||
'child_process', | ||
'cluster', | ||
'console', | ||
'constants', | ||
'crypto', | ||
'dgram', | ||
'dns', | ||
'domain', | ||
'events', | ||
'fs', | ||
'http', | ||
'https', | ||
'module', | ||
'net', | ||
'os', | ||
'path', | ||
'punycode', | ||
'querystring', | ||
'readline', | ||
'repl', | ||
'stream', | ||
'string_decoder', | ||
'sys', | ||
'timers', | ||
'tls', | ||
'tty', | ||
'url', | ||
'util', | ||
'vm', | ||
'zlib' | ||
] | ||
const permanentModules = [ | ||
'assert', | ||
'buffer', | ||
'child_process', | ||
'cluster', | ||
'console', | ||
'constants', | ||
'crypto', | ||
'dgram', | ||
'dns', | ||
'domain', | ||
'events', | ||
'fs', | ||
'http', | ||
'https', | ||
'module', | ||
'net', | ||
'os', | ||
'path', | ||
'punycode', | ||
'querystring', | ||
'readline', | ||
'repl', | ||
'stream', | ||
'string_decoder', | ||
'sys', | ||
'timers', | ||
'tls', | ||
'tty', | ||
'url', | ||
'util', | ||
'vm', | ||
'zlib' | ||
] | ||
if (semver.lt(version, '6.0.0')) coreModules.push('freelist') | ||
if (semver.gte(version, '1.0.0')) coreModules.push('v8') | ||
if (semver.gte(version, '1.1.0')) coreModules.push('process') | ||
if (semver.gte(version, '8.0.0')) coreModules.push('inspector') | ||
if (semver.gte(version, '8.1.0')) coreModules.push('async_hooks') | ||
if (semver.gte(version, '8.4.0')) coreModules.push('http2') | ||
if (semver.gte(version, '8.5.0')) coreModules.push('perf_hooks') | ||
if (semver.gte(version, '10.0.0')) coreModules.push('trace_events') | ||
const versionLockedModules = { | ||
freelist: '<6.0.0', | ||
v8: '>=1.0.0', | ||
process: '>=1.1.0', | ||
inspector: '>=8.0.0', | ||
async_hooks: '>=8.1.0', | ||
http2: '>=8.4.0', | ||
perf_hooks: '>=8.5.0', | ||
trace_events: '>=10.0.0', | ||
worker_threads: '>=12.0.0' | ||
} | ||
if ( | ||
semver.gte(version, '10.5.0') && | ||
(experimental || semver.gte(version, '12.0.0')) | ||
) { | ||
coreModules.push('worker_threads') | ||
const experimentalModules = { | ||
worker_threads: '>=10.5.0', | ||
wasi: '>=12.16.0', | ||
diagnostics_channel: '^14.17.0 || >=15.1.0' | ||
} | ||
module.exports = ({ version = process.version, experimental = false } = {}) => { | ||
const builtins = [...permanentModules] | ||
for (const [name, semverRange] of Object.entries(versionLockedModules)) { | ||
if (version === '*' || semver.satisfies(version, semverRange)) { | ||
builtins.push(name) | ||
} | ||
} | ||
if (semver.gte(version, '12.16.0') && experimental) { | ||
coreModules.push('wasi') | ||
if (experimental) { | ||
for (const [name, semverRange] of Object.entries(experimentalModules)) { | ||
if ( | ||
!builtins.includes(name) && | ||
(version === '*' || semver.satisfies(version, semverRange)) | ||
) { | ||
builtins.push(name) | ||
} | ||
} | ||
} | ||
if ( | ||
experimental && | ||
( | ||
semver.gte(version, '14.17.0') && semver.lt(version, '15.0.0') || | ||
semver.gte(version, '15.1.0') | ||
) | ||
) { | ||
coreModules.push('diagnostics_channel') | ||
} | ||
return coreModules | ||
return builtins | ||
} |
{ | ||
"name": "builtins", | ||
"version": "4.1.0", | ||
"version": "5.0.0", | ||
"description": "List of node.js builtin modules", | ||
@@ -10,4 +10,3 @@ "repository": "juliangruber/builtins", | ||
"scripts": { | ||
"release": "np", | ||
"test": "node test.js" | ||
"test": "prettier-standard && standard && node test.js" | ||
}, | ||
@@ -18,7 +17,6 @@ "dependencies": { | ||
"devDependencies": { | ||
"np": "^6.1.0", | ||
"prettier-standard": "^15.0.0", | ||
"standard": "^14.0.2", | ||
"tape": "^4.11.0" | ||
"node-core-test": "^1.1.1", | ||
"prettier-standard": "^15.0.1", | ||
"standard": "^14.3.4" | ||
} | ||
} |
@@ -1,16 +0,17 @@ | ||
# builtins | ||
List of node.js [builtin modules](http://nodejs.org/api/). | ||
[![CI](https://github.com/juliangruber/builtins/actions/workflows/ci.yml/badge.svg)](https://github.com/juliangruber/builtins/actions/workflows/ci.yml) | ||
[![build status](https://secure.travis-ci.org/juliangruber/builtins.svg)](http://travis-ci.org/juliangruber/builtins) [![Greenkeeper badge](https://badges.greenkeeper.io/juliangruber/builtins.svg)](https://greenkeeper.io/) | ||
List of node.js [builtin modules](http://nodejs.org/api/). | ||
## Example | ||
## Usage | ||
```js | ||
const builtins = require('builtins') | ||
``` | ||
Get list of core modules for current Node.js version: | ||
```js | ||
var builtins = require('builtins')() | ||
assert(builtins.indexOf('http') > -1) | ||
assert(builtins().includes('http')) | ||
``` | ||
@@ -21,5 +22,9 @@ | ||
```js | ||
var builtins = require('builtins')({ version: '6.0.0' }) | ||
assert(builtins({ version: '6.0.0' }).includes('http')) | ||
``` | ||
assert(builtins.indexOf('http') > -1) | ||
Get list of core modules present in one or mode Node.js versions: | ||
```js | ||
assert(builtins({ version: '*' }).includes('worker_threads')) | ||
``` | ||
@@ -30,5 +35,3 @@ | ||
```js | ||
var builtins = require('builtins')({ experimental: true }) | ||
assert(builtins.indexOf('wasi') > -1) | ||
assert(builtins({ experimental: true }).includes('wasi')) | ||
``` | ||
@@ -38,2 +41,2 @@ | ||
MIT | ||
MIT |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
3
71
40
3723