lib: remove unnecessary lazy loads

Now that more modules are included in the snapshot, it's not
necessary to lazy load them anymore

PR-URL: https://github.com/nodejs/node/pull/38737
Refs: https://github.com/nodejs/node/issues/35711
Reviewed-By: Anna Henningsen <anna@addaleax.net>
This commit is contained in:
Joyee Cheung
2021-05-20 02:32:18 +08:00
parent 9e42b4da09
commit a4ea9fc48e
6 changed files with 13 additions and 30 deletions

View File

@@ -60,8 +60,7 @@ const LazyTransform = require('internal/streams/lazy_transform');
const { normalizeEncoding } = require('internal/util');
// Lazy loaded for startup performance.
let StringDecoder;
const { StringDecoder } = require('string_decoder');
function rsaFunctionFor(method, defaultPadding, keyType) {
return (options, buffer) => {
@@ -93,8 +92,6 @@ const privateDecrypt = rsaFunctionFor(_privateDecrypt, RSA_PKCS1_OAEP_PADDING,
function getDecoder(decoder, encoding) {
encoding = normalizeEncoding(encoding);
if (StringDecoder === undefined)
StringDecoder = require('string_decoder').StringDecoder;
decoder = decoder || new StringDecoder(encoding);
assert(decoder.encoding === encoding, 'Cannot change encoding');
return decoder;

View File

@@ -8,7 +8,7 @@ const {
SymbolAsyncIterator,
} = primordials;
let eos;
const eos = require('internal/streams/end-of-stream');
const { once } = require('internal/util');
const destroyImpl = require('internal/streams/destroy');
@@ -39,7 +39,6 @@ function destroyer(stream, reading, writing, callback) {
finished = true;
});
if (eos === undefined) eos = require('internal/streams/end-of-stream');
eos(stream, { readable: reading, writable: writing }, (err) => {
finished = !err;

View File

@@ -66,9 +66,8 @@ const { validateObject } = require('internal/validators');
const kPaused = Symbol('kPaused');
// Lazy loaded to improve the startup performance.
let StringDecoder;
let from;
const { StringDecoder } = require('string_decoder');
const from = require('internal/streams/from');
ObjectSetPrototypeOf(Readable.prototype, Stream.prototype);
ObjectSetPrototypeOf(Readable, Stream);
@@ -171,8 +170,6 @@ function ReadableState(options, stream, isDuplex) {
this.decoder = null;
this.encoding = null;
if (options && options.encoding) {
if (!StringDecoder)
StringDecoder = require('string_decoder').StringDecoder;
this.decoder = new StringDecoder(options.encoding);
this.encoding = options.encoding;
}
@@ -334,8 +331,6 @@ Readable.prototype.isPaused = function() {
// Backwards compatibility.
Readable.prototype.setEncoding = function(enc) {
if (!StringDecoder)
StringDecoder = require('string_decoder').StringDecoder;
const decoder = new StringDecoder(enc);
this._readableState.decoder = decoder;
// If setEncoding(null), decoder.encoding equals utf8.
@@ -1362,8 +1357,5 @@ function endWritableNT(state, stream) {
}
Readable.from = function(iterable, opts) {
if (from === undefined) {
from = require('internal/streams/from');
}
return from(Readable, iterable, opts);
};

View File

@@ -33,8 +33,7 @@ const pipeline = require('internal/streams/pipeline');
const eos = require('internal/streams/end-of-stream');
const internalBuffer = require('internal/buffer');
// Lazy loaded
let promises = null;
const promises = require('stream/promises');
const Stream = module.exports = require('internal/streams/legacy').Stream;
Stream.Readable = require('internal/streams/readable');
@@ -47,30 +46,25 @@ const { addAbortSignal } = require('internal/streams/add-abort-signal');
Stream.addAbortSignal = addAbortSignal;
Stream.finished = eos;
function lazyLoadPromises() {
if (promises === null) promises = require('stream/promises');
return promises;
}
ObjectDefineProperty(Stream, 'promises', {
configurable: true,
enumerable: true,
get() {
return lazyLoadPromises();
return promises;
}
});
ObjectDefineProperty(pipeline, customPromisify, {
enumerable: true,
get() {
return lazyLoadPromises().pipeline;
return promises.pipeline;
}
});
ObjectDefineProperty(eos, customPromisify, {
enumerable: true,
get() {
return lazyLoadPromises().finished;
return promises.finished;
}
});

View File

@@ -18,11 +18,10 @@ const {
isStream,
} = require('internal/streams/utils');
let pl;
let eos;
const pl = require('internal/streams/pipeline');
const eos = require('internal/streams/end-of-stream');
function pipeline(...streams) {
if (!pl) pl = require('internal/streams/pipeline');
return new Promise((resolve, reject) => {
let signal;
const lastArg = streams[streams.length - 1];
@@ -47,7 +46,6 @@ function pipeline(...streams) {
}
function finished(stream, opts) {
if (!eos) eos = require('internal/streams/end-of-stream');
return new Promise((resolve, reject) => {
eos(stream, opts, (err) => {
if (err) {

View File

@@ -93,6 +93,7 @@ const expectedModules = new Set([
'NativeModule internal/streams/destroy',
'NativeModule internal/streams/duplex',
'NativeModule internal/streams/end-of-stream',
'NativeModule internal/streams/from',
'NativeModule internal/streams/legacy',
'NativeModule internal/streams/passthrough',
'NativeModule internal/streams/pipeline',
@@ -116,6 +117,8 @@ const expectedModules = new Set([
'NativeModule async_hooks',
'NativeModule path',
'NativeModule stream',
'NativeModule stream/promises',
'NativeModule string_decoder',
'NativeModule timers',
'NativeModule url',
'NativeModule util',