From 848c24209f4e7af89d210ae5d24ae12f05385e8c Mon Sep 17 00:00:00 2001 From: Fran Dios Date: Thu, 11 Apr 2024 12:27:39 +0200 Subject: [PATCH 1/9] Add missing dependency --- package-lock.json | 4 +++- packages/hydrogen/package.json | 3 ++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index 3cf53dfec9..e1a3cab4b3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -33314,7 +33314,8 @@ "@shopify/hydrogen-react": "2024.4.0", "content-security-policy-builder": "^2.1.1", "source-map-support": "^0.5.21", - "type-fest": "^4.5.0" + "type-fest": "^4.5.0", + "use-resize-observer": "^9.1.0" }, "devDependencies": { "@remix-run/react": "^2.8.0", @@ -41404,6 +41405,7 @@ "schema-dts": "^1.1.0", "source-map-support": "^0.5.21", "type-fest": "^4.5.0", + "use-resize-observer": "^9.1.0", "vitest": "^1.0.4" }, "dependencies": { diff --git a/packages/hydrogen/package.json b/packages/hydrogen/package.json index ba7efb57e3..11e96533d6 100644 --- a/packages/hydrogen/package.json +++ b/packages/hydrogen/package.json @@ -66,7 +66,8 @@ "@shopify/hydrogen-react": "2024.4.0", "content-security-policy-builder": "^2.1.1", "type-fest": "^4.5.0", - "source-map-support": "^0.5.21" + "source-map-support": "^0.5.21", + "use-resize-observer": "^9.1.0" }, "devDependencies": { "@remix-run/react": "^2.8.0", From 8a8f94d1973997232dcd9b5692050eb232895fd3 Mon Sep 17 00:00:00 2001 From: Fran Dios Date: Thu, 11 Apr 2024 12:45:05 +0200 Subject: [PATCH 2/9] Fix transpilation of eslintrc file --- packages/cli/src/lib/file.ts | 9 ++++++++- packages/cli/src/lib/transpile/project.ts | 14 ++++++++++---- 2 files changed, 18 insertions(+), 5 deletions(-) diff --git a/packages/cli/src/lib/file.ts b/packages/cli/src/lib/file.ts index ac98eb0c90..1e5445679e 100644 --- a/packages/cli/src/lib/file.ts +++ b/packages/cli/src/lib/file.ts @@ -30,7 +30,14 @@ export async function replaceFileContent( return writeFile(filepath, content); } -const DEFAULT_EXTENSIONS = ['tsx', 'ts', 'jsx', 'js', 'mjs', 'cjs'] as const; +const DEFAULT_EXTENSIONS = [ + 'tsx' as const, + 'ts' as const, + 'jsx' as const, + 'js' as const, + 'mjs' as const, + 'cjs' as const, +]; export async function findFileWithExtension( directory: string, diff --git a/packages/cli/src/lib/transpile/project.ts b/packages/cli/src/lib/transpile/project.ts index 63b16ba764..87b6951638 100644 --- a/packages/cli/src/lib/transpile/project.ts +++ b/packages/cli/src/lib/transpile/project.ts @@ -4,6 +4,7 @@ import {outputDebug} from '@shopify/cli-kit/node/output'; import {joinPath} from '@shopify/cli-kit/node/path'; import {formatCode, getCodeFormatOptions} from '../format-code.js'; import {transpileFile} from './file.js'; +import {findFileWithExtension} from '../file.js'; const DEFAULT_JS_CONFIG: Omit = { checkJs: false, @@ -157,15 +158,20 @@ export async function transpileProject(projectDir: string, keepTypes = true) { // Remove TS from ESLint try { - const eslintrcPath = joinPath(projectDir, '.eslintrc.js'); - let eslintrc = await readFile(eslintrcPath); + const {filepath = joinPath(projectDir, '.eslintrc.cjs')} = + await findFileWithExtension(projectDir, '.eslintrc', ['cjs', 'js']); + + let eslintrc = await readFile(filepath); + + if (!keepTypes) { + eslintrc = eslintrc.replace(/\/\*\*[\s*]+@type.+\s+\*\/\s?/gim, ''); + } eslintrc = eslintrc - .replace(/\/\*\*[\s*]+@type.+\s+\*\/\s?/gim, '') .replace(/\s*,?\s*['"`]plugin:hydrogen\/typescript['"`]/gim, '') .replace(/\s+['"`]@typescript-eslint\/.+,/gim, ''); - await writeFile(eslintrcPath, eslintrc); + await writeFile(filepath, await formatCode(eslintrc, formatConfig)); } catch (error) { outputDebug( 'Could not remove TS rules from .eslintrc:\n' + (error as Error).stack, From d057c53cfd71fdfd63d830771337da7fa5744054 Mon Sep 17 00:00:00 2001 From: Fran Dios Date: Thu, 11 Apr 2024 12:49:46 +0200 Subject: [PATCH 3/9] Fix vite scaffold asset --- packages/cli/src/setup-assets/vite/package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/cli/src/setup-assets/vite/package.json b/packages/cli/src/setup-assets/vite/package.json index a16e5551ff..a560c02c57 100644 --- a/packages/cli/src/setup-assets/vite/package.json +++ b/packages/cli/src/setup-assets/vite/package.json @@ -1,8 +1,8 @@ { "type": "module", "scripts": { - "build": "shopify hydrogen build-vite --codegen", - "dev": "shopify hydrogen dev-vite --codegen" + "build": "shopify hydrogen build --codegen", + "dev": "shopify hydrogen dev --codegen" }, "dependencies": { "isbot": "^3.8.0" From 9d2abcae0b6f5fe4cd52e45afb98a90a2b35f3c5 Mon Sep 17 00:00:00 2001 From: Fran Dios Date: Thu, 11 Apr 2024 13:44:31 +0200 Subject: [PATCH 4/9] Fix upgrade notice for next version --- packages/cli/src/commands/hydrogen/upgrade.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/cli/src/commands/hydrogen/upgrade.ts b/packages/cli/src/commands/hydrogen/upgrade.ts index d6796ebfa2..d9953fa18c 100644 --- a/packages/cli/src/commands/hydrogen/upgrade.ts +++ b/packages/cli/src/commands/hydrogen/upgrade.ts @@ -999,7 +999,8 @@ export async function displayDevUpgradeNotice({ const isPrerelease = semver.prerelease(currentVersion); - if (isPrerelease) { + if (isPrerelease || /^[a-z]+$/i.test(currentVersion)) { + // Skip prereleases or versions like 'next' or 'latest' return; } From 3c1b3b8667325f1dab568aee93ca7c78aafec8d3 Mon Sep 17 00:00:00 2001 From: Fran Dios Date: Thu, 11 Apr 2024 14:04:02 +0200 Subject: [PATCH 5/9] Avoid initial reload in Vite --- packages/hydrogen/src/vite/plugin.ts | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/packages/hydrogen/src/vite/plugin.ts b/packages/hydrogen/src/vite/plugin.ts index c4164f4bad..de72dd2db1 100644 --- a/packages/hydrogen/src/vite/plugin.ts +++ b/packages/hydrogen/src/vite/plugin.ts @@ -68,6 +68,11 @@ export function hydrogen(pluginOptions: HydrogenPluginOptions = {}): Plugin[] { ], }, }, + // Vite performs an initial reload after optimizing these dependencies. + // Do it early to avoid the initial reload: + optimizeDeps: { + include: ['@shopify/hydrogen'], + }, }; }, api: { From 856220b5884c9653a31c0d600f5696d79dd16c29 Mon Sep 17 00:00:00 2001 From: Fran Dios Date: Thu, 11 Apr 2024 14:22:43 +0200 Subject: [PATCH 6/9] Fix style after commit from GH --- packages/hydrogen-react/src/storefront-client.ts | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/packages/hydrogen-react/src/storefront-client.ts b/packages/hydrogen-react/src/storefront-client.ts index 827aec7692..e95991f702 100644 --- a/packages/hydrogen-react/src/storefront-client.ts +++ b/packages/hydrogen-react/src/storefront-client.ts @@ -35,10 +35,7 @@ export function createStorefrontClient({ }: StorefrontClientProps): StorefrontClientReturn { if (!storeDomain) { storeDomain = MOCK_SHOP_DOMAIN; - warnOnce( - `storeDomain missing, defaulting to ${MOCK_SHOP_DOMAIN}`, - 'info', - ); + warnOnce(`storeDomain missing, defaulting to ${MOCK_SHOP_DOMAIN}`, 'info'); } if (storefrontApiVersion !== SFAPI_VERSION) { From fabaea6005048abbcee914a6bc8df931e1a45c44 Mon Sep 17 00:00:00 2001 From: Fran Dios Date: Thu, 11 Apr 2024 14:45:23 +0200 Subject: [PATCH 7/9] Hoist known dependencies in PNPM to ensure Vite can optimize them --- templates/skeleton/.npmrc | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/templates/skeleton/.npmrc b/templates/skeleton/.npmrc index 2050a657d9..201c1147a3 100644 --- a/templates/skeleton/.npmrc +++ b/templates/skeleton/.npmrc @@ -1,2 +1,7 @@ @shopify:registry=https://registry.npmjs.com progress=false + +# Ensure Vite can optimize these deps in PNPM +public-hoist-pattern[]=cookie +public-hoist-pattern[]=set-cookie-parser +public-hoist-pattern[]=content-security-policy-builder \ No newline at end of file From 3e72ec7871fe057f4a1429561ae5a0336d42edab Mon Sep 17 00:00:00 2001 From: Fran Dios Date: Thu, 11 Apr 2024 14:51:43 +0200 Subject: [PATCH 8/9] New line --- templates/skeleton/.npmrc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/templates/skeleton/.npmrc b/templates/skeleton/.npmrc index 201c1147a3..408e0d2910 100644 --- a/templates/skeleton/.npmrc +++ b/templates/skeleton/.npmrc @@ -4,4 +4,4 @@ progress=false # Ensure Vite can optimize these deps in PNPM public-hoist-pattern[]=cookie public-hoist-pattern[]=set-cookie-parser -public-hoist-pattern[]=content-security-policy-builder \ No newline at end of file +public-hoist-pattern[]=content-security-policy-builder From 64e88057ffc960fdcc57f4cd633d6d2f537e448c Mon Sep 17 00:00:00 2001 From: Fran Dios Date: Thu, 11 Apr 2024 14:51:54 +0200 Subject: [PATCH 9/9] Longer timeout for mini-oxygen tests --- packages/mini-oxygen/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/mini-oxygen/package.json b/packages/mini-oxygen/package.json index 4b739f4c50..73b2f19e75 100644 --- a/packages/mini-oxygen/package.json +++ b/packages/mini-oxygen/package.json @@ -18,7 +18,7 @@ "dev": "tsup --watch", "typecheck": "tsc --noEmit", "prepack": "npm run build", - "test": "NODE_OPTIONS=--experimental-vm-modules vitest run" + "test": "NODE_OPTIONS=--experimental-vm-modules vitest run --test-timeout=20000" }, "files": [ "dist"