fix(refactor): prefix built-in node module imports

Since v5 relies on node >= 18, this is now possible (since v16, v14.18.0
[^1][^2]).

It's functionally irrelevant:
1. It's not required for CJS nor ESM (with a few exceptions [^3])
2. It has no performance promises

However, there are upsides to this approach:
1. It brings clear boundaries to what's a built-in and what's an
external dependency
2. It reduces the risk of importing unwanted deps where a built-in is
expected
3. It's slightly more interoperable with other JS runtimes that provide
node compatibility[^4], albeit only during development. Once imported
from npm, built-ins are assumed.

[^1]:https://nodejs.org/docs/latest-v22.x/api/modules.html#built-in-modules
[^2]:https://github.com/nodejs/node/pull/37246
[^3]:https://nodejs.org/api/modules.html#built-in-modules-with-mandatory-node-prefix
[^4]:https://docs.deno.com/runtime/fundamentals/node/#using-node's-built-in-modules
This commit is contained in:
Szymon Łągiewka 2024-12-21 22:58:33 +01:00 committed by Wes Todd
parent 6a40af8293
commit 41113599af
52 changed files with 442 additions and 441 deletions

View File

@ -7,6 +7,7 @@ unreleased
* cleanup: remove unnecessary require for global Buffer
* perf: use loop for acceptParams
* Replace `methods` dependency with standard library
* refactor: prefix built-in node module imports
5.0.1 / 2024-10-08
==========

View File

@ -6,7 +6,7 @@
var express = require('../..');
var hash = require('pbkdf2-password')()
var path = require('path');
var path = require('node:path');
var session = require('express-session');
var app = module.exports = express();

View File

@ -5,7 +5,7 @@
*/
var express = require('../../');
var path = require('path');
var path = require('node:path');
var app = module.exports = express();

View File

@ -5,7 +5,7 @@
*/
var express = require('../../');
var path = require('path');
var path = require('node:path');
var app = module.exports = express();

View File

@ -5,7 +5,7 @@
*/
var express = require('../../');
var path = require('path');
var path = require('node:path');
var app = module.exports = express();
var logger = require('morgan');
var silent = process.env.NODE_ENV === 'test'

View File

@ -6,9 +6,9 @@
var escapeHtml = require('escape-html');
var express = require('../..');
var fs = require('fs');
var fs = require('node:fs');
var marked = require('marked');
var path = require('path');
var path = require('node:path');
var app = module.exports = express();

View File

@ -6,7 +6,7 @@
var express = require('../..');
var logger = require('morgan');
var path = require('path');
var path = require('node:path');
var session = require('express-session');
var methodOverride = require('method-override');

View File

@ -5,8 +5,8 @@
*/
var express = require('../../..');
var fs = require('fs');
var path = require('path');
var fs = require('node:fs');
var path = require('node:path');
module.exports = function(parent, options){
var dir = path.join(__dirname, '..', 'controllers');

View File

@ -5,7 +5,7 @@
*/
var express = require('../..');
var path = require('path');
var path = require('node:path');
var app = express();
var logger = require('morgan');
var cookieParser = require('cookie-parser');

View File

@ -12,7 +12,7 @@
*/
var express = require('../..');
var path = require('path');
var path = require('node:path');
var redis = require('redis');
var db = redis.createClient();

View File

@ -6,7 +6,7 @@
var express = require('../..');
var logger = require('morgan');
var path = require('path');
var path = require('node:path');
var app = express();
// log requests

View File

@ -4,8 +4,8 @@
* Module dependencies.
*/
var https = require('https');
var path = require('path');
var https = require('node:https');
var path = require('node:path');
var extname = path.extname;
/**

View File

@ -5,7 +5,7 @@
*/
var express = require('../..');
var path = require('path');
var path = require('node:path');
var User = require('./user');
var app = express();

View File

@ -16,12 +16,12 @@
var finalhandler = require('finalhandler');
var debug = require('debug')('express:application');
var View = require('./view');
var http = require('http');
var http = require('node:http');
var methods = require('./utils').methods;
var compileETag = require('./utils').compileETag;
var compileQueryParser = require('./utils').compileQueryParser;
var compileTrust = require('./utils').compileTrust;
var resolve = require('path').resolve;
var resolve = require('node:path').resolve;
var once = require('once')
var Router = require('router');
@ -583,8 +583,8 @@ app.render = function render(name, options, callback) {
* and HTTPS server you may do so with the "http"
* and "https" modules as shown here:
*
* var http = require('http')
* , https = require('https')
* var http = require('node:http')
* , https = require('node:https')
* , express = require('express')
* , app = express();
*

View File

@ -13,7 +13,7 @@
*/
var bodyParser = require('body-parser')
var EventEmitter = require('events').EventEmitter;
var EventEmitter = require('node:events').EventEmitter;
var mixin = require('merge-descriptors');
var proto = require('./application');
var Router = require('router');

View File

@ -14,9 +14,9 @@
*/
var accepts = require('accepts');
var isIP = require('net').isIP;
var isIP = require('node:net').isIP;
var typeis = require('type-is');
var http = require('http');
var http = require('node:http');
var fresh = require('fresh');
var parseRange = require('range-parser');
var parse = require('parseurl');

View File

@ -16,11 +16,11 @@ var contentDisposition = require('content-disposition');
var createError = require('http-errors')
var encodeUrl = require('encodeurl');
var escapeHtml = require('escape-html');
var http = require('http');
var http = require('node:http');
var onFinished = require('on-finished');
var mime = require('mime-types')
var path = require('path');
var pathIsAbsolute = require('path').isAbsolute;
var path = require('node:path');
var pathIsAbsolute = require('node:path').isAbsolute;
var statuses = require('statuses')
var sign = require('cookie-signature').sign;
var normalizeType = require('./utils').normalizeType;

View File

@ -14,8 +14,8 @@
*/
var debug = require('debug')('express:view');
var path = require('path');
var fs = require('fs');
var path = require('node:path');
var fs = require('node:fs');
/**
* Module variables.

View File

@ -1,7 +1,7 @@
'use strict'
var after = require('after');
var assert = require('assert')
var assert = require('node:assert')
var express = require('../')
, Route = express.Route
, methods = require('../lib/utils').methods

View File

@ -4,7 +4,7 @@ var after = require('after');
var express = require('../')
, Router = express.Router
, methods = require('../lib/utils').methods
, assert = require('assert');
, assert = require('node:assert');
describe('Router', function () {
it('should return a function with router methods', function () {

View File

@ -1,9 +1,9 @@
'use strict'
var assert = require('assert')
var assert = require('node:assert')
var express = require('../')
, fs = require('fs');
var path = require('path')
, fs = require('node:fs');
var path = require('node:path')
function render(path, options, fn) {
fs.readFile(path, 'utf8', function(err, str){

View File

@ -2,7 +2,7 @@
var express = require('../');
var request = require('supertest');
var assert = require('assert');
var assert = require('node:assert');
describe('HEAD', function(){
it('should default to GET', function(done){

View File

@ -1,6 +1,6 @@
'use strict'
var assert = require('assert')
var assert = require('node:assert')
var express = require('..')
var request = require('supertest')

View File

@ -1,7 +1,7 @@
'use strict'
var express = require('../')
var assert = require('assert')
var assert = require('node:assert')
describe('app.listen()', function(){
it('should wrap with an HTTP server', function(done){

View File

@ -1,6 +1,6 @@
'use strict'
var assert = require('assert')
var assert = require('node:assert')
var express = require('../')
describe('app', function(){

View File

@ -1,8 +1,8 @@
'use strict'
var assert = require('assert')
var assert = require('node:assert')
var express = require('..');
var path = require('path')
var path = require('node:path')
var tmpl = require('./support/tmpl');
describe('app', function(){

View File

@ -10,7 +10,7 @@ describe('app', function(){
var app = express();
app.request.querystring = function(){
return require('url').parse(this.url).query;
return require('node:url').parse(this.url).query;
};
app.use(function(req, res){

View File

@ -3,7 +3,7 @@
var after = require('after');
var express = require('../')
, request = require('supertest')
, assert = require('assert')
, assert = require('node:assert')
, methods = require('../lib/utils').methods;
var shouldSkipQuery = require('./support/utils').shouldSkipQuery

View File

@ -1,6 +1,6 @@
'use strict'
var assert = require('assert')
var assert = require('node:assert')
var express = require('../')
, request = require('supertest');

View File

@ -1,7 +1,7 @@
'use strict'
var after = require('after');
var assert = require('assert')
var assert = require('node:assert')
var express = require('..');
var request = require('supertest');

View File

@ -1,6 +1,6 @@
'use strict'
var assert = require('assert');
var assert = require('node:assert');
var express = require('..');
describe('config', function () {

View File

@ -1,6 +1,6 @@
'use strict'
var assert = require('assert')
var assert = require('node:assert')
var express = require('../');
var request = require('supertest');

View File

@ -1,7 +1,7 @@
'use strict'
var assert = require('assert')
var AsyncLocalStorage = require('async_hooks').AsyncLocalStorage
var assert = require('node:assert')
var AsyncLocalStorage = require('node:async_hooks').AsyncLocalStorage
var express = require('..')
var request = require('supertest')

View File

@ -1,7 +1,7 @@
'use strict'
var assert = require('assert')
var AsyncLocalStorage = require('async_hooks').AsyncLocalStorage
var assert = require('node:assert')
var AsyncLocalStorage = require('node:async_hooks').AsyncLocalStorage
var express = require('..')
var request = require('supertest')

View File

@ -1,8 +1,8 @@
'use strict'
var assert = require('assert')
var assert = require('node:assert')
var express = require('..')
var path = require('path')
var path = require('node:path')
var request = require('supertest')
var utils = require('./support/utils')

View File

@ -1,7 +1,7 @@
'use strict'
var assert = require('assert')
var AsyncLocalStorage = require('async_hooks').AsyncLocalStorage
var assert = require('node:assert')
var AsyncLocalStorage = require('node:async_hooks').AsyncLocalStorage
var express = require('..')
var request = require('supertest')

View File

@ -1,7 +1,7 @@
'use strict'
var assert = require('assert')
var AsyncLocalStorage = require('async_hooks').AsyncLocalStorage
var assert = require('node:assert')
var AsyncLocalStorage = require('node:async_hooks').AsyncLocalStorage
var express = require('..')
var request = require('supertest')

View File

@ -1,6 +1,6 @@
'use strict'
var assert = require('assert')
var assert = require('node:assert')
var express = require('../');
var request = require('supertest');

View File

@ -2,7 +2,7 @@
var express = require('../')
, request = require('supertest')
, assert = require('assert');
, assert = require('node:assert');
describe('req', function(){
describe('.get(field)', function(){

View File

@ -1,6 +1,6 @@
'use strict'
var assert = require('assert')
var assert = require('node:assert')
var express = require('../')
, request = require('supertest');

View File

@ -1,6 +1,6 @@
'use strict'
var assert = require('assert')
var assert = require('node:assert')
var express = require('..')
var request = require('supertest')

View File

@ -1,11 +1,11 @@
'use strict'
var after = require('after');
var assert = require('assert')
var AsyncLocalStorage = require('async_hooks').AsyncLocalStorage
var assert = require('node:assert')
var AsyncLocalStorage = require('node:async_hooks').AsyncLocalStorage
var express = require('..');
var path = require('path')
var path = require('node:path')
var request = require('supertest');
var utils = require('./support/utils')

View File

@ -3,7 +3,7 @@
var after = require('after')
var express = require('../')
, request = require('supertest')
, assert = require('assert');
, assert = require('node:assert');
var app1 = express();

View File

@ -2,7 +2,7 @@
var express = require('../')
, request = require('supertest')
, assert = require('assert');
, assert = require('node:assert');
describe('res', function(){
describe('.json(object)', function(){

View File

@ -2,7 +2,7 @@
var express = require('../')
, request = require('supertest')
, assert = require('assert');
, assert = require('node:assert');
var utils = require('./support/utils');
describe('res', function(){

View File

@ -2,8 +2,8 @@
var express = require('../')
, request = require('supertest')
, assert = require('assert')
, url = require('url');
, assert = require('node:assert')
, url = require('node:url');
describe('res', function(){
describe('.location(url)', function(){

View File

@ -1,7 +1,7 @@
'use strict'
var express = require('..');
var path = require('path')
var path = require('node:path')
var request = require('supertest');
var tmpl = require('./support/tmpl');

View File

@ -1,6 +1,6 @@
'use strict'
var assert = require('assert')
var assert = require('node:assert')
var express = require('..');
var methods = require('../lib/utils').methods;
var request = require('supertest');

View File

@ -1,13 +1,13 @@
'use strict'
var after = require('after');
var assert = require('assert')
var AsyncLocalStorage = require('async_hooks').AsyncLocalStorage
var assert = require('node:assert')
var AsyncLocalStorage = require('node:async_hooks').AsyncLocalStorage
var express = require('../')
, request = require('supertest')
var onFinished = require('on-finished');
var path = require('path');
var path = require('node:path');
var fixtures = path.join(__dirname, 'fixtures');
var utils = require('./support/utils');

View File

@ -1,4 +1,4 @@
var fs = require('fs');
var fs = require('node:fs');
var variableRegExp = /\$([0-9a-zA-Z\.]+)/g;

View File

@ -4,7 +4,7 @@
* @private
*/
var assert = require('assert');
var assert = require('node:assert');
/**
* Module exports.

View File

@ -1,6 +1,6 @@
'use strict'
var assert = require('assert');
var assert = require('node:assert');
var utils = require('../lib/utils');
describe('utils.etag(body, encoding)', function(){