From a2a16899f052b0c26c3323d0d7dc33c72c8de300 Mon Sep 17 00:00:00 2001 From: bergi Date: Thu, 15 Sep 2022 14:26:05 +0200 Subject: [PATCH 1/3] feat: use buffer, events, process dependencies and require it --- build/headers.mjs | 26 +++++++++++++++++++ build/replacements.mjs | 3 --- lib/internal/streams/buffer_list.js | 2 ++ lib/internal/streams/destroy.js | 6 ++++- lib/internal/streams/duplexify.js | 6 ++++- lib/internal/streams/end-of-stream.js | 6 ++++- lib/internal/streams/from.js | 8 +++++- lib/internal/streams/pipeline.js | 6 ++++- lib/internal/streams/readable.js | 8 +++++- lib/internal/streams/writable.js | 8 +++++- lib/stream.js | 6 ++++- package.json | 7 ++--- .../fixtures/esbuild-browsers-shims.mjs | 4 +-- .../fixtures/rollup.browser.config.mjs | 3 +-- .../fixtures/webpack.browser.config.mjs | 3 +-- .../fixtures/esbuild-browsers-shims.mjs | 4 +-- .../fixtures/rollup.browser.config.mjs | 3 +-- .../fixtures/webpack.browser.config.mjs | 3 +-- test/browser/test-stream-big-packet.js | 6 ++++- .../browser/test-stream-pipe-cleanup-pause.js | 6 ++++- test/browser/test-stream-pipeline.js | 6 ++++- test/browser/test-stream-readable-event.js | 6 ++++- ...tream-transform-constructor-set-methods.js | 6 ++++- .../test-stream-transform-split-objectmode.js | 6 ++++- .../test-stream-unshift-empty-chunk.js | 6 ++++- test/browser/test-stream-unshift-read-race.js | 6 ++++- ...stream-writable-change-default-encoding.js | 6 ++++- ...stream-writable-constructor-set-methods.js | 6 ++++- .../test-stream-writable-decoded-encoding.js | 6 ++++- test/browser/test-stream-writev.js | 6 ++++- ...est-stream2-base64-single-char-read-end.js | 6 ++++- test/browser/test-stream2-compatibility.js | 6 ++++- test/browser/test-stream2-large-read-stall.js | 6 ++++- .../test-stream2-pipe-error-handling.js | 6 ++++- ...st-stream2-readable-empty-buffer-no-eof.js | 6 ++++- .../test-stream2-readable-from-list.js | 6 ++++- .../test-stream2-readable-legacy-drain.js | 6 ++++- .../test-stream2-readable-non-empty-end.js | 6 ++++- test/browser/test-stream2-readable-wrap.js | 6 ++++- test/browser/test-stream2-set-encoding.js | 6 ++++- test/browser/test-stream2-transform.js | 6 ++++- test/browser/test-stream2-writable.js | 6 ++++- test/browser/test-stream3-pause-then-read.js | 6 ++++- 43 files changed, 209 insertions(+), 53 deletions(-) diff --git a/build/headers.mjs b/build/headers.mjs index 12ef62db4..0a8d92c34 100644 --- a/build/headers.mjs +++ b/build/headers.mjs @@ -1,3 +1,19 @@ +const bufferRequire = ` + /* replacement start */ + + const { Buffer } = require('buffer') + + /* replacement end */ +` + +const processRequire = ` + /* replacement start */ + + const process = require('process') + + /* replacement end */ +` + const testPolyfills = ` /* replacement start */ const AbortController = globalThis.AbortController || require('abort-controller').AbortController; @@ -16,6 +32,16 @@ const testPolyfills = ` ` export const headers = { + 'lib/stream.js': + [bufferRequire], + 'lib/internal/streams/(destroy|duplexify|end-of-stream|from|pipeline|readable|writable).js': + [processRequire], + 'test/browser/test-stream-(big-packet|pipe-cleanup-pause|pipeline|readable-event|transform-constructor-set-methods|transform-split-objectmode|unshift-empty-chunk|unshift-read-race|writable-change-default-encoding|writable-constructor-set-methods|writable-decoded-encoding|writev).js': + [bufferRequire], + 'test/browser/test-stream2-(base64-single-char-read-end|compatibility|large-read-stall|pipe-error-handling|readable-empty-buffer-no-eof|readable-from-list|readable-legacy-drain|readable-non-empty-end|readable-wrap|set-encoding|transform|writable).js': + [bufferRequire], + 'test/browser/test-stream3-pause-then-read.js': + [bufferRequire], 'test/parallel/test-stream-(add-abort-signal|drop-take|duplex-destroy|flatMap|forEach|filter|finished|readable-destroy|reduce|toArray|writable-destroy).js': [testPolyfills] } diff --git a/build/replacements.mjs b/build/replacements.mjs index 4d4ca964b..6d0d35dbe 100644 --- a/build/replacements.mjs +++ b/build/replacements.mjs @@ -34,8 +34,6 @@ const internalStreamsNoRequireAbortController = [ const internalStreamsRequireInternal = ["require\\('internal/([^']+)'\\)", "require('../$1')"] -const internalStreamsNoRequireBuffer = ["const \\{ Buffer \\} = require\\('buffer'\\);", ''] - const internalStreamsRequireErrors = ["require\\('internal/errors'\\)", "require('../../ours/errors')"] const internalStreamsRequireEventEmitter = ['const EE =', 'const { EventEmitter: EE } ='] @@ -233,7 +231,6 @@ export const replacements = { internalStreamsNoRequireAbortController ], 'lib/internal/streams/.+': [ - internalStreamsNoRequireBuffer, internalStreamsRequireErrors, internalStreamsRequireEventEmitter, internalStreamsRequirePrimordials, diff --git a/lib/internal/streams/buffer_list.js b/lib/internal/streams/buffer_list.js index 6a37442ba..e22914f0e 100644 --- a/lib/internal/streams/buffer_list.js +++ b/lib/internal/streams/buffer_list.js @@ -2,6 +2,8 @@ const { StringPrototypeSlice, SymbolIterator, TypedArrayPrototypeSet, Uint8Array } = require('../../ours/primordials') +const { Buffer } = require('buffer') + const { inspect } = require('../../ours/util') module.exports = class BufferList { diff --git a/lib/internal/streams/destroy.js b/lib/internal/streams/destroy.js index 7eeda1361..f84484702 100644 --- a/lib/internal/streams/destroy.js +++ b/lib/internal/streams/destroy.js @@ -1,4 +1,8 @@ -'use strict' +/* replacement start */ +const process = require('process') +/* replacement end */ + +;('use strict') const { aggregateTwoErrors, diff --git a/lib/internal/streams/duplexify.js b/lib/internal/streams/duplexify.js index 808e89fa1..9ff4df964 100644 --- a/lib/internal/streams/duplexify.js +++ b/lib/internal/streams/duplexify.js @@ -1,4 +1,8 @@ -'use strict' +/* replacement start */ +const process = require('process') +/* replacement end */ + +;('use strict') const bufferModule = require('buffer') diff --git a/lib/internal/streams/end-of-stream.js b/lib/internal/streams/end-of-stream.js index 3bafd53b4..e3469de1d 100644 --- a/lib/internal/streams/end-of-stream.js +++ b/lib/internal/streams/end-of-stream.js @@ -1,6 +1,10 @@ +/* replacement start */ +const process = require('process') +/* replacement end */ // Ported from https://github.com/mafintosh/end-of-stream with // permission from the author, Mathias Buus (@mafintosh). -'use strict' + +;('use strict') const { AbortError, codes } = require('../../ours/errors') diff --git a/lib/internal/streams/from.js b/lib/internal/streams/from.js index 6d40ac0ae..2b91f3054 100644 --- a/lib/internal/streams/from.js +++ b/lib/internal/streams/from.js @@ -1,7 +1,13 @@ -'use strict' +/* replacement start */ +const process = require('process') +/* replacement end */ + +;('use strict') const { PromisePrototypeThen, SymbolAsyncIterator, SymbolIterator } = require('../../ours/primordials') +const { Buffer } = require('buffer') + const { ERR_INVALID_ARG_TYPE, ERR_STREAM_NULL_VALUES } = require('../../ours/errors').codes function from(Readable, iterable, opts) { diff --git a/lib/internal/streams/pipeline.js b/lib/internal/streams/pipeline.js index 5753f2e56..00bd98ae4 100644 --- a/lib/internal/streams/pipeline.js +++ b/lib/internal/streams/pipeline.js @@ -1,6 +1,10 @@ +/* replacement start */ +const process = require('process') +/* replacement end */ // Ported from https://github.com/mafintosh/pump with // permission from the author, Mathias Buus (@mafintosh). -'use strict' + +;('use strict') const { ArrayIsArray, Promise, SymbolAsyncIterator } = require('../../ours/primordials') diff --git a/lib/internal/streams/readable.js b/lib/internal/streams/readable.js index 9c263c8a6..5bbd3dfee 100644 --- a/lib/internal/streams/readable.js +++ b/lib/internal/streams/readable.js @@ -1,3 +1,6 @@ +/* replacement start */ +const process = require('process') +/* replacement end */ // Copyright Joyent, Inc. and other Node contributors. // // Permission is hereby granted, free of charge, to any person obtaining a @@ -18,7 +21,8 @@ // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE // USE OR OTHER DEALINGS IN THE SOFTWARE. -'use strict' + +;('use strict') const { ArrayPrototypeIndexOf, @@ -41,6 +45,8 @@ const { EventEmitter: EE } = require('events') const { Stream, prependListener } = require('./legacy') +const { Buffer } = require('buffer') + const { addAbortSignal } = require('./add-abort-signal') const eos = require('./end-of-stream') diff --git a/lib/internal/streams/writable.js b/lib/internal/streams/writable.js index ac97ec0d1..f21a0d567 100644 --- a/lib/internal/streams/writable.js +++ b/lib/internal/streams/writable.js @@ -1,3 +1,6 @@ +/* replacement start */ +const process = require('process') +/* replacement end */ // Copyright Joyent, Inc. and other Node contributors. // // Permission is hereby granted, free of charge, to any person obtaining a @@ -21,7 +24,8 @@ // A bit simpler than readable streams. // Implement an async ._write(chunk, encoding, cb), and it'll handle all // the drain event emission and buffering. -'use strict' + +;('use strict') const { ArrayPrototypeSlice, @@ -42,6 +46,8 @@ const { EventEmitter: EE } = require('events') const Stream = require('./legacy').Stream +const { Buffer } = require('buffer') + const destroyImpl = require('./destroy') const { addAbortSignal } = require('./add-abort-signal') diff --git a/lib/stream.js b/lib/stream.js index 311208630..05f592029 100644 --- a/lib/stream.js +++ b/lib/stream.js @@ -1,3 +1,6 @@ +/* replacement start */ +const { Buffer } = require('buffer') +/* replacement end */ // Copyright Joyent, Inc. and other Node contributors. // // Permission is hereby granted, free of charge, to any person obtaining a @@ -18,7 +21,8 @@ // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE // USE OR OTHER DEALINGS IN THE SOFTWARE. -'use strict' + +;('use strict') const { ObjectDefineProperty, ObjectKeys, ReflectApply } = require('./ours/primordials') diff --git a/package.json b/package.json index a760f3387..37fef3619 100644 --- a/package.json +++ b/package.json @@ -44,7 +44,10 @@ "lint": "eslint src" }, "dependencies": { - "abort-controller": "^3.0.0" + "abort-controller": "^3.0.0", + "buffer": "^6.0.3", + "events": "^3.3.0", + "process": "^0.11.10" }, "devDependencies": { "@babel/core": "^7.17.10", @@ -55,7 +58,6 @@ "@rollup/plugin-node-resolve": "^13.3.0", "@sinonjs/fake-timers": "^9.1.2", "browserify": "^17.0.0", - "buffer-es6": "^4.9.3", "c8": "^7.11.2", "esbuild": "^0.14.39", "esbuild-plugin-alias": "^0.2.1", @@ -66,7 +68,6 @@ "eslint-plugin-promise": "^6.0.0", "playwright": "^1.21.1", "prettier": "^2.6.2", - "process-es6": "^0.11.6", "rollup": "^2.72.1", "rollup-plugin-polyfill-node": "^0.9.0", "tap": "^16.2.0", diff --git a/src/test/browser/fixtures/esbuild-browsers-shims.mjs b/src/test/browser/fixtures/esbuild-browsers-shims.mjs index 9186f4074..cd789d3e5 100644 --- a/src/test/browser/fixtures/esbuild-browsers-shims.mjs +++ b/src/test/browser/fixtures/esbuild-browsers-shims.mjs @@ -1,8 +1,6 @@ -import * as bufferModule from 'buffer-es6' -import * as processModule from 'process-es6' +import * as processModule from 'process' export const process = processModule -export const Buffer = bufferModule.Buffer export function setImmediate(fn, ...args) { setTimeout(() => fn(...args), 1) diff --git a/src/test/browser/fixtures/rollup.browser.config.mjs b/src/test/browser/fixtures/rollup.browser.config.mjs index 43d0e9f4a..4a3080c35 100644 --- a/src/test/browser/fixtures/rollup.browser.config.mjs +++ b/src/test/browser/fixtures/rollup.browser.config.mjs @@ -16,8 +16,7 @@ export default { commonjs(), nodePolyfill(), inject({ - process: resolve('node_modules/process-es6/browser.js'), - Buffer: [resolve('node_modules/buffer-es6/index.js'), 'Buffer'] + process: resolve('node_modules/process/browser.js') }), nodeResolve({ browser: true, diff --git a/src/test/browser/fixtures/webpack.browser.config.mjs b/src/test/browser/fixtures/webpack.browser.config.mjs index cd40faa72..a2d889e0d 100644 --- a/src/test/browser/fixtures/webpack.browser.config.mjs +++ b/src/test/browser/fixtures/webpack.browser.config.mjs @@ -21,8 +21,7 @@ export default { raw: true }), new webpack.ProvidePlugin({ - process: require.resolve('process-es6'), - Buffer: [require.resolve('buffer-es6'), 'Buffer'] + process: require.resolve('process') }) ], resolve: { diff --git a/test/browser/fixtures/esbuild-browsers-shims.mjs b/test/browser/fixtures/esbuild-browsers-shims.mjs index 9186f4074..cd789d3e5 100644 --- a/test/browser/fixtures/esbuild-browsers-shims.mjs +++ b/test/browser/fixtures/esbuild-browsers-shims.mjs @@ -1,8 +1,6 @@ -import * as bufferModule from 'buffer-es6' -import * as processModule from 'process-es6' +import * as processModule from 'process' export const process = processModule -export const Buffer = bufferModule.Buffer export function setImmediate(fn, ...args) { setTimeout(() => fn(...args), 1) diff --git a/test/browser/fixtures/rollup.browser.config.mjs b/test/browser/fixtures/rollup.browser.config.mjs index 43d0e9f4a..4a3080c35 100644 --- a/test/browser/fixtures/rollup.browser.config.mjs +++ b/test/browser/fixtures/rollup.browser.config.mjs @@ -16,8 +16,7 @@ export default { commonjs(), nodePolyfill(), inject({ - process: resolve('node_modules/process-es6/browser.js'), - Buffer: [resolve('node_modules/buffer-es6/index.js'), 'Buffer'] + process: resolve('node_modules/process/browser.js') }), nodeResolve({ browser: true, diff --git a/test/browser/fixtures/webpack.browser.config.mjs b/test/browser/fixtures/webpack.browser.config.mjs index cd40faa72..a2d889e0d 100644 --- a/test/browser/fixtures/webpack.browser.config.mjs +++ b/test/browser/fixtures/webpack.browser.config.mjs @@ -21,8 +21,7 @@ export default { raw: true }), new webpack.ProvidePlugin({ - process: require.resolve('process-es6'), - Buffer: [require.resolve('buffer-es6'), 'Buffer'] + process: require.resolve('process') }) ], resolve: { diff --git a/test/browser/test-stream-big-packet.js b/test/browser/test-stream-big-packet.js index f01f59f68..c8fee501c 100644 --- a/test/browser/test-stream-big-packet.js +++ b/test/browser/test-stream-big-packet.js @@ -1,4 +1,8 @@ -'use strict' +/* replacement start */ +const { Buffer } = require('buffer') +/* replacement end */ + +;('use strict') const inherits = require('inherits') diff --git a/test/browser/test-stream-pipe-cleanup-pause.js b/test/browser/test-stream-pipe-cleanup-pause.js index 907551ed4..c00d33d3f 100644 --- a/test/browser/test-stream-pipe-cleanup-pause.js +++ b/test/browser/test-stream-pipe-cleanup-pause.js @@ -1,4 +1,8 @@ -'use strict' +/* replacement start */ +const { Buffer } = require('buffer') +/* replacement end */ + +;('use strict') const stream = require('../../lib/ours/index') diff --git a/test/browser/test-stream-pipeline.js b/test/browser/test-stream-pipeline.js index f1e2c18b3..9326c9449 100644 --- a/test/browser/test-stream-pipeline.js +++ b/test/browser/test-stream-pipeline.js @@ -1,4 +1,8 @@ -'use strict' +/* replacement start */ +const { Buffer } = require('buffer') +/* replacement end */ + +;('use strict') const { Readable, Writable, pipeline } = require('../../lib/ours/index') diff --git a/test/browser/test-stream-readable-event.js b/test/browser/test-stream-readable-event.js index 8784698a3..7473a6d50 100644 --- a/test/browser/test-stream-readable-event.js +++ b/test/browser/test-stream-readable-event.js @@ -1,4 +1,8 @@ -'use strict' +/* replacement start */ +const { Buffer } = require('buffer') +/* replacement end */ + +;('use strict') const { Readable } = require('../../lib/ours/index') diff --git a/test/browser/test-stream-transform-constructor-set-methods.js b/test/browser/test-stream-transform-constructor-set-methods.js index 257224c12..e2d3d9fa0 100644 --- a/test/browser/test-stream-transform-constructor-set-methods.js +++ b/test/browser/test-stream-transform-constructor-set-methods.js @@ -1,4 +1,8 @@ -'use strict' +/* replacement start */ +const { Buffer } = require('buffer') +/* replacement end */ + +;('use strict') const { Transform } = require('../../lib/ours/index') diff --git a/test/browser/test-stream-transform-split-objectmode.js b/test/browser/test-stream-transform-split-objectmode.js index 551dfcbe8..2518bbf1e 100644 --- a/test/browser/test-stream-transform-split-objectmode.js +++ b/test/browser/test-stream-transform-split-objectmode.js @@ -1,4 +1,8 @@ -'use strict' +/* replacement start */ +const { Buffer } = require('buffer') +/* replacement end */ + +;('use strict') const { Transform } = require('../../lib/ours/index') diff --git a/test/browser/test-stream-unshift-empty-chunk.js b/test/browser/test-stream-unshift-empty-chunk.js index e0494e255..daec1d0fc 100644 --- a/test/browser/test-stream-unshift-empty-chunk.js +++ b/test/browser/test-stream-unshift-empty-chunk.js @@ -1,4 +1,8 @@ -'use strict' +/* replacement start */ +const { Buffer } = require('buffer') +/* replacement end */ + +;('use strict') const { Readable } = require('../../lib/ours/index') diff --git a/test/browser/test-stream-unshift-read-race.js b/test/browser/test-stream-unshift-read-race.js index 3e68b3cfd..ccd87796b 100644 --- a/test/browser/test-stream-unshift-read-race.js +++ b/test/browser/test-stream-unshift-read-race.js @@ -1,4 +1,8 @@ -'use strict' // This test verifies that: +/* replacement start */ +const { Buffer } = require('buffer') +/* replacement end */ + +;('use strict') // This test verifies that: // 1. unshift() does not cause colliding _read() calls. // 2. unshift() after the 'end' event is an error, but after the EOF // signalling null, it is ok, and just creates a new readable chunk. diff --git a/test/browser/test-stream-writable-change-default-encoding.js b/test/browser/test-stream-writable-change-default-encoding.js index 54426e56d..3797e13e3 100644 --- a/test/browser/test-stream-writable-change-default-encoding.js +++ b/test/browser/test-stream-writable-change-default-encoding.js @@ -1,4 +1,8 @@ -'use strict' +/* replacement start */ +const { Buffer } = require('buffer') +/* replacement end */ + +;('use strict') const inherits = require('inherits') diff --git a/test/browser/test-stream-writable-constructor-set-methods.js b/test/browser/test-stream-writable-constructor-set-methods.js index d8beab46b..d45d7094f 100644 --- a/test/browser/test-stream-writable-constructor-set-methods.js +++ b/test/browser/test-stream-writable-constructor-set-methods.js @@ -1,4 +1,8 @@ -'use strict' +/* replacement start */ +const { Buffer } = require('buffer') +/* replacement end */ + +;('use strict') const { Writable } = require('../../lib/ours/index') diff --git a/test/browser/test-stream-writable-decoded-encoding.js b/test/browser/test-stream-writable-decoded-encoding.js index 521b71fe6..e28e73028 100644 --- a/test/browser/test-stream-writable-decoded-encoding.js +++ b/test/browser/test-stream-writable-decoded-encoding.js @@ -1,4 +1,8 @@ -'use strict' +/* replacement start */ +const { Buffer } = require('buffer') +/* replacement end */ + +;('use strict') const inherits = require('inherits') diff --git a/test/browser/test-stream-writev.js b/test/browser/test-stream-writev.js index f8966ee1d..a423315a6 100644 --- a/test/browser/test-stream-writev.js +++ b/test/browser/test-stream-writev.js @@ -1,4 +1,8 @@ -'use strict' +/* replacement start */ +const { Buffer } = require('buffer') +/* replacement end */ + +;('use strict') const stream = require('../../lib/ours/index') diff --git a/test/browser/test-stream2-base64-single-char-read-end.js b/test/browser/test-stream2-base64-single-char-read-end.js index 10f8378a9..be825321c 100644 --- a/test/browser/test-stream2-base64-single-char-read-end.js +++ b/test/browser/test-stream2-base64-single-char-read-end.js @@ -1,4 +1,8 @@ -'use strict' +/* replacement start */ +const { Buffer } = require('buffer') +/* replacement end */ + +;('use strict') const { Readable, Writable } = require('../../lib/ours/index') diff --git a/test/browser/test-stream2-compatibility.js b/test/browser/test-stream2-compatibility.js index 940f8d1b0..3a9064aef 100644 --- a/test/browser/test-stream2-compatibility.js +++ b/test/browser/test-stream2-compatibility.js @@ -1,4 +1,8 @@ -'use strict' +/* replacement start */ +const { Buffer } = require('buffer') +/* replacement end */ + +;('use strict') const inherits = require('inherits') diff --git a/test/browser/test-stream2-large-read-stall.js b/test/browser/test-stream2-large-read-stall.js index ee7ee033f..ce153d149 100644 --- a/test/browser/test-stream2-large-read-stall.js +++ b/test/browser/test-stream2-large-read-stall.js @@ -1,4 +1,8 @@ -'use strict' +/* replacement start */ +const { Buffer } = require('buffer') +/* replacement end */ + +;('use strict') const { Readable } = require('../../lib/ours/index') diff --git a/test/browser/test-stream2-pipe-error-handling.js b/test/browser/test-stream2-pipe-error-handling.js index 2dd3e3182..b3c98b406 100644 --- a/test/browser/test-stream2-pipe-error-handling.js +++ b/test/browser/test-stream2-pipe-error-handling.js @@ -1,4 +1,8 @@ -'use strict' +/* replacement start */ +const { Buffer } = require('buffer') +/* replacement end */ + +;('use strict') const stream = require('../../lib/ours/index') diff --git a/test/browser/test-stream2-readable-empty-buffer-no-eof.js b/test/browser/test-stream2-readable-empty-buffer-no-eof.js index 1a7b611b3..f1bf9c52c 100644 --- a/test/browser/test-stream2-readable-empty-buffer-no-eof.js +++ b/test/browser/test-stream2-readable-empty-buffer-no-eof.js @@ -1,4 +1,8 @@ -'use strict' +/* replacement start */ +const { Buffer } = require('buffer') +/* replacement end */ + +;('use strict') const { Readable } = require('../../lib/ours/index') diff --git a/test/browser/test-stream2-readable-from-list.js b/test/browser/test-stream2-readable-from-list.js index 92c607d86..4b7f6f8f4 100644 --- a/test/browser/test-stream2-readable-from-list.js +++ b/test/browser/test-stream2-readable-from-list.js @@ -1,4 +1,8 @@ -'use strict' +/* replacement start */ +const { Buffer } = require('buffer') +/* replacement end */ + +;('use strict') const { _fromList: fromList } = require('../../lib/_stream_readable') diff --git a/test/browser/test-stream2-readable-legacy-drain.js b/test/browser/test-stream2-readable-legacy-drain.js index 4bff8d7af..d1c154cdf 100644 --- a/test/browser/test-stream2-readable-legacy-drain.js +++ b/test/browser/test-stream2-readable-legacy-drain.js @@ -1,4 +1,8 @@ -'use strict' +/* replacement start */ +const { Buffer } = require('buffer') +/* replacement end */ + +;('use strict') const { Stream, Readable } = require('../../lib/ours/index') diff --git a/test/browser/test-stream2-readable-non-empty-end.js b/test/browser/test-stream2-readable-non-empty-end.js index 7a3e56b77..13ae576c5 100644 --- a/test/browser/test-stream2-readable-non-empty-end.js +++ b/test/browser/test-stream2-readable-non-empty-end.js @@ -1,4 +1,8 @@ -'use strict' +/* replacement start */ +const { Buffer } = require('buffer') +/* replacement end */ + +;('use strict') const { Readable } = require('../../lib/ours/index') diff --git a/test/browser/test-stream2-readable-wrap.js b/test/browser/test-stream2-readable-wrap.js index 73a21b400..a23bdb2ff 100644 --- a/test/browser/test-stream2-readable-wrap.js +++ b/test/browser/test-stream2-readable-wrap.js @@ -1,4 +1,8 @@ -'use strict' +/* replacement start */ +const { Buffer } = require('buffer') +/* replacement end */ + +;('use strict') const { EventEmitter: EE } = require('events') diff --git a/test/browser/test-stream2-set-encoding.js b/test/browser/test-stream2-set-encoding.js index c1ef6cd2e..80b131876 100644 --- a/test/browser/test-stream2-set-encoding.js +++ b/test/browser/test-stream2-set-encoding.js @@ -1,4 +1,8 @@ -'use strict' +/* replacement start */ +const { Buffer } = require('buffer') +/* replacement end */ + +;('use strict') const inherits = require('inherits') diff --git a/test/browser/test-stream2-transform.js b/test/browser/test-stream2-transform.js index 613e4b133..8cb50a7b8 100644 --- a/test/browser/test-stream2-transform.js +++ b/test/browser/test-stream2-transform.js @@ -1,4 +1,8 @@ -'use strict' +/* replacement start */ +const { Buffer } = require('buffer') +/* replacement end */ + +;('use strict') const { PassThrough, Transform } = require('../../lib/ours/index') diff --git a/test/browser/test-stream2-writable.js b/test/browser/test-stream2-writable.js index 0e5c9c756..085af2ed5 100644 --- a/test/browser/test-stream2-writable.js +++ b/test/browser/test-stream2-writable.js @@ -1,4 +1,8 @@ -'use strict' +/* replacement start */ +const { Buffer } = require('buffer') +/* replacement end */ + +;('use strict') const inherits = require('inherits') diff --git a/test/browser/test-stream3-pause-then-read.js b/test/browser/test-stream3-pause-then-read.js index 494dacf1d..c00176b22 100644 --- a/test/browser/test-stream3-pause-then-read.js +++ b/test/browser/test-stream3-pause-then-read.js @@ -1,4 +1,8 @@ -'use strict' +/* replacement start */ +const { Buffer } = require('buffer') +/* replacement end */ + +;('use strict') const { Readable, Writable } = require('../../lib/ours/index') From 4020e2b106e13c751d60edb4522f1c32effd4ab8 Mon Sep 17 00:00:00 2001 From: bergi Date: Thu, 15 Sep 2022 14:30:09 +0200 Subject: [PATCH 2/3] fix: added missing process file for browserify bug workaround --- process | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 process diff --git a/process b/process new file mode 100644 index 000000000..7e2eb9531 --- /dev/null +++ b/process @@ -0,0 +1,3 @@ +// workaround for browserify bug: https://github.com/browserify/browserify/issues/1986 + +module.exports = require('./node_modules/process') From 11d6cf091b6e0c24979d75d6ee70eb47f2ffebe1 Mon Sep 17 00:00:00 2001 From: bergi Date: Mon, 19 Sep 2022 22:32:53 +0200 Subject: [PATCH 3/3] fix: patch code after use strict --- build/build.mjs | 7 ++++++- lib/internal/streams/destroy.js | 5 +++-- lib/internal/streams/from.js | 5 +++-- test/browser/test-stream-big-packet.js | 4 ++-- test/browser/test-stream-pipe-cleanup-pause.js | 4 ++-- test/browser/test-stream-pipeline.js | 4 ++-- test/browser/test-stream-readable-event.js | 4 ++-- .../test-stream-transform-constructor-set-methods.js | 4 ++-- test/browser/test-stream-transform-split-objectmode.js | 4 ++-- test/browser/test-stream-unshift-empty-chunk.js | 4 ++-- test/browser/test-stream-unshift-read-race.js | 5 +++-- .../test-stream-writable-change-default-encoding.js | 4 ++-- .../test-stream-writable-constructor-set-methods.js | 4 ++-- test/browser/test-stream-writable-decoded-encoding.js | 4 ++-- test/browser/test-stream-writev.js | 4 ++-- test/browser/test-stream2-base64-single-char-read-end.js | 4 ++-- test/browser/test-stream2-compatibility.js | 4 ++-- test/browser/test-stream2-large-read-stall.js | 4 ++-- test/browser/test-stream2-pipe-error-handling.js | 4 ++-- test/browser/test-stream2-readable-empty-buffer-no-eof.js | 4 ++-- test/browser/test-stream2-readable-from-list.js | 4 ++-- test/browser/test-stream2-readable-legacy-drain.js | 4 ++-- test/browser/test-stream2-readable-non-empty-end.js | 4 ++-- test/browser/test-stream2-readable-wrap.js | 4 ++-- test/browser/test-stream2-set-encoding.js | 4 ++-- test/browser/test-stream2-transform.js | 4 ++-- test/browser/test-stream2-writable.js | 4 ++-- test/browser/test-stream3-pause-then-read.js | 4 ++-- 28 files changed, 63 insertions(+), 55 deletions(-) diff --git a/build/build.mjs b/build/build.mjs index c5374fd67..b990fd327 100644 --- a/build/build.mjs +++ b/build/build.mjs @@ -15,6 +15,7 @@ import { headers } from './headers.mjs' import { replacements } from './replacements.mjs' const baseMatcher = /^(?:lib|test)/ +const strictMatcher = /^(['"']use strict.+)/ function highlightFile(file, color) { return `\x1b[${color}m${file.replace(process.cwd() + '/', '')}\x1b[0m` @@ -101,7 +102,11 @@ async function processFiles(contents) { for (const footerKey of matchingHeaders) { for (const header of headers[footerKey]) { - content = header + content + if (content.match(strictMatcher)) { + content = content.replace(strictMatcher, `$&;${header}`) + } else { + content = header + content + } } } } diff --git a/lib/internal/streams/destroy.js b/lib/internal/streams/destroy.js index f84484702..505a3e2c3 100644 --- a/lib/internal/streams/destroy.js +++ b/lib/internal/streams/destroy.js @@ -1,9 +1,10 @@ +'use strict' + /* replacement start */ + const process = require('process') /* replacement end */ -;('use strict') - const { aggregateTwoErrors, codes: { ERR_MULTIPLE_CALLBACK }, diff --git a/lib/internal/streams/from.js b/lib/internal/streams/from.js index 2b91f3054..89ce1a8be 100644 --- a/lib/internal/streams/from.js +++ b/lib/internal/streams/from.js @@ -1,9 +1,10 @@ +'use strict' + /* replacement start */ + const process = require('process') /* replacement end */ -;('use strict') - const { PromisePrototypeThen, SymbolAsyncIterator, SymbolIterator } = require('../../ours/primordials') const { Buffer } = require('buffer') diff --git a/test/browser/test-stream-big-packet.js b/test/browser/test-stream-big-packet.js index c8fee501c..180419dc6 100644 --- a/test/browser/test-stream-big-packet.js +++ b/test/browser/test-stream-big-packet.js @@ -1,9 +1,9 @@ +'use strict' /* replacement start */ + const { Buffer } = require('buffer') /* replacement end */ -;('use strict') - const inherits = require('inherits') const { Transform } = require('../../lib/ours/index') diff --git a/test/browser/test-stream-pipe-cleanup-pause.js b/test/browser/test-stream-pipe-cleanup-pause.js index c00d33d3f..c01dc8c41 100644 --- a/test/browser/test-stream-pipe-cleanup-pause.js +++ b/test/browser/test-stream-pipe-cleanup-pause.js @@ -1,9 +1,9 @@ +'use strict' /* replacement start */ + const { Buffer } = require('buffer') /* replacement end */ -;('use strict') - const stream = require('../../lib/ours/index') const { kReadableStreamSuiteName } = require('./symbols') diff --git a/test/browser/test-stream-pipeline.js b/test/browser/test-stream-pipeline.js index 9326c9449..9528eeeeb 100644 --- a/test/browser/test-stream-pipeline.js +++ b/test/browser/test-stream-pipeline.js @@ -1,9 +1,9 @@ +'use strict' /* replacement start */ + const { Buffer } = require('buffer') /* replacement end */ -;('use strict') - const { Readable, Writable, pipeline } = require('../../lib/ours/index') const { kReadableStreamSuiteName, kReadableStreamSuiteHasMultipleTests } = require('./symbols') diff --git a/test/browser/test-stream-readable-event.js b/test/browser/test-stream-readable-event.js index 7473a6d50..42b6246f7 100644 --- a/test/browser/test-stream-readable-event.js +++ b/test/browser/test-stream-readable-event.js @@ -1,9 +1,9 @@ +'use strict' /* replacement start */ + const { Buffer } = require('buffer') /* replacement end */ -;('use strict') - const { Readable } = require('../../lib/ours/index') const { kReadableStreamSuiteName, kReadableStreamSuiteHasMultipleTests } = require('./symbols') diff --git a/test/browser/test-stream-transform-constructor-set-methods.js b/test/browser/test-stream-transform-constructor-set-methods.js index e2d3d9fa0..44609a0a5 100644 --- a/test/browser/test-stream-transform-constructor-set-methods.js +++ b/test/browser/test-stream-transform-constructor-set-methods.js @@ -1,9 +1,9 @@ +'use strict' /* replacement start */ + const { Buffer } = require('buffer') /* replacement end */ -;('use strict') - const { Transform } = require('../../lib/ours/index') const { kReadableStreamSuiteName } = require('./symbols') diff --git a/test/browser/test-stream-transform-split-objectmode.js b/test/browser/test-stream-transform-split-objectmode.js index 2518bbf1e..6c6a41cd4 100644 --- a/test/browser/test-stream-transform-split-objectmode.js +++ b/test/browser/test-stream-transform-split-objectmode.js @@ -1,9 +1,9 @@ +'use strict' /* replacement start */ + const { Buffer } = require('buffer') /* replacement end */ -;('use strict') - const { Transform } = require('../../lib/ours/index') const { kReadableStreamSuiteName } = require('./symbols') diff --git a/test/browser/test-stream-unshift-empty-chunk.js b/test/browser/test-stream-unshift-empty-chunk.js index daec1d0fc..b1f2ff263 100644 --- a/test/browser/test-stream-unshift-empty-chunk.js +++ b/test/browser/test-stream-unshift-empty-chunk.js @@ -1,9 +1,9 @@ +'use strict' /* replacement start */ + const { Buffer } = require('buffer') /* replacement end */ -;('use strict') - const { Readable } = require('../../lib/ours/index') const { kReadableStreamSuiteName } = require('./symbols') diff --git a/test/browser/test-stream-unshift-read-race.js b/test/browser/test-stream-unshift-read-race.js index ccd87796b..a58b15878 100644 --- a/test/browser/test-stream-unshift-read-race.js +++ b/test/browser/test-stream-unshift-read-race.js @@ -1,8 +1,9 @@ +'use strict' /* replacement start */ + const { Buffer } = require('buffer') /* replacement end */ - -;('use strict') // This test verifies that: +// This test verifies that: // 1. unshift() does not cause colliding _read() calls. // 2. unshift() after the 'end' event is an error, but after the EOF // signalling null, it is ok, and just creates a new readable chunk. diff --git a/test/browser/test-stream-writable-change-default-encoding.js b/test/browser/test-stream-writable-change-default-encoding.js index 3797e13e3..4d8ee37be 100644 --- a/test/browser/test-stream-writable-change-default-encoding.js +++ b/test/browser/test-stream-writable-change-default-encoding.js @@ -1,9 +1,9 @@ +'use strict' /* replacement start */ + const { Buffer } = require('buffer') /* replacement end */ -;('use strict') - const inherits = require('inherits') const stream = require('../../lib/ours/index') diff --git a/test/browser/test-stream-writable-constructor-set-methods.js b/test/browser/test-stream-writable-constructor-set-methods.js index d45d7094f..8065d938a 100644 --- a/test/browser/test-stream-writable-constructor-set-methods.js +++ b/test/browser/test-stream-writable-constructor-set-methods.js @@ -1,9 +1,9 @@ +'use strict' /* replacement start */ + const { Buffer } = require('buffer') /* replacement end */ -;('use strict') - const { Writable } = require('../../lib/ours/index') const { kReadableStreamSuiteName } = require('./symbols') diff --git a/test/browser/test-stream-writable-decoded-encoding.js b/test/browser/test-stream-writable-decoded-encoding.js index e28e73028..36d3219d8 100644 --- a/test/browser/test-stream-writable-decoded-encoding.js +++ b/test/browser/test-stream-writable-decoded-encoding.js @@ -1,9 +1,9 @@ +'use strict' /* replacement start */ + const { Buffer } = require('buffer') /* replacement end */ -;('use strict') - const inherits = require('inherits') const stream = require('../../lib/ours/index') diff --git a/test/browser/test-stream-writev.js b/test/browser/test-stream-writev.js index a423315a6..619369d7d 100644 --- a/test/browser/test-stream-writev.js +++ b/test/browser/test-stream-writev.js @@ -1,9 +1,9 @@ +'use strict' /* replacement start */ + const { Buffer } = require('buffer') /* replacement end */ -;('use strict') - const stream = require('../../lib/ours/index') const { kReadableStreamSuiteName, kReadableStreamSuiteHasMultipleTests } = require('./symbols') diff --git a/test/browser/test-stream2-base64-single-char-read-end.js b/test/browser/test-stream2-base64-single-char-read-end.js index be825321c..ce8a0ac0b 100644 --- a/test/browser/test-stream2-base64-single-char-read-end.js +++ b/test/browser/test-stream2-base64-single-char-read-end.js @@ -1,9 +1,9 @@ +'use strict' /* replacement start */ + const { Buffer } = require('buffer') /* replacement end */ -;('use strict') - const { Readable, Writable } = require('../../lib/ours/index') const { kReadableStreamSuiteName } = require('./symbols') diff --git a/test/browser/test-stream2-compatibility.js b/test/browser/test-stream2-compatibility.js index 3a9064aef..cbe76b1fb 100644 --- a/test/browser/test-stream2-compatibility.js +++ b/test/browser/test-stream2-compatibility.js @@ -1,9 +1,9 @@ +'use strict' /* replacement start */ + const { Buffer } = require('buffer') /* replacement end */ -;('use strict') - const inherits = require('inherits') const { Readable } = require('../../lib/ours/index') diff --git a/test/browser/test-stream2-large-read-stall.js b/test/browser/test-stream2-large-read-stall.js index ce153d149..590da1308 100644 --- a/test/browser/test-stream2-large-read-stall.js +++ b/test/browser/test-stream2-large-read-stall.js @@ -1,9 +1,9 @@ +'use strict' /* replacement start */ + const { Buffer } = require('buffer') /* replacement end */ -;('use strict') - const { Readable } = require('../../lib/ours/index') const { kReadableStreamSuiteName } = require('./symbols') diff --git a/test/browser/test-stream2-pipe-error-handling.js b/test/browser/test-stream2-pipe-error-handling.js index b3c98b406..cc30fab7d 100644 --- a/test/browser/test-stream2-pipe-error-handling.js +++ b/test/browser/test-stream2-pipe-error-handling.js @@ -1,9 +1,9 @@ +'use strict' /* replacement start */ + const { Buffer } = require('buffer') /* replacement end */ -;('use strict') - const stream = require('../../lib/ours/index') const { kReadableStreamSuiteName, kReadableStreamSuiteHasMultipleTests } = require('./symbols') diff --git a/test/browser/test-stream2-readable-empty-buffer-no-eof.js b/test/browser/test-stream2-readable-empty-buffer-no-eof.js index f1bf9c52c..f65a77f77 100644 --- a/test/browser/test-stream2-readable-empty-buffer-no-eof.js +++ b/test/browser/test-stream2-readable-empty-buffer-no-eof.js @@ -1,9 +1,9 @@ +'use strict' /* replacement start */ + const { Buffer } = require('buffer') /* replacement end */ -;('use strict') - const { Readable } = require('../../lib/ours/index') const { kReadableStreamSuiteName, kReadableStreamSuiteHasMultipleTests } = require('./symbols') diff --git a/test/browser/test-stream2-readable-from-list.js b/test/browser/test-stream2-readable-from-list.js index 4b7f6f8f4..a34430825 100644 --- a/test/browser/test-stream2-readable-from-list.js +++ b/test/browser/test-stream2-readable-from-list.js @@ -1,9 +1,9 @@ +'use strict' /* replacement start */ + const { Buffer } = require('buffer') /* replacement end */ -;('use strict') - const { _fromList: fromList } = require('../../lib/_stream_readable') const BufferList = require('../../lib/internal/streams/buffer_list') diff --git a/test/browser/test-stream2-readable-legacy-drain.js b/test/browser/test-stream2-readable-legacy-drain.js index d1c154cdf..f2faf8307 100644 --- a/test/browser/test-stream2-readable-legacy-drain.js +++ b/test/browser/test-stream2-readable-legacy-drain.js @@ -1,9 +1,9 @@ +'use strict' /* replacement start */ + const { Buffer } = require('buffer') /* replacement end */ -;('use strict') - const { Stream, Readable } = require('../../lib/ours/index') const { kReadableStreamSuiteName } = require('./symbols') diff --git a/test/browser/test-stream2-readable-non-empty-end.js b/test/browser/test-stream2-readable-non-empty-end.js index 13ae576c5..6040d14cc 100644 --- a/test/browser/test-stream2-readable-non-empty-end.js +++ b/test/browser/test-stream2-readable-non-empty-end.js @@ -1,9 +1,9 @@ +'use strict' /* replacement start */ + const { Buffer } = require('buffer') /* replacement end */ -;('use strict') - const { Readable } = require('../../lib/ours/index') const { kReadableStreamSuiteName } = require('./symbols') diff --git a/test/browser/test-stream2-readable-wrap.js b/test/browser/test-stream2-readable-wrap.js index a23bdb2ff..2b453a215 100644 --- a/test/browser/test-stream2-readable-wrap.js +++ b/test/browser/test-stream2-readable-wrap.js @@ -1,9 +1,9 @@ +'use strict' /* replacement start */ + const { Buffer } = require('buffer') /* replacement end */ -;('use strict') - const { EventEmitter: EE } = require('events') const { Readable, Writable } = require('../../lib/ours/index') diff --git a/test/browser/test-stream2-set-encoding.js b/test/browser/test-stream2-set-encoding.js index 80b131876..cb697e07f 100644 --- a/test/browser/test-stream2-set-encoding.js +++ b/test/browser/test-stream2-set-encoding.js @@ -1,9 +1,9 @@ +'use strict' /* replacement start */ + const { Buffer } = require('buffer') /* replacement end */ -;('use strict') - const inherits = require('inherits') const { Readable } = require('../../lib/ours/index') diff --git a/test/browser/test-stream2-transform.js b/test/browser/test-stream2-transform.js index 8cb50a7b8..a78cf02f7 100644 --- a/test/browser/test-stream2-transform.js +++ b/test/browser/test-stream2-transform.js @@ -1,9 +1,9 @@ +'use strict' /* replacement start */ + const { Buffer } = require('buffer') /* replacement end */ -;('use strict') - const { PassThrough, Transform } = require('../../lib/ours/index') const { kReadableStreamSuiteName, kReadableStreamSuiteHasMultipleTests } = require('./symbols') diff --git a/test/browser/test-stream2-writable.js b/test/browser/test-stream2-writable.js index 085af2ed5..3cd3dd207 100644 --- a/test/browser/test-stream2-writable.js +++ b/test/browser/test-stream2-writable.js @@ -1,9 +1,9 @@ +'use strict' /* replacement start */ + const { Buffer } = require('buffer') /* replacement end */ -;('use strict') - const inherits = require('inherits') const { Duplex, Writable } = require('../../lib/ours/index') diff --git a/test/browser/test-stream3-pause-then-read.js b/test/browser/test-stream3-pause-then-read.js index c00176b22..52455680f 100644 --- a/test/browser/test-stream3-pause-then-read.js +++ b/test/browser/test-stream3-pause-then-read.js @@ -1,9 +1,9 @@ +'use strict' /* replacement start */ + const { Buffer } = require('buffer') /* replacement end */ -;('use strict') - const { Readable, Writable } = require('../../lib/ours/index') const { kReadableStreamSuiteName } = require('./symbols')