From b7c79c60f08dcc50f98ff81b40d7a7ef714b05db Mon Sep 17 00:00:00 2001 From: wuls Date: Tue, 8 Apr 2025 16:23:41 +0800 Subject: [PATCH 1/2] feat: collect data that only includes those with the suffix serverQrl_rpc --- .../qwik-city/src/buildtime/vite/plugin.ts | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/packages/qwik-city/src/buildtime/vite/plugin.ts b/packages/qwik-city/src/buildtime/vite/plugin.ts index 880e5d22a9c..c2ed69e5022 100644 --- a/packages/qwik-city/src/buildtime/vite/plugin.ts +++ b/packages/qwik-city/src/buildtime/vite/plugin.ts @@ -259,6 +259,25 @@ function qwikCityPlugin(userOpts?: QwikCityVitePluginOptions): any { } } } + + // Generate public API file + if (qwikPlugin) { + const manifest = qwikPlugin.api.getManifest(); + if (manifest) { + const publicApi = Object.fromEntries( + Object.entries(manifest.symbols).filter( + ([_, symbol]) => + symbol.displayName?.endsWith('serverQrl_rpc') && symbol.ctxKind === 'function' + ) + ); + + this.emitFile({ + type: 'asset', + fileName: 'q-public-api.json', + source: JSON.stringify(publicApi, null, 2), + }); + } + } }, closeBundle: { From 6a07946fa06ae824921c90cd22a85369f464913d Mon Sep 17 00:00:00 2001 From: wuls Date: Tue, 8 Apr 2025 16:26:44 +0800 Subject: [PATCH 2/2] refactor(vite): replace hardcoded file name with constant Use `QWIK_CITY_PUBLIC_API` constant instead of hardcoding the file name 'q-public-api.json' to improve maintainability and reduce the risk of errors --- packages/qwik-city/src/buildtime/vite/plugin.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/qwik-city/src/buildtime/vite/plugin.ts b/packages/qwik-city/src/buildtime/vite/plugin.ts index c2ed69e5022..27ced8ec9e6 100644 --- a/packages/qwik-city/src/buildtime/vite/plugin.ts +++ b/packages/qwik-city/src/buildtime/vite/plugin.ts @@ -273,7 +273,7 @@ function qwikCityPlugin(userOpts?: QwikCityVitePluginOptions): any { this.emitFile({ type: 'asset', - fileName: 'q-public-api.json', + fileName: QWIK_CITY_PUBLIC_API, source: JSON.stringify(publicApi, null, 2), }); } @@ -337,3 +337,4 @@ export const QWIK_CITY_PLAN_ID = '@qwik-city-plan'; const QWIK_CITY_ENTRIES_ID = '@qwik-city-entries'; const QWIK_CITY = '@builder.io/qwik-city'; const QWIK_CITY_SW_REGISTER = '@qwik-city-sw-register'; +const QWIK_CITY_PUBLIC_API = 'q-public-api.json';