From 0be6f3192084fa81717fd51a6458e3214b20c82b Mon Sep 17 00:00:00 2001 From: "Henrique A. Schmaiske" Date: Tue, 7 Mar 2023 15:05:50 -0300 Subject: [PATCH 1/2] fix hmr compare --- .../babel-compiler/.npm/package/npm-shrinkwrap.json | 2 ++ tools/runners/run-hmr.js | 12 +++++++----- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/packages/babel-compiler/.npm/package/npm-shrinkwrap.json b/packages/babel-compiler/.npm/package/npm-shrinkwrap.json index 93f61b4302..5ed1c5ece3 100644 --- a/packages/babel-compiler/.npm/package/npm-shrinkwrap.json +++ b/packages/babel-compiler/.npm/package/npm-shrinkwrap.json @@ -3,6 +3,8 @@ "dependencies": { "@meteorjs/babel": { "version": "7.19.0-beta.1", + "resolved": "https://registry.npmjs.org/@meteorjs/babel/-/babel-7.19.0-beta.1.tgz", + "integrity": "sha512-4dy7oSXEo6Eb2PHfPkMX0VVnkQJ9Kb6Qv6/ssiXOqQRtTRpBAgeWeMzUd42u/8VzxG6l8NoNqIhPSOHZjC2usg==", "dependencies": { "@ampproject/remapping": { "version": "2.1.1", diff --git a/tools/runners/run-hmr.js b/tools/runners/run-hmr.js index a7625dbabd..466bc927cc 100644 --- a/tools/runners/run-hmr.js +++ b/tools/runners/run-hmr.js @@ -184,7 +184,7 @@ export class HMRServer { } } - compare({ name, arch, hmrAvailable, files, cacheKey }, getFileOutput) { + async compare({ name, arch, hmrAvailable, files, cacheKey }, getFileOutput) { if (this.firstBuild = null) { this.firstBuild = Date.now(); } @@ -248,9 +248,11 @@ export class HMRServer { onlyReplaceableChanges && removedFilePaths.length === 0; - function saveFileDetails(file) { + async function saveFileDetails(file) { + + const content = await getFileOutput(file); return { - content: getFileOutput(file).toStringWithSourceMap({}), + content: content.toStringWithSourceMap({}), path: file.absModuleId, meteorInstallOptions: file.meteorInstallOptions }; @@ -260,8 +262,8 @@ export class HMRServer { fileHashes, unreloadableHashes: unreloadable, reloadable, - addedFiles: reloadable ? addedFiles.map(saveFileDetails) : [], - changedFiles: reloadable ? changedFiles.map(saveFileDetails) : [], + addedFiles: reloadable ? await Promise.all(addedFiles.map(saveFileDetails)) : [], + changedFiles: reloadable ? await Promise.all(changedFiles.map(saveFileDetails)) : [], linkedAt: Date.now(), id: this._createId(), name From 4ac034b775bd79e5741faa74a37a285e2f5cc327 Mon Sep 17 00:00:00 2001 From: "Henrique A. Schmaiske" Date: Tue, 7 Mar 2023 18:12:22 -0300 Subject: [PATCH 2/2] improve addedFiles and changedFiles performance on HMR --- tools/runners/run-hmr.js | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/tools/runners/run-hmr.js b/tools/runners/run-hmr.js index 466bc927cc..c375d62f99 100644 --- a/tools/runners/run-hmr.js +++ b/tools/runners/run-hmr.js @@ -258,12 +258,26 @@ export class HMRServer { }; } + // TODO: try to improve the performance of this + const iterWithFn = async (iter, fn) => { + let arr = []; + for (let i = 0; i < iter.length; i++) { + try { + const d = await fn(iter[i]); + arr.push(d); + } catch (e) { + console.log(e); + } + } + return arr; + } + const result = { fileHashes, unreloadableHashes: unreloadable, reloadable, - addedFiles: reloadable ? await Promise.all(addedFiles.map(saveFileDetails)) : [], - changedFiles: reloadable ? await Promise.all(changedFiles.map(saveFileDetails)) : [], + addedFiles: reloadable ? await iterWithFn(addedFiles, saveFileDetails) : [], + changedFiles: reloadable ? await iterWithFn(changedFiles, saveFileDetails) : [], linkedAt: Date.now(), id: this._createId(), name