D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
proc
/
self
/
root
/
opt
/
alt
/
alt-nodejs16
/
root
/
lib
/
node_modules
/
npm
/
node_modules
/
builtins
/
Filename :
index.js
back
Copy
'use strict' const semver = require('semver') 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' ] 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', 'node:test': '>=18.0.0' } 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 (experimental) { for (const [name, semverRange] of Object.entries(experimentalModules)) { if ( !builtins.includes(name) && (version === '*' || semver.satisfies(version, semverRange)) ) { builtins.push(name) } } } return builtins }