doc: v3 db recipes - #523

Merged
ymc9 merged 2 commits into
mainfrom
doc/db-guides
Dec 1, 2025
Merged

doc: v3 db recipes#523
ymc9 merged 2 commits into
mainfrom
doc/db-guides

Conversation

@ymc9

@ymc9ymc9 commented Dec 1, 2025

Copy link
Copy Markdown
Member

Summary by CodeRabbit

  • Documentation
    • Added integration guides for Neon, PostgreSQL, and SQLite databases, including driver setup, client configuration examples, and best practices for serverless and edge runtime environments.

✏️ Tip: You can customize this high-level summary in your review settings.

@vercel

vercelBot commented Dec 1, 2025

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

ProjectDeploymentPreviewCommentsUpdated (UTC)
zenstack-new-siteReadyReadyPreviewCommentDec 1, 2025 6:50am

@coderabbitai

Copy link
Copy Markdown
Contributor

Walkthrough

This pull request modifies the PackageInstall component to output npm/pnpm/bun/yarn install commands with dependencies and devDependencies on separate lines instead of concatenated together, and adds three new database integration documentation pages for Neon, PostgreSQL, and SQLite.

Changes

Cohort / File(s)Summary
Component formatting update
versioned_docs/version-3.x/_components/PackageInstall.tsx
Reorders and reformats the install command builder to output dependencies and devDependencies on separate lines instead of concatenated, preserving a newline between them
Database integration documentation
versioned_docs/version-3.x/recipe/databases/neon.md, versioned_docs/version-3.x/recipe/databases/postgres.md, versioned_docs/version-3.x/recipe/databases/sqlite.md
Adds three new documentation guides for database integrations with ZenStack ORM, including installation instructions, configuration examples, and usage patterns for Neon (serverless), PostgreSQL (pg driver), and SQLite (better-sqlite3)

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

  • PackageInstall component change is a straightforward output formatting reorder with consistent pattern
  • Three new documentation files follow a similar structure and contain primarily example code with explanatory text; review focuses on technical accuracy and clarity

Possibly related PRs

Pre-merge checks and finishing touches

✅ Passed checks (3 passed)
Check nameStatusExplanation
Description Check✅ PassedCheck skipped - CodeRabbit’s high-level summary is enabled.
Title check✅ PassedThe title 'doc: v3 db recipes' accurately describes the main change: adding new database integration documentation pages for ZenStack v3 (SQLite, PostgreSQL, and Neon).
Docstring Coverage✅ PassedNo functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch doc/db-guides

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitaicoderabbitaiBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

🧹 Nitpick comments (2)
versioned_docs/version-3.x/recipe/databases/neon.md (1)

15-42: Clarify createClient usage in edge example

The edge-runtime snippet calls createClient() without showing or referencing its implementation. For readers, it would help to either:

  • inline a minimal createClient helper based on the previous ZenStackClient example, or
  • add a short note like “createClient is a helper that constructs ZenStackClient as shown above.”

This keeps the per-request pattern clear and self-contained.

versioned_docs/version-3.x/_components/PackageInstall.tsx (1)

5-25: Make props optional and simplify command string construction

Current template literal works but has a couple of quirks:

  • If only devDependencies are passed, the unconditional newline in the template string produces a leading blank line in the code block.
  • Props marks both arrays as required, but some usages (e.g. Neon) provide only dependencies, relying on runtime ?. behavior.

You can make this more robust and readable by:

  • Making props optional with defaults.
  • Building lines and joining with '\n' instead of embedding newlines in the template literal.

Example refactor:

-interface Props {- devDependencies: string[];- dependencies: string[];-}+interface Props {+ devDependencies?: string[];+ dependencies?: string[];+}
@@
-const PackageInstall = ({ devDependencies, dependencies }: Props) => {+const PackageInstall = ({ devDependencies = [], dependencies = [] }: Props) => {
return (
<Tabs>
{pkgManagers.map((pkg) => (
<TabItem key={pkg.name} value={pkg.name} label={pkg.name}>
<CodeBlock language="bash">
-{`${dependencies?.length ? `${pkg.command} ${dependencies.join(' ')}` : ''}-${devDependencies?.length ? `${pkg.command} ${pkg.dev} ${devDependencies.join(' ')}\n` : ''}`}+{[+ dependencies.length+ ? `${pkg.command} ${dependencies.join(' ')}`+ : null,+ devDependencies.length+ ? `${pkg.command} ${pkg.dev} ${devDependencies.join(' ')}`+ : null,+]+ .filter(Boolean)+ .join('\n')}
</CodeBlock>
</TabItem>
))}
</Tabs>
);

This keeps the output exactly one command per line, with no leading/trailing blank lines, and aligns types with actual usage.

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 245801a and 67a9555.

⛔ Files ignored due to path filters (1)
  • versioned_docs/version-3.x/recipe/databases/_category_.yml is excluded by !**/*.yml
📒 Files selected for processing (4)
  • versioned_docs/version-3.x/_components/PackageInstall.tsx (1 hunks)
  • versioned_docs/version-3.x/recipe/databases/neon.md (1 hunks)
  • versioned_docs/version-3.x/recipe/databases/postgres.md (1 hunks)
  • versioned_docs/version-3.x/recipe/databases/sqlite.md (1 hunks)
🔇 Additional comments (2)
versioned_docs/version-3.x/recipe/databases/postgres.md (1)

9-27: PostgreSQL setup snippet looks solid

The driver install and ZenStackClient + Pool configuration are clear and technically sound for a standard pg setup.

versioned_docs/version-3.x/recipe/databases/sqlite.md (1)

9-23: SQLite recipe is consistent and correct

The install instructions and SqliteDialect + better-sqlite3 example are consistent with typical SQLite usage and the other DB recipes.

@ymc9
ymc9 merged commit 8616368 into mainDec 1, 2025
4 checks passed
@ymc9
ymc9 deleted the doc/db-guides branch December 1, 2025 06:59
@coderabbitaicoderabbitaiBot mentioned this pull request Dec 2, 2025
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@ymc9
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

doc: v3 db recipes - #523

Merged
ymc9 merged 2 commits into
mainfrom
doc/db-guides
Dec 1, 2025
Merged

doc: v3 db recipes#523
ymc9 merged 2 commits into
mainfrom
doc/db-guides

Conversation

@ymc9

@ymc9ymc9 commented Dec 1, 2025

Copy link
Copy Markdown
Member

Summary by CodeRabbit

  • Documentation
    • Added integration guides for Neon, PostgreSQL, and SQLite databases, including driver setup, client configuration examples, and best practices for serverless and edge runtime environments.

✏️ Tip: You can customize this high-level summary in your review settings.

@vercel

vercelBot commented Dec 1, 2025

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

ProjectDeploymentPreviewCommentsUpdated (UTC)
zenstack-new-siteReadyReadyPreviewCommentDec 1, 2025 6:50am

@coderabbitai

Copy link
Copy Markdown
Contributor

Walkthrough

This pull request modifies the PackageInstall component to output npm/pnpm/bun/yarn install commands with dependencies and devDependencies on separate lines instead of concatenated together, and adds three new database integration documentation pages for Neon, PostgreSQL, and SQLite.

Changes

Cohort / File(s)Summary
Component formatting update
versioned_docs/version-3.x/_components/PackageInstall.tsx
Reorders and reformats the install command builder to output dependencies and devDependencies on separate lines instead of concatenated, preserving a newline between them
Database integration documentation
versioned_docs/version-3.x/recipe/databases/neon.md, versioned_docs/version-3.x/recipe/databases/postgres.md, versioned_docs/version-3.x/recipe/databases/sqlite.md
Adds three new documentation guides for database integrations with ZenStack ORM, including installation instructions, configuration examples, and usage patterns for Neon (serverless), PostgreSQL (pg driver), and SQLite (better-sqlite3)

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

  • PackageInstall component change is a straightforward output formatting reorder with consistent pattern
  • Three new documentation files follow a similar structure and contain primarily example code with explanatory text; review focuses on technical accuracy and clarity

Possibly related PRs

Pre-merge checks and finishing touches

✅ Passed checks (3 passed)
Check nameStatusExplanation
Description Check✅ PassedCheck skipped - CodeRabbit’s high-level summary is enabled.
Title check✅ PassedThe title 'doc: v3 db recipes' accurately describes the main change: adding new database integration documentation pages for ZenStack v3 (SQLite, PostgreSQL, and Neon).
Docstring Coverage✅ PassedNo functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch doc/db-guides

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitaicoderabbitaiBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

🧹 Nitpick comments (2)
versioned_docs/version-3.x/recipe/databases/neon.md (1)

15-42: Clarify createClient usage in edge example

The edge-runtime snippet calls createClient() without showing or referencing its implementation. For readers, it would help to either:

  • inline a minimal createClient helper based on the previous ZenStackClient example, or
  • add a short note like “createClient is a helper that constructs ZenStackClient as shown above.”

This keeps the per-request pattern clear and self-contained.

versioned_docs/version-3.x/_components/PackageInstall.tsx (1)

5-25: Make props optional and simplify command string construction

Current template literal works but has a couple of quirks:

  • If only devDependencies are passed, the unconditional newline in the template string produces a leading blank line in the code block.
  • Props marks both arrays as required, but some usages (e.g. Neon) provide only dependencies, relying on runtime ?. behavior.

You can make this more robust and readable by:

  • Making props optional with defaults.
  • Building lines and joining with '\n' instead of embedding newlines in the template literal.

Example refactor:

-interface Props {- devDependencies: string[];- dependencies: string[];-}+interface Props {+ devDependencies?: string[];+ dependencies?: string[];+}
@@
-const PackageInstall = ({ devDependencies, dependencies }: Props) => {+const PackageInstall = ({ devDependencies = [], dependencies = [] }: Props) => {
return (
<Tabs>
{pkgManagers.map((pkg) => (
<TabItem key={pkg.name} value={pkg.name} label={pkg.name}>
<CodeBlock language="bash">
-{`${dependencies?.length ? `${pkg.command} ${dependencies.join(' ')}` : ''}-${devDependencies?.length ? `${pkg.command} ${pkg.dev} ${devDependencies.join(' ')}\n` : ''}`}+{[+ dependencies.length+ ? `${pkg.command} ${dependencies.join(' ')}`+ : null,+ devDependencies.length+ ? `${pkg.command} ${pkg.dev} ${devDependencies.join(' ')}`+ : null,+]+ .filter(Boolean)+ .join('\n')}
</CodeBlock>
</TabItem>
))}
</Tabs>
);

This keeps the output exactly one command per line, with no leading/trailing blank lines, and aligns types with actual usage.

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 245801a and 67a9555.

⛔ Files ignored due to path filters (1)
  • versioned_docs/version-3.x/recipe/databases/_category_.yml is excluded by !**/*.yml
📒 Files selected for processing (4)
  • versioned_docs/version-3.x/_components/PackageInstall.tsx (1 hunks)
  • versioned_docs/version-3.x/recipe/databases/neon.md (1 hunks)
  • versioned_docs/version-3.x/recipe/databases/postgres.md (1 hunks)
  • versioned_docs/version-3.x/recipe/databases/sqlite.md (1 hunks)
🔇 Additional comments (2)
versioned_docs/version-3.x/recipe/databases/postgres.md (1)

9-27: PostgreSQL setup snippet looks solid

The driver install and ZenStackClient + Pool configuration are clear and technically sound for a standard pg setup.

versioned_docs/version-3.x/recipe/databases/sqlite.md (1)

9-23: SQLite recipe is consistent and correct

The install instructions and SqliteDialect + better-sqlite3 example are consistent with typical SQLite usage and the other DB recipes.

@ymc9
ymc9 merged commit 8616368 into mainDec 1, 2025
4 checks passed
@ymc9
ymc9 deleted the doc/db-guides branch December 1, 2025 06:59
@coderabbitaicoderabbitaiBot mentioned this pull request Dec 2, 2025
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@ymc9
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

doc: v3 db recipes - #523

Merged
ymc9 merged 2 commits into
mainfrom
doc/db-guides
Dec 1, 2025
Merged

doc: v3 db recipes#523
ymc9 merged 2 commits into
mainfrom
doc/db-guides

Conversation

@ymc9

@ymc9ymc9 commented Dec 1, 2025

Copy link
Copy Markdown
Member

Summary by CodeRabbit

  • Documentation
    • Added integration guides for Neon, PostgreSQL, and SQLite databases, including driver setup, client configuration examples, and best practices for serverless and edge runtime environments.

✏️ Tip: You can customize this high-level summary in your review settings.

@vercel

vercelBot commented Dec 1, 2025

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

ProjectDeploymentPreviewCommentsUpdated (UTC)
zenstack-new-siteReadyReadyPreviewCommentDec 1, 2025 6:50am

@coderabbitai

Copy link
Copy Markdown
Contributor

Walkthrough

This pull request modifies the PackageInstall component to output npm/pnpm/bun/yarn install commands with dependencies and devDependencies on separate lines instead of concatenated together, and adds three new database integration documentation pages for Neon, PostgreSQL, and SQLite.

Changes

Cohort / File(s)Summary
Component formatting update
versioned_docs/version-3.x/_components/PackageInstall.tsx
Reorders and reformats the install command builder to output dependencies and devDependencies on separate lines instead of concatenated, preserving a newline between them
Database integration documentation
versioned_docs/version-3.x/recipe/databases/neon.md, versioned_docs/version-3.x/recipe/databases/postgres.md, versioned_docs/version-3.x/recipe/databases/sqlite.md
Adds three new documentation guides for database integrations with ZenStack ORM, including installation instructions, configuration examples, and usage patterns for Neon (serverless), PostgreSQL (pg driver), and SQLite (better-sqlite3)

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

  • PackageInstall component change is a straightforward output formatting reorder with consistent pattern
  • Three new documentation files follow a similar structure and contain primarily example code with explanatory text; review focuses on technical accuracy and clarity

Possibly related PRs

Pre-merge checks and finishing touches

✅ Passed checks (3 passed)
Check nameStatusExplanation
Description Check✅ PassedCheck skipped - CodeRabbit’s high-level summary is enabled.
Title check✅ PassedThe title 'doc: v3 db recipes' accurately describes the main change: adding new database integration documentation pages for ZenStack v3 (SQLite, PostgreSQL, and Neon).
Docstring Coverage✅ PassedNo functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch doc/db-guides

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitaicoderabbitaiBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

🧹 Nitpick comments (2)
versioned_docs/version-3.x/recipe/databases/neon.md (1)

15-42: Clarify createClient usage in edge example

The edge-runtime snippet calls createClient() without showing or referencing its implementation. For readers, it would help to either:

  • inline a minimal createClient helper based on the previous ZenStackClient example, or
  • add a short note like “createClient is a helper that constructs ZenStackClient as shown above.”

This keeps the per-request pattern clear and self-contained.

versioned_docs/version-3.x/_components/PackageInstall.tsx (1)

5-25: Make props optional and simplify command string construction

Current template literal works but has a couple of quirks:

  • If only devDependencies are passed, the unconditional newline in the template string produces a leading blank line in the code block.
  • Props marks both arrays as required, but some usages (e.g. Neon) provide only dependencies, relying on runtime ?. behavior.

You can make this more robust and readable by:

  • Making props optional with defaults.
  • Building lines and joining with '\n' instead of embedding newlines in the template literal.

Example refactor:

-interface Props {- devDependencies: string[];- dependencies: string[];-}+interface Props {+ devDependencies?: string[];+ dependencies?: string[];+}
@@
-const PackageInstall = ({ devDependencies, dependencies }: Props) => {+const PackageInstall = ({ devDependencies = [], dependencies = [] }: Props) => {
return (
<Tabs>
{pkgManagers.map((pkg) => (
<TabItem key={pkg.name} value={pkg.name} label={pkg.name}>
<CodeBlock language="bash">
-{`${dependencies?.length ? `${pkg.command} ${dependencies.join(' ')}` : ''}-${devDependencies?.length ? `${pkg.command} ${pkg.dev} ${devDependencies.join(' ')}\n` : ''}`}+{[+ dependencies.length+ ? `${pkg.command} ${dependencies.join(' ')}`+ : null,+ devDependencies.length+ ? `${pkg.command} ${pkg.dev} ${devDependencies.join(' ')}`+ : null,+]+ .filter(Boolean)+ .join('\n')}
</CodeBlock>
</TabItem>
))}
</Tabs>
);

This keeps the output exactly one command per line, with no leading/trailing blank lines, and aligns types with actual usage.

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 245801a and 67a9555.

⛔ Files ignored due to path filters (1)
  • versioned_docs/version-3.x/recipe/databases/_category_.yml is excluded by !**/*.yml
📒 Files selected for processing (4)
  • versioned_docs/version-3.x/_components/PackageInstall.tsx (1 hunks)
  • versioned_docs/version-3.x/recipe/databases/neon.md (1 hunks)
  • versioned_docs/version-3.x/recipe/databases/postgres.md (1 hunks)
  • versioned_docs/version-3.x/recipe/databases/sqlite.md (1 hunks)
🔇 Additional comments (2)
versioned_docs/version-3.x/recipe/databases/postgres.md (1)

9-27: PostgreSQL setup snippet looks solid

The driver install and ZenStackClient + Pool configuration are clear and technically sound for a standard pg setup.

versioned_docs/version-3.x/recipe/databases/sqlite.md (1)

9-23: SQLite recipe is consistent and correct

The install instructions and SqliteDialect + better-sqlite3 example are consistent with typical SQLite usage and the other DB recipes.

@ymc9
ymc9 merged commit 8616368 into mainDec 1, 2025
4 checks passed
@ymc9
ymc9 deleted the doc/db-guides branch December 1, 2025 06:59
@coderabbitaicoderabbitaiBot mentioned this pull request Dec 2, 2025
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@ymc9
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

doc: v3 db recipes - #523

Merged
ymc9 merged 2 commits into
mainfrom
doc/db-guides
Dec 1, 2025
Merged

doc: v3 db recipes#523
ymc9 merged 2 commits into
mainfrom
doc/db-guides

Conversation

@ymc9

@ymc9ymc9 commented Dec 1, 2025

Copy link
Copy Markdown
Member

Summary by CodeRabbit

  • Documentation
    • Added integration guides for Neon, PostgreSQL, and SQLite databases, including driver setup, client configuration examples, and best practices for serverless and edge runtime environments.

✏️ Tip: You can customize this high-level summary in your review settings.

@vercel

vercelBot commented Dec 1, 2025

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

ProjectDeploymentPreviewCommentsUpdated (UTC)
zenstack-new-siteReadyReadyPreviewCommentDec 1, 2025 6:50am

@coderabbitai

Copy link
Copy Markdown
Contributor

Walkthrough

This pull request modifies the PackageInstall component to output npm/pnpm/bun/yarn install commands with dependencies and devDependencies on separate lines instead of concatenated together, and adds three new database integration documentation pages for Neon, PostgreSQL, and SQLite.

Changes

Cohort / File(s)Summary
Component formatting update
versioned_docs/version-3.x/_components/PackageInstall.tsx
Reorders and reformats the install command builder to output dependencies and devDependencies on separate lines instead of concatenated, preserving a newline between them
Database integration documentation
versioned_docs/version-3.x/recipe/databases/neon.md, versioned_docs/version-3.x/recipe/databases/postgres.md, versioned_docs/version-3.x/recipe/databases/sqlite.md
Adds three new documentation guides for database integrations with ZenStack ORM, including installation instructions, configuration examples, and usage patterns for Neon (serverless), PostgreSQL (pg driver), and SQLite (better-sqlite3)

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

  • PackageInstall component change is a straightforward output formatting reorder with consistent pattern
  • Three new documentation files follow a similar structure and contain primarily example code with explanatory text; review focuses on technical accuracy and clarity

Possibly related PRs

Pre-merge checks and finishing touches

✅ Passed checks (3 passed)
Check nameStatusExplanation
Description Check✅ PassedCheck skipped - CodeRabbit’s high-level summary is enabled.
Title check✅ PassedThe title 'doc: v3 db recipes' accurately describes the main change: adding new database integration documentation pages for ZenStack v3 (SQLite, PostgreSQL, and Neon).
Docstring Coverage✅ PassedNo functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch doc/db-guides

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitaicoderabbitaiBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

🧹 Nitpick comments (2)
versioned_docs/version-3.x/recipe/databases/neon.md (1)

15-42: Clarify createClient usage in edge example

The edge-runtime snippet calls createClient() without showing or referencing its implementation. For readers, it would help to either:

  • inline a minimal createClient helper based on the previous ZenStackClient example, or
  • add a short note like “createClient is a helper that constructs ZenStackClient as shown above.”

This keeps the per-request pattern clear and self-contained.

versioned_docs/version-3.x/_components/PackageInstall.tsx (1)

5-25: Make props optional and simplify command string construction

Current template literal works but has a couple of quirks:

  • If only devDependencies are passed, the unconditional newline in the template string produces a leading blank line in the code block.
  • Props marks both arrays as required, but some usages (e.g. Neon) provide only dependencies, relying on runtime ?. behavior.

You can make this more robust and readable by:

  • Making props optional with defaults.
  • Building lines and joining with '\n' instead of embedding newlines in the template literal.

Example refactor:

-interface Props {- devDependencies: string[];- dependencies: string[];-}+interface Props {+ devDependencies?: string[];+ dependencies?: string[];+}
@@
-const PackageInstall = ({ devDependencies, dependencies }: Props) => {+const PackageInstall = ({ devDependencies = [], dependencies = [] }: Props) => {
return (
<Tabs>
{pkgManagers.map((pkg) => (
<TabItem key={pkg.name} value={pkg.name} label={pkg.name}>
<CodeBlock language="bash">
-{`${dependencies?.length ? `${pkg.command} ${dependencies.join(' ')}` : ''}-${devDependencies?.length ? `${pkg.command} ${pkg.dev} ${devDependencies.join(' ')}\n` : ''}`}+{[+ dependencies.length+ ? `${pkg.command} ${dependencies.join(' ')}`+ : null,+ devDependencies.length+ ? `${pkg.command} ${pkg.dev} ${devDependencies.join(' ')}`+ : null,+]+ .filter(Boolean)+ .join('\n')}
</CodeBlock>
</TabItem>
))}
</Tabs>
);

This keeps the output exactly one command per line, with no leading/trailing blank lines, and aligns types with actual usage.

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 245801a and 67a9555.

⛔ Files ignored due to path filters (1)
  • versioned_docs/version-3.x/recipe/databases/_category_.yml is excluded by !**/*.yml
📒 Files selected for processing (4)
  • versioned_docs/version-3.x/_components/PackageInstall.tsx (1 hunks)
  • versioned_docs/version-3.x/recipe/databases/neon.md (1 hunks)
  • versioned_docs/version-3.x/recipe/databases/postgres.md (1 hunks)
  • versioned_docs/version-3.x/recipe/databases/sqlite.md (1 hunks)
🔇 Additional comments (2)
versioned_docs/version-3.x/recipe/databases/postgres.md (1)

9-27: PostgreSQL setup snippet looks solid

The driver install and ZenStackClient + Pool configuration are clear and technically sound for a standard pg setup.

versioned_docs/version-3.x/recipe/databases/sqlite.md (1)

9-23: SQLite recipe is consistent and correct

The install instructions and SqliteDialect + better-sqlite3 example are consistent with typical SQLite usage and the other DB recipes.

@ymc9
ymc9 merged commit 8616368 into mainDec 1, 2025
4 checks passed
@ymc9
ymc9 deleted the doc/db-guides branch December 1, 2025 06:59
@coderabbitaicoderabbitaiBot mentioned this pull request Dec 2, 2025
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@ymc9
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

doc: v3 db recipes - #523

Merged
ymc9 merged 2 commits into
mainfrom
doc/db-guides
Dec 1, 2025
Merged

doc: v3 db recipes#523
ymc9 merged 2 commits into
mainfrom
doc/db-guides

Conversation

@ymc9

@ymc9ymc9 commented Dec 1, 2025

Copy link
Copy Markdown
Member

Summary by CodeRabbit

  • Documentation
    • Added integration guides for Neon, PostgreSQL, and SQLite databases, including driver setup, client configuration examples, and best practices for serverless and edge runtime environments.

✏️ Tip: You can customize this high-level summary in your review settings.

@vercel

vercelBot commented Dec 1, 2025

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

ProjectDeploymentPreviewCommentsUpdated (UTC)
zenstack-new-siteReadyReadyPreviewCommentDec 1, 2025 6:50am

@coderabbitai

Copy link
Copy Markdown
Contributor

Walkthrough

This pull request modifies the PackageInstall component to output npm/pnpm/bun/yarn install commands with dependencies and devDependencies on separate lines instead of concatenated together, and adds three new database integration documentation pages for Neon, PostgreSQL, and SQLite.

Changes

Cohort / File(s)Summary
Component formatting update
versioned_docs/version-3.x/_components/PackageInstall.tsx
Reorders and reformats the install command builder to output dependencies and devDependencies on separate lines instead of concatenated, preserving a newline between them
Database integration documentation
versioned_docs/version-3.x/recipe/databases/neon.md, versioned_docs/version-3.x/recipe/databases/postgres.md, versioned_docs/version-3.x/recipe/databases/sqlite.md
Adds three new documentation guides for database integrations with ZenStack ORM, including installation instructions, configuration examples, and usage patterns for Neon (serverless), PostgreSQL (pg driver), and SQLite (better-sqlite3)

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

  • PackageInstall component change is a straightforward output formatting reorder with consistent pattern
  • Three new documentation files follow a similar structure and contain primarily example code with explanatory text; review focuses on technical accuracy and clarity

Possibly related PRs

Pre-merge checks and finishing touches

✅ Passed checks (3 passed)
Check nameStatusExplanation
Description Check✅ PassedCheck skipped - CodeRabbit’s high-level summary is enabled.
Title check✅ PassedThe title 'doc: v3 db recipes' accurately describes the main change: adding new database integration documentation pages for ZenStack v3 (SQLite, PostgreSQL, and Neon).
Docstring Coverage✅ PassedNo functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch doc/db-guides

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitaicoderabbitaiBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

🧹 Nitpick comments (2)
versioned_docs/version-3.x/recipe/databases/neon.md (1)

15-42: Clarify createClient usage in edge example

The edge-runtime snippet calls createClient() without showing or referencing its implementation. For readers, it would help to either:

  • inline a minimal createClient helper based on the previous ZenStackClient example, or
  • add a short note like “createClient is a helper that constructs ZenStackClient as shown above.”

This keeps the per-request pattern clear and self-contained.

versioned_docs/version-3.x/_components/PackageInstall.tsx (1)

5-25: Make props optional and simplify command string construction

Current template literal works but has a couple of quirks:

  • If only devDependencies are passed, the unconditional newline in the template string produces a leading blank line in the code block.
  • Props marks both arrays as required, but some usages (e.g. Neon) provide only dependencies, relying on runtime ?. behavior.

You can make this more robust and readable by:

  • Making props optional with defaults.
  • Building lines and joining with '\n' instead of embedding newlines in the template literal.

Example refactor:

-interface Props {- devDependencies: string[];- dependencies: string[];-}+interface Props {+ devDependencies?: string[];+ dependencies?: string[];+}
@@
-const PackageInstall = ({ devDependencies, dependencies }: Props) => {+const PackageInstall = ({ devDependencies = [], dependencies = [] }: Props) => {
return (
<Tabs>
{pkgManagers.map((pkg) => (
<TabItem key={pkg.name} value={pkg.name} label={pkg.name}>
<CodeBlock language="bash">
-{`${dependencies?.length ? `${pkg.command} ${dependencies.join(' ')}` : ''}-${devDependencies?.length ? `${pkg.command} ${pkg.dev} ${devDependencies.join(' ')}\n` : ''}`}+{[+ dependencies.length+ ? `${pkg.command} ${dependencies.join(' ')}`+ : null,+ devDependencies.length+ ? `${pkg.command} ${pkg.dev} ${devDependencies.join(' ')}`+ : null,+]+ .filter(Boolean)+ .join('\n')}
</CodeBlock>
</TabItem>
))}
</Tabs>
);

This keeps the output exactly one command per line, with no leading/trailing blank lines, and aligns types with actual usage.

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 245801a and 67a9555.

⛔ Files ignored due to path filters (1)
  • versioned_docs/version-3.x/recipe/databases/_category_.yml is excluded by !**/*.yml
📒 Files selected for processing (4)
  • versioned_docs/version-3.x/_components/PackageInstall.tsx (1 hunks)
  • versioned_docs/version-3.x/recipe/databases/neon.md (1 hunks)
  • versioned_docs/version-3.x/recipe/databases/postgres.md (1 hunks)
  • versioned_docs/version-3.x/recipe/databases/sqlite.md (1 hunks)
🔇 Additional comments (2)
versioned_docs/version-3.x/recipe/databases/postgres.md (1)

9-27: PostgreSQL setup snippet looks solid

The driver install and ZenStackClient + Pool configuration are clear and technically sound for a standard pg setup.

versioned_docs/version-3.x/recipe/databases/sqlite.md (1)

9-23: SQLite recipe is consistent and correct

The install instructions and SqliteDialect + better-sqlite3 example are consistent with typical SQLite usage and the other DB recipes.

@ymc9
ymc9 merged commit 8616368 into mainDec 1, 2025
4 checks passed
@ymc9
ymc9 deleted the doc/db-guides branch December 1, 2025 06:59
@coderabbitaicoderabbitaiBot mentioned this pull request Dec 2, 2025
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@ymc9
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

doc: v3 db recipes - #523

Merged
ymc9 merged 2 commits into
mainfrom
doc/db-guides
Dec 1, 2025
Merged

doc: v3 db recipes#523
ymc9 merged 2 commits into
mainfrom
doc/db-guides

Conversation

@ymc9

@ymc9ymc9 commented Dec 1, 2025

Copy link
Copy Markdown
Member

Summary by CodeRabbit

  • Documentation
    • Added integration guides for Neon, PostgreSQL, and SQLite databases, including driver setup, client configuration examples, and best practices for serverless and edge runtime environments.

✏️ Tip: You can customize this high-level summary in your review settings.

@vercel

vercelBot commented Dec 1, 2025

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

ProjectDeploymentPreviewCommentsUpdated (UTC)
zenstack-new-siteReadyReadyPreviewCommentDec 1, 2025 6:50am

@coderabbitai

Copy link
Copy Markdown
Contributor

Walkthrough

This pull request modifies the PackageInstall component to output npm/pnpm/bun/yarn install commands with dependencies and devDependencies on separate lines instead of concatenated together, and adds three new database integration documentation pages for Neon, PostgreSQL, and SQLite.

Changes

Cohort / File(s)Summary
Component formatting update
versioned_docs/version-3.x/_components/PackageInstall.tsx
Reorders and reformats the install command builder to output dependencies and devDependencies on separate lines instead of concatenated, preserving a newline between them
Database integration documentation
versioned_docs/version-3.x/recipe/databases/neon.md, versioned_docs/version-3.x/recipe/databases/postgres.md, versioned_docs/version-3.x/recipe/databases/sqlite.md
Adds three new documentation guides for database integrations with ZenStack ORM, including installation instructions, configuration examples, and usage patterns for Neon (serverless), PostgreSQL (pg driver), and SQLite (better-sqlite3)

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

  • PackageInstall component change is a straightforward output formatting reorder with consistent pattern
  • Three new documentation files follow a similar structure and contain primarily example code with explanatory text; review focuses on technical accuracy and clarity

Possibly related PRs

Pre-merge checks and finishing touches

✅ Passed checks (3 passed)
Check nameStatusExplanation
Description Check✅ PassedCheck skipped - CodeRabbit’s high-level summary is enabled.
Title check✅ PassedThe title 'doc: v3 db recipes' accurately describes the main change: adding new database integration documentation pages for ZenStack v3 (SQLite, PostgreSQL, and Neon).
Docstring Coverage✅ PassedNo functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch doc/db-guides

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitaicoderabbitaiBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

🧹 Nitpick comments (2)
versioned_docs/version-3.x/recipe/databases/neon.md (1)

15-42: Clarify createClient usage in edge example

The edge-runtime snippet calls createClient() without showing or referencing its implementation. For readers, it would help to either:

  • inline a minimal createClient helper based on the previous ZenStackClient example, or
  • add a short note like “createClient is a helper that constructs ZenStackClient as shown above.”

This keeps the per-request pattern clear and self-contained.

versioned_docs/version-3.x/_components/PackageInstall.tsx (1)

5-25: Make props optional and simplify command string construction

Current template literal works but has a couple of quirks:

  • If only devDependencies are passed, the unconditional newline in the template string produces a leading blank line in the code block.
  • Props marks both arrays as required, but some usages (e.g. Neon) provide only dependencies, relying on runtime ?. behavior.

You can make this more robust and readable by:

  • Making props optional with defaults.
  • Building lines and joining with '\n' instead of embedding newlines in the template literal.

Example refactor:

-interface Props {- devDependencies: string[];- dependencies: string[];-}+interface Props {+ devDependencies?: string[];+ dependencies?: string[];+}
@@
-const PackageInstall = ({ devDependencies, dependencies }: Props) => {+const PackageInstall = ({ devDependencies = [], dependencies = [] }: Props) => {
return (
<Tabs>
{pkgManagers.map((pkg) => (
<TabItem key={pkg.name} value={pkg.name} label={pkg.name}>
<CodeBlock language="bash">
-{`${dependencies?.length ? `${pkg.command} ${dependencies.join(' ')}` : ''}-${devDependencies?.length ? `${pkg.command} ${pkg.dev} ${devDependencies.join(' ')}\n` : ''}`}+{[+ dependencies.length+ ? `${pkg.command} ${dependencies.join(' ')}`+ : null,+ devDependencies.length+ ? `${pkg.command} ${pkg.dev} ${devDependencies.join(' ')}`+ : null,+]+ .filter(Boolean)+ .join('\n')}
</CodeBlock>
</TabItem>
))}
</Tabs>
);

This keeps the output exactly one command per line, with no leading/trailing blank lines, and aligns types with actual usage.

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 245801a and 67a9555.

⛔ Files ignored due to path filters (1)
  • versioned_docs/version-3.x/recipe/databases/_category_.yml is excluded by !**/*.yml
📒 Files selected for processing (4)
  • versioned_docs/version-3.x/_components/PackageInstall.tsx (1 hunks)
  • versioned_docs/version-3.x/recipe/databases/neon.md (1 hunks)
  • versioned_docs/version-3.x/recipe/databases/postgres.md (1 hunks)
  • versioned_docs/version-3.x/recipe/databases/sqlite.md (1 hunks)
🔇 Additional comments (2)
versioned_docs/version-3.x/recipe/databases/postgres.md (1)

9-27: PostgreSQL setup snippet looks solid

The driver install and ZenStackClient + Pool configuration are clear and technically sound for a standard pg setup.

versioned_docs/version-3.x/recipe/databases/sqlite.md (1)

9-23: SQLite recipe is consistent and correct

The install instructions and SqliteDialect + better-sqlite3 example are consistent with typical SQLite usage and the other DB recipes.

@ymc9
ymc9 merged commit 8616368 into mainDec 1, 2025
4 checks passed
@ymc9
ymc9 deleted the doc/db-guides branch December 1, 2025 06:59
@coderabbitaicoderabbitaiBot mentioned this pull request Dec 2, 2025
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@ymc9
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

doc: v3 db recipes - #523

Merged
ymc9 merged 2 commits into
mainfrom
doc/db-guides
Dec 1, 2025
Merged

doc: v3 db recipes#523
ymc9 merged 2 commits into
mainfrom
doc/db-guides

Conversation

@ymc9

@ymc9ymc9 commented Dec 1, 2025

Copy link
Copy Markdown
Member

Summary by CodeRabbit

  • Documentation
    • Added integration guides for Neon, PostgreSQL, and SQLite databases, including driver setup, client configuration examples, and best practices for serverless and edge runtime environments.

✏️ Tip: You can customize this high-level summary in your review settings.

@vercel

vercelBot commented Dec 1, 2025

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

ProjectDeploymentPreviewCommentsUpdated (UTC)
zenstack-new-siteReadyReadyPreviewCommentDec 1, 2025 6:50am

@coderabbitai

Copy link
Copy Markdown
Contributor

Walkthrough

This pull request modifies the PackageInstall component to output npm/pnpm/bun/yarn install commands with dependencies and devDependencies on separate lines instead of concatenated together, and adds three new database integration documentation pages for Neon, PostgreSQL, and SQLite.

Changes

Cohort / File(s)Summary
Component formatting update
versioned_docs/version-3.x/_components/PackageInstall.tsx
Reorders and reformats the install command builder to output dependencies and devDependencies on separate lines instead of concatenated, preserving a newline between them
Database integration documentation
versioned_docs/version-3.x/recipe/databases/neon.md, versioned_docs/version-3.x/recipe/databases/postgres.md, versioned_docs/version-3.x/recipe/databases/sqlite.md
Adds three new documentation guides for database integrations with ZenStack ORM, including installation instructions, configuration examples, and usage patterns for Neon (serverless), PostgreSQL (pg driver), and SQLite (better-sqlite3)

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

  • PackageInstall component change is a straightforward output formatting reorder with consistent pattern
  • Three new documentation files follow a similar structure and contain primarily example code with explanatory text; review focuses on technical accuracy and clarity

Possibly related PRs

Pre-merge checks and finishing touches

✅ Passed checks (3 passed)
Check nameStatusExplanation
Description Check✅ PassedCheck skipped - CodeRabbit’s high-level summary is enabled.
Title check✅ PassedThe title 'doc: v3 db recipes' accurately describes the main change: adding new database integration documentation pages for ZenStack v3 (SQLite, PostgreSQL, and Neon).
Docstring Coverage✅ PassedNo functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch doc/db-guides

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitaicoderabbitaiBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

🧹 Nitpick comments (2)
versioned_docs/version-3.x/recipe/databases/neon.md (1)

15-42: Clarify createClient usage in edge example

The edge-runtime snippet calls createClient() without showing or referencing its implementation. For readers, it would help to either:

  • inline a minimal createClient helper based on the previous ZenStackClient example, or
  • add a short note like “createClient is a helper that constructs ZenStackClient as shown above.”

This keeps the per-request pattern clear and self-contained.

versioned_docs/version-3.x/_components/PackageInstall.tsx (1)

5-25: Make props optional and simplify command string construction

Current template literal works but has a couple of quirks:

  • If only devDependencies are passed, the unconditional newline in the template string produces a leading blank line in the code block.
  • Props marks both arrays as required, but some usages (e.g. Neon) provide only dependencies, relying on runtime ?. behavior.

You can make this more robust and readable by:

  • Making props optional with defaults.
  • Building lines and joining with '\n' instead of embedding newlines in the template literal.

Example refactor:

-interface Props {- devDependencies: string[];- dependencies: string[];-}+interface Props {+ devDependencies?: string[];+ dependencies?: string[];+}
@@
-const PackageInstall = ({ devDependencies, dependencies }: Props) => {+const PackageInstall = ({ devDependencies = [], dependencies = [] }: Props) => {
return (
<Tabs>
{pkgManagers.map((pkg) => (
<TabItem key={pkg.name} value={pkg.name} label={pkg.name}>
<CodeBlock language="bash">
-{`${dependencies?.length ? `${pkg.command} ${dependencies.join(' ')}` : ''}-${devDependencies?.length ? `${pkg.command} ${pkg.dev} ${devDependencies.join(' ')}\n` : ''}`}+{[+ dependencies.length+ ? `${pkg.command} ${dependencies.join(' ')}`+ : null,+ devDependencies.length+ ? `${pkg.command} ${pkg.dev} ${devDependencies.join(' ')}`+ : null,+]+ .filter(Boolean)+ .join('\n')}
</CodeBlock>
</TabItem>
))}
</Tabs>
);

This keeps the output exactly one command per line, with no leading/trailing blank lines, and aligns types with actual usage.

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 245801a and 67a9555.

⛔ Files ignored due to path filters (1)
  • versioned_docs/version-3.x/recipe/databases/_category_.yml is excluded by !**/*.yml
📒 Files selected for processing (4)
  • versioned_docs/version-3.x/_components/PackageInstall.tsx (1 hunks)
  • versioned_docs/version-3.x/recipe/databases/neon.md (1 hunks)
  • versioned_docs/version-3.x/recipe/databases/postgres.md (1 hunks)
  • versioned_docs/version-3.x/recipe/databases/sqlite.md (1 hunks)
🔇 Additional comments (2)
versioned_docs/version-3.x/recipe/databases/postgres.md (1)

9-27: PostgreSQL setup snippet looks solid

The driver install and ZenStackClient + Pool configuration are clear and technically sound for a standard pg setup.

versioned_docs/version-3.x/recipe/databases/sqlite.md (1)

9-23: SQLite recipe is consistent and correct

The install instructions and SqliteDialect + better-sqlite3 example are consistent with typical SQLite usage and the other DB recipes.

@ymc9
ymc9 merged commit 8616368 into mainDec 1, 2025
4 checks passed
@ymc9
ymc9 deleted the doc/db-guides branch December 1, 2025 06:59
@coderabbitaicoderabbitaiBot mentioned this pull request Dec 2, 2025
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@ymc9
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

doc: v3 db recipes - #523

Merged
ymc9 merged 2 commits into
mainfrom
doc/db-guides
Dec 1, 2025
Merged

doc: v3 db recipes#523
ymc9 merged 2 commits into
mainfrom
doc/db-guides

Conversation

@ymc9

@ymc9ymc9 commented Dec 1, 2025

Copy link
Copy Markdown
Member

Summary by CodeRabbit

  • Documentation
    • Added integration guides for Neon, PostgreSQL, and SQLite databases, including driver setup, client configuration examples, and best practices for serverless and edge runtime environments.

✏️ Tip: You can customize this high-level summary in your review settings.

@vercel

vercelBot commented Dec 1, 2025

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

ProjectDeploymentPreviewCommentsUpdated (UTC)
zenstack-new-siteReadyReadyPreviewCommentDec 1, 2025 6:50am

@coderabbitai

Copy link
Copy Markdown
Contributor

Walkthrough

This pull request modifies the PackageInstall component to output npm/pnpm/bun/yarn install commands with dependencies and devDependencies on separate lines instead of concatenated together, and adds three new database integration documentation pages for Neon, PostgreSQL, and SQLite.

Changes

Cohort / File(s)Summary
Component formatting update
versioned_docs/version-3.x/_components/PackageInstall.tsx
Reorders and reformats the install command builder to output dependencies and devDependencies on separate lines instead of concatenated, preserving a newline between them
Database integration documentation
versioned_docs/version-3.x/recipe/databases/neon.md, versioned_docs/version-3.x/recipe/databases/postgres.md, versioned_docs/version-3.x/recipe/databases/sqlite.md
Adds three new documentation guides for database integrations with ZenStack ORM, including installation instructions, configuration examples, and usage patterns for Neon (serverless), PostgreSQL (pg driver), and SQLite (better-sqlite3)

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

  • PackageInstall component change is a straightforward output formatting reorder with consistent pattern
  • Three new documentation files follow a similar structure and contain primarily example code with explanatory text; review focuses on technical accuracy and clarity

Possibly related PRs

Pre-merge checks and finishing touches

✅ Passed checks (3 passed)
Check nameStatusExplanation
Description Check✅ PassedCheck skipped - CodeRabbit’s high-level summary is enabled.
Title check✅ PassedThe title 'doc: v3 db recipes' accurately describes the main change: adding new database integration documentation pages for ZenStack v3 (SQLite, PostgreSQL, and Neon).
Docstring Coverage✅ PassedNo functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch doc/db-guides

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitaicoderabbitaiBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

🧹 Nitpick comments (2)
versioned_docs/version-3.x/recipe/databases/neon.md (1)

15-42: Clarify createClient usage in edge example

The edge-runtime snippet calls createClient() without showing or referencing its implementation. For readers, it would help to either:

  • inline a minimal createClient helper based on the previous ZenStackClient example, or
  • add a short note like “createClient is a helper that constructs ZenStackClient as shown above.”

This keeps the per-request pattern clear and self-contained.

versioned_docs/version-3.x/_components/PackageInstall.tsx (1)

5-25: Make props optional and simplify command string construction

Current template literal works but has a couple of quirks:

  • If only devDependencies are passed, the unconditional newline in the template string produces a leading blank line in the code block.
  • Props marks both arrays as required, but some usages (e.g. Neon) provide only dependencies, relying on runtime ?. behavior.

You can make this more robust and readable by:

  • Making props optional with defaults.
  • Building lines and joining with '\n' instead of embedding newlines in the template literal.

Example refactor:

-interface Props {- devDependencies: string[];- dependencies: string[];-}+interface Props {+ devDependencies?: string[];+ dependencies?: string[];+}
@@
-const PackageInstall = ({ devDependencies, dependencies }: Props) => {+const PackageInstall = ({ devDependencies = [], dependencies = [] }: Props) => {
return (
<Tabs>
{pkgManagers.map((pkg) => (
<TabItem key={pkg.name} value={pkg.name} label={pkg.name}>
<CodeBlock language="bash">
-{`${dependencies?.length ? `${pkg.command} ${dependencies.join(' ')}` : ''}-${devDependencies?.length ? `${pkg.command} ${pkg.dev} ${devDependencies.join(' ')}\n` : ''}`}+{[+ dependencies.length+ ? `${pkg.command} ${dependencies.join(' ')}`+ : null,+ devDependencies.length+ ? `${pkg.command} ${pkg.dev} ${devDependencies.join(' ')}`+ : null,+]+ .filter(Boolean)+ .join('\n')}
</CodeBlock>
</TabItem>
))}
</Tabs>
);

This keeps the output exactly one command per line, with no leading/trailing blank lines, and aligns types with actual usage.

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 245801a and 67a9555.

⛔ Files ignored due to path filters (1)
  • versioned_docs/version-3.x/recipe/databases/_category_.yml is excluded by !**/*.yml
📒 Files selected for processing (4)
  • versioned_docs/version-3.x/_components/PackageInstall.tsx (1 hunks)
  • versioned_docs/version-3.x/recipe/databases/neon.md (1 hunks)
  • versioned_docs/version-3.x/recipe/databases/postgres.md (1 hunks)
  • versioned_docs/version-3.x/recipe/databases/sqlite.md (1 hunks)
🔇 Additional comments (2)
versioned_docs/version-3.x/recipe/databases/postgres.md (1)

9-27: PostgreSQL setup snippet looks solid

The driver install and ZenStackClient + Pool configuration are clear and technically sound for a standard pg setup.

versioned_docs/version-3.x/recipe/databases/sqlite.md (1)

9-23: SQLite recipe is consistent and correct

The install instructions and SqliteDialect + better-sqlite3 example are consistent with typical SQLite usage and the other DB recipes.

@ymc9
ymc9 merged commit 8616368 into mainDec 1, 2025
4 checks passed
@ymc9
ymc9 deleted the doc/db-guides branch December 1, 2025 06:59
@coderabbitaicoderabbitaiBot mentioned this pull request Dec 2, 2025
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@ymc9