From ee0782b538e27d898adbad20a29b46e189d151e0 Mon Sep 17 00:00:00 2001 From: Max Schmitt Date: Sat, 4 Jun 2022 17:49:35 +0200 Subject: [PATCH] fix: hide DeprecationWarning of fd-slicer (#14638) --- packages/playwright-core/bundles/zip/build.js | 49 +++++++++++++++++++ .../playwright-core/bundles/zip/package.json | 2 +- 2 files changed, 50 insertions(+), 1 deletion(-) create mode 100644 packages/playwright-core/bundles/zip/build.js diff --git a/packages/playwright-core/bundles/zip/build.js b/packages/playwright-core/bundles/zip/build.js new file mode 100644 index 0000000000..62fd998893 --- /dev/null +++ b/packages/playwright-core/bundles/zip/build.js @@ -0,0 +1,49 @@ +/** + * Copyright (c) Microsoft Corporation. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +// @ts-check +const path = require('path'); +const fs = require('fs'); +const esbuild = require('esbuild'); + +// Can be removed once https://github.com/thejoshwolfe/yauzl/issues/114 is fixed. +/** @type{import('esbuild').Plugin} */ +let patchFdSlicerToHideBufferDeprecationWarning = { + name: 'patch-fd-slicer-deprecation', + setup(build) { + build.onResolve({ filter: /fd-slicer/ }, () => { + const originalPath = require.resolve('fd-slicer'); + const patchedPath = path.join(path.dirname(originalPath), path.basename(originalPath, '.js') + '.pw-patched.js'); + let sourceFileContent = fs.readFileSync(originalPath, 'utf8') + sourceFileContent = sourceFileContent.replace(/new Buffer\(toRead\)/g, 'Buffer.alloc(toRead)'); + fs.writeFileSync(patchedPath, sourceFileContent); + return { path: patchedPath } + }); + }, +} + +esbuild.build({ + entryPoints: [path.join(__dirname, 'src/zipBundleImpl.ts')], + bundle: true, + outdir: path.join(__dirname, '../../lib'), + plugins: [patchFdSlicerToHideBufferDeprecationWarning], + format: 'cjs', + platform: 'node', + target: 'ES2019', + watch: process.argv.includes('--watch'), + sourcemap: process.argv.includes('--sourcemap'), + minify: process.argv.includes('--minify'), +}).catch(() => process.exit(1)); diff --git a/packages/playwright-core/bundles/zip/package.json b/packages/playwright-core/bundles/zip/package.json index 677c327c44..3ce5dd95ed 100644 --- a/packages/playwright-core/bundles/zip/package.json +++ b/packages/playwright-core/bundles/zip/package.json @@ -3,7 +3,7 @@ "version": "0.0.1", "private": true, "scripts": { - "esbuild": "esbuild ./src/zipBundleImpl.ts --bundle --outdir=../../lib --format=cjs --platform=node --target=ES2019", + "esbuild": "node build.js", "build": "npm ci && npm run esbuild -- --minify", "watch": "npm ci && npm run esbuild -- --watch --sourcemap", "generate-license": "node ../../../../utils/generate_third_party_notice.js"