| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
1 parent 83ebaf0 commit 45c477c
40 files changed
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -1,6 +1,7 @@ | |||
| 1 | 1 | // This file creates the internal module & binding loaders used by built-in | |
| 2 | 2 | // modules. In contrast, user land modules are loaded using | |
| 3 | - // lib/module.js (CommonJS Modules) or lib/internal/loader/* (ES Modules). | ||
| 3 | + // lib/internal/modules/cjs/loader.js (CommonJS Modules) or | ||
| 4 | + // lib/internal/modules/esm/* (ES Modules). | ||
| 4 | 5 | // | |
| 5 | 6 | // This file is compiled and run by node.cc before bootstrap/node.js | |
| 6 | 7 | // was called, therefore the loaders are bootstraped before we start to | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -110,7 +110,7 @@ | |||
| 110 | 110 | process.emitWarning( | |
| 111 | 111 | 'The ESM module loader is experimental.', | |
| 112 | 112 | 'ExperimentalWarning', undefined); | |
| 113 | - NativeModule.require('internal/process/modules').setup(); | ||
| 113 | + NativeModule.require('internal/process/esm_loader').setup(); | ||
| 114 | 114 | } | |
| 115 | 115 | ||
| 116 | 116 | ||
@@ -170,22 +170,24 @@ | |||
| 170 | 170 | preloadModules(); | |
| 171 | 171 | perf.markMilestone(NODE_PERFORMANCE_MILESTONE_PRELOAD_MODULE_LOAD_END); | |
| 172 | 172 | ||
| 173 | - const internalModule = NativeModule.require('internal/module'); | ||
| 174 | - internalModule.addBuiltinLibsToObject(global); | ||
| 173 | + const { | ||
| 174 | + addBuiltinLibsToObject | ||
| 175 | + } = NativeModule.require('internal/modules/cjs/helpers'); | ||
| 176 | + addBuiltinLibsToObject(global); | ||
| 175 | 177 | evalScript('[eval]'); | |
| 176 | 178 | } else if (process.argv[1] && process.argv[1] !== '-') { | |
| 177 | 179 | perf.markMilestone(NODE_PERFORMANCE_MILESTONE_MODULE_LOAD_START); | |
| 178 | 180 | // make process.argv[1] into a full path | |
| 179 | 181 | const path = NativeModule.require('path'); | |
| 180 | 182 | process.argv[1] = path.resolve(process.argv[1]); | |
| 181 | 183 | ||
| 182 | - const Module = NativeModule.require('module'); | ||
| 184 | + const CJSModule = NativeModule.require('internal/modules/cjs/loader'); | ||
| 183 | 185 | ||
| 184 | 186 | // check if user passed `-c` or `--check` arguments to Node. | |
| 185 | 187 | if (process._syntax_check_only != null) { | |
| 186 | 188 | const fs = NativeModule.require('fs'); | |
| 187 | 189 | // read the source | |
| 188 | - const filename = Module._resolveFilename(process.argv[1]); | ||
| 190 | + const filename = CJSModule._resolveFilename(process.argv[1]); | ||
| 189 | 191 | const source = fs.readFileSync(filename, 'utf-8'); | |
| 190 | 192 | checkScriptSyntax(source, filename); | |
| 191 | 193 | process.exit(0); | |
@@ -196,7 +198,7 @@ | |||
| 196 | 198 | preloadModules(); | |
| 197 | 199 | perf.markMilestone( | |
| 198 | 200 | NODE_PERFORMANCE_MILESTONE_PRELOAD_MODULE_LOAD_END); | |
| 199 | - Module.runMain(); | ||
| 201 | + CJSModule.runMain(); | ||
| 200 | 202 | } else { | |
| 201 | 203 | perf.markMilestone(NODE_PERFORMANCE_MILESTONE_MODULE_LOAD_START); | |
| 202 | 204 | perf.markMilestone(NODE_PERFORMANCE_MILESTONE_MODULE_LOAD_END); | |
@@ -321,7 +323,7 @@ | |||
| 321 | 323 | ||
| 322 | 324 | function setupGlobalConsole() { | |
| 323 | 325 | const originalConsole = global.console; | |
| 324 | - const Module = NativeModule.require('module'); | ||
| 326 | + const CJSModule = NativeModule.require('internal/modules/cjs/loader'); | ||
| 325 | 327 | // Setup Node.js global.console | |
| 326 | 328 | const wrappedConsole = NativeModule.require('console'); | |
| 327 | 329 | Object.defineProperty(global, 'console', { | |
@@ -331,22 +333,23 @@ | |||
| 331 | 333 | return wrappedConsole; | |
| 332 | 334 | } | |
| 333 | 335 | }); | |
| 334 | - setupInspector(originalConsole, wrappedConsole, Module); | ||
| 336 | + setupInspector(originalConsole, wrappedConsole, CJSModule); | ||
| 335 | 337 | } | |
| 336 | 338 | ||
| 337 | - function setupInspector(originalConsole, wrappedConsole, Module) { | ||
| 339 | + function setupInspector(originalConsole, wrappedConsole, CJSModule) { | ||
| 338 | 340 | if (!process.config.variables.v8_enable_inspector) { | |
| 339 | 341 | return; | |
| 340 | 342 | } | |
| 341 | 343 | const { addCommandLineAPI, consoleCall } = process.binding('inspector'); | |
| 342 | 344 | // Setup inspector command line API | |
| 343 | - const { makeRequireFunction } = NativeModule.require('internal/module'); | ||
| 345 | + const { makeRequireFunction } = | ||
| 346 | + NativeModule.require('internal/modules/cjs/helpers'); | ||
| 344 | 347 | const path = NativeModule.require('path'); | |
| 345 | 348 | const cwd = tryGetCwd(path); | |
| 346 | 349 | ||
| 347 | - const consoleAPIModule = new Module('<inspector console>'); | ||
| 350 | + const consoleAPIModule = new CJSModule('<inspector console>'); | ||
| 348 | 351 | consoleAPIModule.paths = | |
| 349 | - Module._nodeModulePaths(cwd).concat(Module.globalPaths); | ||
| 352 | + CJSModule._nodeModulePaths(cwd).concat(CJSModule.globalPaths); | ||
| 350 | 353 | addCommandLineAPI('require', makeRequireFunction(consoleAPIModule)); | |
| 351 | 354 | const config = {}; | |
| 352 | 355 | for (const key of Object.keys(wrappedConsole)) { | |
@@ -461,13 +464,13 @@ | |||
| 461 | 464 | } | |
| 462 | 465 | ||
| 463 | 466 | function evalScript(name) { | |
| 464 | - const Module = NativeModule.require('module'); | ||
| 467 | + const CJSModule = NativeModule.require('internal/modules/cjs/loader'); | ||
| 465 | 468 | const path = NativeModule.require('path'); | |
| 466 | 469 | const cwd = tryGetCwd(path); | |
| 467 | 470 | ||
| 468 | - const module = new Module(name); | ||
| 471 | + const module = new CJSModule(name); | ||
| 469 | 472 | module.filename = path.join(cwd, name); | |
| 470 | - module.paths = Module._nodeModulePaths(cwd); | ||
| 473 | + module.paths = CJSModule._nodeModulePaths(cwd); | ||
| 471 | 474 | const body = wrapForBreakOnFirstLine(process._eval); | |
| 472 | 475 | const script = `global.__filename = ${JSON.stringify(name)};\n` + | |
| 473 | 476 | 'global.exports = exports;\n' + | |
@@ -486,21 +489,26 @@ | |||
| 486 | 489 | // Load preload modules | |
| 487 | 490 | function preloadModules() { | |
| 488 | 491 | if (process._preload_modules) { | |
| 489 | - NativeModule.require('module')._preloadModules(process._preload_modules); | ||
| 492 | + const { | ||
| 493 | + _preloadModules | ||
| 494 | + } = NativeModule.require('internal/modules/cjs/loader'); | ||
| 495 | + _preloadModules(process._preload_modules); | ||
| 490 | 496 | } | |
| 491 | 497 | } | |
| 492 | 498 | ||
| 493 | 499 | function checkScriptSyntax(source, filename) { | |
| 494 | - const Module = NativeModule.require('module'); | ||
| 500 | + const CJSModule = NativeModule.require('internal/modules/cjs/loader'); | ||
| 495 | 501 | const vm = NativeModule.require('vm'); | |
| 496 | - const internalModule = NativeModule.require('internal/module'); | ||
| 502 | + const { | ||
| 503 | + stripShebang, stripBOM | ||
| 504 | + } = NativeModule.require('internal/modules/cjs/helpers'); | ||
| 497 | 505 | ||
| 498 | 506 | // remove Shebang | |
| 499 | - source = internalModule.stripShebang(source); | ||
| 507 | + source = stripShebang(source); | ||
| 500 | 508 | // remove BOM | |
| 501 | - source = internalModule.stripBOM(source); | ||
| 509 | + source = stripBOM(source); | ||
| 502 | 510 | // wrap it | |
| 503 | - source = Module.wrap(source); | ||
| 511 | + source = CJSModule.wrap(source); | ||
| 504 | 512 | // compile the script, this will throw if it fails | |
| 505 | 513 | new vm.Script(source, { displayErrors: true, filename }); | |
| 506 | 514 | } | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -34,7 +34,12 @@ const { | |||
| 34 | 34 | internalModuleReadFile, | |
| 35 | 35 | internalModuleStat | |
| 36 | 36 | } = process.binding('fs'); | |
| 37 | - const internalModule = require('internal/module'); | ||
| 37 | + const { | ||
| 38 | + makeRequireFunction, | ||
| 39 | + requireDepth, | ||
| 40 | + stripBOM, | ||
| 41 | + stripShebang | ||
| 42 | + } = require('internal/modules/cjs/helpers'); | ||
| 38 | 43 | const preserveSymlinks = !!process.binding('config').preserveSymlinks; | |
| 39 | 44 | const experimentalModules = !!process.binding('config').experimentalModules; | |
| 40 | 45 | ||
@@ -43,9 +48,9 @@ const errors = require('internal/errors'); | |||
| 43 | 48 | module.exports = Module; | |
| 44 | 49 | ||
| 45 | 50 | // these are below module.exports for the circular reference | |
| 46 | - const internalESModule = require('internal/process/modules'); | ||
| 47 | - const ModuleJob = require('internal/loader/ModuleJob'); | ||
| 48 | - const createDynamicModule = require('internal/loader/CreateDynamicModule'); | ||
| 51 | + const asyncESM = require('internal/process/esm_loader'); | ||
| 52 | + const ModuleJob = require('internal/modules/esm/ModuleJob'); | ||
| 53 | + const createDynamicModule = require('internal/modules/esm/CreateDynamicModule'); | ||
| 49 | 54 | ||
| 50 | 55 | function stat(filename) { | |
| 51 | 56 | filename = path.toNamespacedPath(filename); | |
@@ -456,7 +461,7 @@ Module._load = function(request, parent, isMain) { | |||
| 456 | 461 | } | |
| 457 | 462 | ||
| 458 | 463 | if (experimentalModules && isMain) { | |
| 459 | - internalESModule.loaderPromise.then((loader) => { | ||
| 464 | + asyncESM.loaderPromise.then((loader) => { | ||
| 460 | 465 | return loader.import(getURLFromFilePath(request).pathname); | |
| 461 | 466 | }) | |
| 462 | 467 | .catch((e) => { | |
@@ -562,7 +567,7 @@ Module.prototype.load = function(filename) { | |||
| 562 | 567 | this.loaded = true; | |
| 563 | 568 | ||
| 564 | 569 | if (experimentalModules) { | |
| 565 | - const ESMLoader = internalESModule.ESMLoader; | ||
| 570 | + const ESMLoader = asyncESM.ESMLoader; | ||
| 566 | 571 | const url = getURLFromFilePath(filename); | |
| 567 | 572 | const urlString = `${url}`; | |
| 568 | 573 | const exports = this.exports; | |
@@ -605,7 +610,7 @@ var resolvedArgv; | |||
| 605 | 610 | // Returns exception, if any. | |
| 606 | 611 | Module.prototype._compile = function(content, filename) { | |
| 607 | 612 | ||
| 608 | - content = internalModule.stripShebang(content); | ||
| 613 | + content = stripShebang(content); | ||
| 609 | 614 | ||
| 610 | 615 | // create wrapper function | |
| 611 | 616 | var wrapper = Module.wrap(content); | |
@@ -638,8 +643,8 @@ Module.prototype._compile = function(content, filename) { | |||
| 638 | 643 | } | |
| 639 | 644 | } | |
| 640 | 645 | var dirname = path.dirname(filename); | |
| 641 | - var require = internalModule.makeRequireFunction(this); | ||
| 642 | - var depth = internalModule.requireDepth; | ||
| 646 | + var require = makeRequireFunction(this); | ||
| 647 | + var depth = requireDepth; | ||
| 643 | 648 | if (depth === 0) stat.cache = new Map(); | |
| 644 | 649 | var result; | |
| 645 | 650 | if (inspectorWrapper) { | |
@@ -657,15 +662,15 @@ Module.prototype._compile = function(content, filename) { | |||
| 657 | 662 | // Native extension for .js | |
| 658 | 663 | Module._extensions['.js'] = function(module, filename) { | |
| 659 | 664 | var content = fs.readFileSync(filename, 'utf8'); | |
| 660 | - module._compile(internalModule.stripBOM(content), filename); | ||
| 665 | + module._compile(stripBOM(content), filename); | ||
| 661 | 666 | }; | |
| 662 | 667 | ||
| 663 | 668 | ||
| 664 | 669 | // Native extension for .json | |
| 665 | 670 | Module._extensions['.json'] = function(module, filename) { | |
| 666 | 671 | var content = fs.readFileSync(filename, 'utf8'); | |
| 667 | 672 | try { | |
| 668 | - module.exports = JSON.parse(internalModule.stripBOM(content)); | ||
| 673 | + module.exports = JSON.parse(stripBOM(content)); | ||
| 669 | 674 | } catch (err) { | |
| 670 | 675 | err.message = filename + ': ' + err.message; | |
| 671 | 676 | throw err; | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -1,7 +1,7 @@ | |||
| 1 | 1 | 'use strict'; | |
| 2 | 2 | ||
| 3 | 3 | const { URL } = require('url'); | |
| 4 | - const CJSmodule = require('module'); | ||
| 4 | + const CJSmodule = require('internal/modules/cjs/loader'); | ||
| 5 | 5 | const internalFS = require('internal/fs'); | |
| 6 | 6 | const { NativeModule, internalBinding } = require('internal/bootstrap/loaders'); | |
| 7 | 7 | const { extname } = require('path'); | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -1,11 +1,11 @@ | |||
| 1 | 1 | 'use strict'; | |
| 2 | 2 | ||
| 3 | 3 | const errors = require('internal/errors'); | |
| 4 | - const ModuleMap = require('internal/loader/ModuleMap'); | ||
| 5 | - const ModuleJob = require('internal/loader/ModuleJob'); | ||
| 6 | - const defaultResolve = require('internal/loader/DefaultResolve'); | ||
| 7 | - const createDynamicModule = require('internal/loader/CreateDynamicModule'); | ||
| 8 | - const translators = require('internal/loader/Translators'); | ||
| 4 | + const ModuleMap = require('internal/modules/esm/ModuleMap'); | ||
| 5 | + const ModuleJob = require('internal/modules/esm/ModuleJob'); | ||
| 6 | + const defaultResolve = require('internal/modules/esm/DefaultResolve'); | ||
| 7 | + const createDynamicModule = require('internal/modules/esm/CreateDynamicModule'); | ||
| 8 | + const translators = require('internal/modules/esm/Translators'); | ||
| 9 | 9 | ||
| 10 | 10 | const FunctionBind = Function.call.bind(Function.prototype.bind); | |
| 11 | 11 | ||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -1,6 +1,6 @@ | |||
| 1 | 1 | 'use strict'; | |
| 2 | 2 | ||
| 3 | - const ModuleJob = require('internal/loader/ModuleJob'); | ||
| 3 | + const ModuleJob = require('internal/modules/esm/ModuleJob'); | ||
| 4 | 4 | const { SafeMap } = require('internal/safe_globals'); | |
| 5 | 5 | const debug = require('util').debuglog('esm'); | |
| 6 | 6 | const errors = require('internal/errors'); | |
| Back | FazBrowse Home | New Git URL |
0 commit comments