From 4d04d18f8667b5fb43f6471b2f9fb0fe59145608 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pavel=20=C5=BD=C3=A1k?= Date: Mon, 6 Feb 2023 15:50:32 +0100 Subject: [PATCH] fix: reuse initialized packages --- packages/isolate/IsolatedPackage.mjs | 1 + packages/isolate/IsolatedProject.mjs | 15 +++++++++++---- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/packages/isolate/IsolatedPackage.mjs b/packages/isolate/IsolatedPackage.mjs index a5e80f5..028b5aa 100644 --- a/packages/isolate/IsolatedPackage.mjs +++ b/packages/isolate/IsolatedPackage.mjs @@ -95,6 +95,7 @@ export class IsolatedPackage extends Package { const manifest = await this.readManifest() this.cfg = resolveFlags(manifest) } + return this } async configurePackage() { diff --git a/packages/isolate/IsolatedProject.mjs b/packages/isolate/IsolatedProject.mjs index a5d9adf..4473c54 100644 --- a/packages/isolate/IsolatedProject.mjs +++ b/packages/isolate/IsolatedProject.mjs @@ -9,6 +9,7 @@ export class IsolatedProject extends Project { constructor(root, { reporter } = {}) { super(root) this.isolated = {} + this.mappedPackages = null this.onProgress = null this.products = [] this.reporter = reporter @@ -17,10 +18,16 @@ export class IsolatedProject extends Project { } async getPackages() { - const bare = await super.getPackages() - return bare.map(pkg => - IsolatedPackage.from(pkg, { project: this, reporter: this.reporter }) - ) + if (!this.mappedPackages) { + const bare = await super.getPackages() + const mapped = bare.map(pkg => + IsolatedPackage.from(pkg, { project: this, reporter: this.reporter }) + ) + this.mappedPackages = await Promise.all( + mapped.map(pkg => pkg.initialize()) + ) + } + return this.mappedPackages } async getPackageNames() {