From d16e919fafa03f7434182df4361ff097948f4700 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 24 Dec 2025 01:02:24 +0000 Subject: [PATCH] Optimize setup script to skip if packages already exist Co-authored-by: johndoe6345789 <224850594+johndoe6345789@users.noreply.github.com> --- package-lock.json | 1 + scripts/setup-packages.cjs | 26 ++++++++++++++++++++++++++ 2 files changed, 27 insertions(+) diff --git a/package-lock.json b/package-lock.json index 4e8482a09..040027ea8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -7,6 +7,7 @@ "": { "name": "spark-template", "version": "0.0.0", + "hasInstallScript": true, "dependencies": { "@github/spark": ">=0.43.1 <1", "@heroicons/react": "^2.2.0", diff --git a/scripts/setup-packages.cjs b/scripts/setup-packages.cjs index 9b89d91ff..8a87a39e8 100755 --- a/scripts/setup-packages.cjs +++ b/scripts/setup-packages.cjs @@ -1,5 +1,7 @@ #!/usr/bin/env node +'use strict'; + /** * Setup script for creating the packages folder structure * This creates placeholder files for all packages referenced in package-glue.ts @@ -50,6 +52,30 @@ const packages = [ } ]; +// Check if all packages already exist (optimization for postinstall) +function allPackagesExist() { + if (!fs.existsSync(packagesDir)) { + return false; + } + + for (const pkg of packages) { + const componentsPath = path.join(packagesDir, pkg.id, 'seed', 'components.json'); + const metadataPath = path.join(packagesDir, pkg.id, 'seed', 'metadata.json'); + + if (!fs.existsSync(componentsPath) || !fs.existsSync(metadataPath)) { + return false; + } + } + + return true; +} + +// Skip if everything is already set up +if (allPackagesExist()) { + console.log('✓ Packages folder already exists with all required packages.'); + process.exit(0); +} + console.log('Setting up packages folder...\n'); // Create packages directory if it doesn't exist