docs: align root README usage section with the v2 packages - #750
Conversation
Rewrites the root README for the v2 monorepo (plan 009, M4): package inventory table, per-package client/server installs (no rapiq umbrella package), and a parse example using URLDecoder + QueryVisitor + TypeormAdapter instead of the v1-era typeorm-extension applyQuery. Docs pages touched by the same review: URLDecoder (not SimpleParser) as the req.query entry point in quick-start and the typeorm integration, corrected expression-dialect examples to the function-call grammar, and added codec-url-expression / codec-url to the package tables.
|
Warning Review limit reached
Next review available in: 29 minutes Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (14)
📝 WalkthroughWalkthroughDocumentation across README and packages/docs is rewritten to reflect the v2 package split into composable ChangesDocumentation update for URLDecoder-based decoding flow
Estimated code review effort: 2 (Simple) | ~10 minutes Possibly related PRs
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
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. Comment |
There was a problem hiding this comment.
Pull request overview
Aligns the repo’s user-facing docs (root README + VitePress docs) with the actual v2 package layout and APIs, replacing legacy/v1-era install and parsing guidance with the v2 @rapiq/* packages and the URL codec + schema + visitor flow.
Changes:
- Adds a root README “Packages” overview and updates installation instructions to per-package v2 installs.
- Rewrites the README “Parse” section to use
URLDecoder+SchemaRegistry/defineSchema+QueryVisitor+TypeormAdapter. - Updates docs pages to consistently present
URLDecoderas the URL entry point and updates expression-dialect examples to the function-call grammar.
Reviewed changes
Copilot reviewed 6 out of 6 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| README.MD | Adds v2 packages table, updates install instructions, and rewrites server-side parse/apply example to the v2 API surface. |
| packages/docs/integrations/typeorm.md | Updates the TypeORM integration example to use URLDecoder instead of SimpleParser for URL-shaped input. |
| packages/docs/integrations/simple.md | Clarifies @rapiq/parser-simple’s role as the canonical-key parser beneath the URL codec layer. |
| packages/docs/getting-started/quick-start.md | Updates quick start server-side step from “parse” to “decode”, switching to URLDecoder and adjusting guidance text. |
| packages/docs/getting-started/installation.md | Updates recommended server-side installs and expands optional packages list for URL/expression dialect support. |
| packages/docs/getting-started/index.md | Updates the package overview table to include the URL codec packages and function-call expression grammar. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| const queryBuilder = dataSource | ||
| .getRepository(User) | ||
| .createQueryBuilder('user'); |
| export async function getUsers(req: Request, res: Response) { | ||
| const query = parser.parse(req.query, { schema: 'user' }); | ||
| // wire names (filter, page, include, ...) map to canonical parameters | ||
| const query = decoder.decode(req.query, { schema: 'user' }); | ||
|
|
| // accepts the raw query string as well as a pre-parsed object (express req.query); | ||
| // URL wire names (filter, page, include, ...) map to their canonical parameters. | ||
| const query = decoder.decode(req.query, { schema: 'user' }); |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@packages/docs/integrations/typeorm.md`:
- Around line 103-107: The example in getUsers should handle the nullable result
from URLDecoder.decode before proceeding to query.accept. Update the snippet so
the decode call is checked for null and the function returns or throws an error
when decoding fails, then only call query.accept on the non-null query object.
Use the URLDecoder.decode and query.accept symbols to locate the fix.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro
Run ID: f4d3beb0-4c40-4d3a-9c61-f68a434dbbd3
📒 Files selected for processing (6)
README.MDpackages/docs/getting-started/index.mdpackages/docs/getting-started/installation.mdpackages/docs/getting-started/quick-start.mdpackages/docs/integrations/simple.mdpackages/docs/integrations/typeorm.md
Adds .github/assets/banner.svg — a self-contained dark hero card (brand gradient mark, wordmark, tagline and a decorative wire-format query string) — and restructures the README around it: centered intro, badge row (stale semantic-release and v1 npm badges replaced by Conventional Commits and MIT license shields), doc quick links, a 'Why rapiq?' pipeline overview, and tabular Parameters. Usage examples are unchanged apart from swapping the axios boilerplate for fetch. Renames README.MD to the conventional README.md casing and updates the agent-doc references.
The hero banner card is swapped for a standalone gradient logo mark plus a plain h1/tagline header, the tagline now claims 'typed REST queries' rather than 'query language' (the typing lives at the endpoints, not on the wire), and the ASCII pipeline diagram becomes a four-stage table (build/transport/validate/execute).
…ent) rapiq connects any two applications — browser to API or service to service (gateway forwarding) — so the tagline, pipeline table, installation groups and schema copy now say calling/receiving application and caller instead of client/server, and a gateway composition note follows the pipeline table.
Every workspace package gets an npm-facing README (title, install, usage sourced from the corresponding VitePress integration/guide page, docs link, license) so the packages are documented on npm and in directory views even though the main docs live on the VitePress site. Links use absolute URLs so they survive npm publishing.
Addresses PR #750 review comments: the README parse example now imports its dataSource, the quick-start and typeorm end-to-end examples guard the nullable URLDecoder.decode result before use, the typeorm end-to-end example gains its missing express/dataSource imports, and the quick-start tip constructs the SimpleParser it references instead of using an undeclared variable.
Summary
Closes out the remaining M4 item of plan 009 (docs v2): the root README v2 alignment — plus a modern redesign of the README and npm-facing READMEs for every package.
v2 alignment
@rapiq/*packages and states the umbrella decision (norapiqmeta-package for v2 — Option B, decided 2026-07-07).npm install rapiq) with per-package installs.URLDecoder+SchemaRegistry/defineSchema+QueryVisitor+TypeormAdapterinstead of the fictionalapplyQueryfrom typeorm-extension.Docs pages corrected in the same review:
getting-started/quick-start.md+integrations/typeorm.md:URLDecoder(notSimpleParser) as thereq.queryentry point — the decoder owns the wire-name mapping;SimpleParserstays documented for canonical-key input.getting-started/index.md+installation.md: expression-dialect examples updated to the function-call grammar (and(eq(name, 'John'), …)), and@rapiq/codec-url-expression/@rapiq/codec-urladded to the package tables.README redesign
.github/assets/logo.svg) atop the README — gradient squircle with the magnifier/filter motif; self-contained, renders on light & dark GitHub themes.README.MDrenamed to the conventionalREADME.md(agent-doc references updated).Per-package READMEs
Every workspace package gets an npm-facing README (one-liner, install, usage sourced from the corresponding VitePress page, docs link, license) — npm and GitHub directory views are covered even though the main docs live on the VitePress site. Links are absolute URLs so they survive npm publishing;
packages/docsgets a short contributor-facing README.Testing
npm run build --workspace=packages/docspasses.