From de43dd6ef7f412a0ee8fbc824868545664df5399 Mon Sep 17 00:00:00 2001 From: Rishabh Bhandari Date: Sun, 26 Feb 2023 22:21:34 +0530 Subject: [PATCH 1/3] removing obsolete methods from Readable class Signed-off-by: Rishabh Bhandari --- build/build.mjs | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/build/build.mjs b/build/build.mjs index b990fd327..893ab1866 100644 --- a/build/build.mjs +++ b/build/build.mjs @@ -1,5 +1,5 @@ import { transform } from '@babel/core' -import { createReadStream } from 'node:fs' +import { createReadStream, writeFileSync } from 'node:fs' import { mkdir, readdir, readFile, rm, writeFile } from 'node:fs/promises' import { dirname, resolve } from 'node:path' import process from 'node:process' @@ -172,6 +172,17 @@ async function main() { await rm('lib', { recursive: true, force: true }) await rm('test', { recursive: true, force: true }) + // remove obsolete methods from readable-stream + const methodNameToRemove = ['fromWeb', 'toWeb'] + const readableStreamPath = resolve(__dirname, '../lib/internal/streams/readable.js') + let readableStreamContent = await readFile(readableStreamPath, 'utf-8') + + for (const method of methodNameToRemove) { + const regex = new RegExp(`Readable.+${method} = function\\s\\s*\\([^)]*\\)\\s*{[^}]*}`, 'g') + readableStreamContent = readableStreamContent.replace(regex, '') + writeFileSync(readableStreamPath, readableStreamContent, 'utf8') + } + // Download or open the tar file let tarFile From 651395a62e8a5361cdd9cd361887018b317163e2 Mon Sep 17 00:00:00 2001 From: Rishabh Bhandari Date: Mon, 27 Feb 2023 16:55:18 +0530 Subject: [PATCH 2/3] moved the logic to replacements.mjs Signed-off-by: Rishabh Bhandari --- build/build.mjs | 13 +++---------- build/replacements.mjs | 15 +++++++++++++++ 2 files changed, 18 insertions(+), 10 deletions(-) diff --git a/build/build.mjs b/build/build.mjs index 893ab1866..5d84f1bcd 100644 --- a/build/build.mjs +++ b/build/build.mjs @@ -12,7 +12,7 @@ import prettierConfig from '../prettier.config.cjs' import { aliases, skippedSources, sources } from './files.mjs' import { footers } from './footers.mjs' import { headers } from './headers.mjs' -import { replacements } from './replacements.mjs' +import { replacements, removeObsoleteReadableMethods } from './replacements.mjs' const baseMatcher = /^(?:lib|test)/ const strictMatcher = /^(['"']use strict.+)/ @@ -173,15 +173,8 @@ async function main() { await rm('test', { recursive: true, force: true }) // remove obsolete methods from readable-stream - const methodNameToRemove = ['fromWeb', 'toWeb'] - const readableStreamPath = resolve(__dirname, '../lib/internal/streams/readable.js') - let readableStreamContent = await readFile(readableStreamPath, 'utf-8') - - for (const method of methodNameToRemove) { - const regex = new RegExp(`Readable.+${method} = function\\s\\s*\\([^)]*\\)\\s*{[^}]*}`, 'g') - readableStreamContent = readableStreamContent.replace(regex, '') - writeFileSync(readableStreamPath, readableStreamContent, 'utf8') - } + const methodNamesToRemove = ['fromWeb', 'toWeb'] + await removeObsoleteReadableMethods(methodNamesToRemove) // Download or open the tar file let tarFile diff --git a/build/replacements.mjs b/build/replacements.mjs index 293b4815a..5b7e75ec2 100644 --- a/build/replacements.mjs +++ b/build/replacements.mjs @@ -1,3 +1,7 @@ +import { resolve } from 'node:path' +import { writeFileSync } from 'node:fs' +import { readFile } from 'node:fs/promises' + const legacyStreamsRequireStream = ["require\\('stream'\\)", "require('./stream')"] const internalStreamsBufferPolyfill = [ @@ -152,6 +156,17 @@ const testParallelIncludeTap = [ const testParallelImportStreamInMjs = [" from 'stream';", "from '../../lib/ours/index.js';"] +export const removeObsoleteReadableMethods = async function(methodNames) { + const readableStreamPath = resolve(__dirname, '../lib/internal/streams/readable.js') + let readableStreamContent = await readFile(readableStreamPath, 'utf-8') + + for (const method of methodNames) { + const regex = new RegExp(`Readable.+${method} = function\\s\\s*\\([^)]*\\)\\s*{[^}]*}`, 'g') + readableStreamContent = readableStreamContent.replace(regex, '') + writeFileSync(readableStreamPath, readableStreamContent, 'utf8') + } +} + const testParallelImportTapInMjs = ["(from 'assert';)", "$1\nimport tap from 'tap';"] const testParallelDuplexFromBlob = [ From 13f8c6435a27124fb637c8c0e0cfe6b3355caa94 Mon Sep 17 00:00:00 2001 From: Rishabh Bhandari Date: Mon, 27 Feb 2023 20:41:22 +0530 Subject: [PATCH 3/3] using the replacements.mjs logic Signed-off-by: Rishabh Bhandari --- build/build.mjs | 8 ++------ build/replacements.mjs | 23 ++++++++--------------- 2 files changed, 10 insertions(+), 21 deletions(-) diff --git a/build/build.mjs b/build/build.mjs index 5d84f1bcd..b990fd327 100644 --- a/build/build.mjs +++ b/build/build.mjs @@ -1,5 +1,5 @@ import { transform } from '@babel/core' -import { createReadStream, writeFileSync } from 'node:fs' +import { createReadStream } from 'node:fs' import { mkdir, readdir, readFile, rm, writeFile } from 'node:fs/promises' import { dirname, resolve } from 'node:path' import process from 'node:process' @@ -12,7 +12,7 @@ import prettierConfig from '../prettier.config.cjs' import { aliases, skippedSources, sources } from './files.mjs' import { footers } from './footers.mjs' import { headers } from './headers.mjs' -import { replacements, removeObsoleteReadableMethods } from './replacements.mjs' +import { replacements } from './replacements.mjs' const baseMatcher = /^(?:lib|test)/ const strictMatcher = /^(['"']use strict.+)/ @@ -172,10 +172,6 @@ async function main() { await rm('lib', { recursive: true, force: true }) await rm('test', { recursive: true, force: true }) - // remove obsolete methods from readable-stream - const methodNamesToRemove = ['fromWeb', 'toWeb'] - await removeObsoleteReadableMethods(methodNamesToRemove) - // Download or open the tar file let tarFile diff --git a/build/replacements.mjs b/build/replacements.mjs index 5b7e75ec2..aea2876ea 100644 --- a/build/replacements.mjs +++ b/build/replacements.mjs @@ -1,7 +1,3 @@ -import { resolve } from 'node:path' -import { writeFileSync } from 'node:fs' -import { readFile } from 'node:fs/promises' - const legacyStreamsRequireStream = ["require\\('stream'\\)", "require('./stream')"] const internalStreamsBufferPolyfill = [ @@ -156,17 +152,6 @@ const testParallelIncludeTap = [ const testParallelImportStreamInMjs = [" from 'stream';", "from '../../lib/ours/index.js';"] -export const removeObsoleteReadableMethods = async function(methodNames) { - const readableStreamPath = resolve(__dirname, '../lib/internal/streams/readable.js') - let readableStreamContent = await readFile(readableStreamPath, 'utf-8') - - for (const method of methodNames) { - const regex = new RegExp(`Readable.+${method} = function\\s\\s*\\([^)]*\\)\\s*{[^}]*}`, 'g') - readableStreamContent = readableStreamContent.replace(regex, '') - writeFileSync(readableStreamPath, readableStreamContent, 'utf8') - } -} - const testParallelImportTapInMjs = ["(from 'assert';)", "$1\nimport tap from 'tap';"] const testParallelDuplexFromBlob = [ @@ -231,6 +216,10 @@ const testParallelTicksReenableConsoleLog = ['silentConsole.log\\(i\\);', 'conso const testParallelTickSaveHook = ['async_hooks.createHook\\(\\{', 'const hook = async_hooks.createHook({'] +const removefromWebReadableMethod = ['Readable.fromWeb = function\\s\\s*\\([^)]*\\)\\s*{[^}]*}', ''] + +const removetoWebReadableMethod = ['Readable.toWeb = function\\s\\s*\\([^)]*\\)\\s*{[^}]*}', ''] + const readmeInfo = ['(This package is a mirror of the streams implementations in Node.js) (\\d+.\\d+.\\d+).', '$1 $2.'] const readmeLink = ['(\\[Node.js website\\]\\(https://nodejs.org/dist/v)(\\d+.\\d+.\\d+)', '$1$2'] @@ -247,6 +236,10 @@ export const replacements = { internalStreamsAbortControllerPolyfill, internalStreamsNoRequireAbortController ], + 'lib/internal/streams/readable.js': [ + removefromWebReadableMethod, + removetoWebReadableMethod + ], 'lib/internal/streams/.+': [ internalStreamsRequireErrors, internalStreamsRequireEventEmitter,