Add dual adapter support for Node and Static builds#2059
Open
Add dual adapter support for Node and Static builds#2059
Conversation
Enable building chat-ui with both adapter-node (web/SSR) and adapter-static (Capacitor/Tauri SPA) from the same codebase. Key changes: - Refactor hooks.server.ts to use lazy dynamic imports with building checks - Extract hook implementations to separate files under src/lib/server/hooks/ - Add building check to config.ts init() to skip database access during static builds - Add conditional adapter selection in svelte.config.js based on ADAPTER env var - Add build:static npm script and adapter-static dependency Usage: - npm run build (node adapter, default) - npm run build:static (static adapter for SPA)
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 41c240907b
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
During static builds, replace %gaId% with empty string to prevent the GA script from attempting to load with an invalid ID.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
adapter-node(web/SSR) andadapter-static(Capacitor/Tauri SPA) from the same codebasehooks.server.tsto use lazy dynamic imports gated bybuildingchecks to avoid database module evaluation during static buildADAPTERenvironment variableChanges
src/lib/server/hooks/*.tssrc/hooks.server.tssrc/lib/server/config.tsbuildingcheck ininit()svelte.config.jspackage.jsonbuild:staticscript and@sveltejs/adapter-staticUsage
Test plan
npm run buildsucceeds (node adapter)npm run build:staticsucceeds (static adapter)npm run checkpasses (TypeScript validation)index.htmlfallback for SPA routing