chore: pre-GA cleanup sweep - #866
Conversation
The async option was deprecated in favor of parseAsync() and had no remaining readers; IParserOptions itself carried nothing else, so the type is gone and IParser constrains its options via ObjectLiteral. BREAKING CHANGE: select the execution mode by calling parse() or parseAsync(), not via an options flag.
📝 WalkthroughWalkthroughThe change removes deprecated parser option typing, adds URL codec tests for field operators, updates package metadata, removes an unused development dependency, and cleans up obsolete TODO comments. ChangesParser and codec maintenance
Estimated code review effort: 2 (Simple) | ~10 minutes Possibly related PRs
Suggested reviewers: 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 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
Pre-GA cleanup sweep across the v2 monorepo, primarily removing deprecated parser surface area and aligning metadata/tests with the current v2 behavior.
Changes:
- Removed the deprecated
IParserOptions.asyncoption pathway from@rapiq/core’s parser types (favoringparseAsync()explicitly). - Removed unused
@ucast/sqlfrom@rapiq/coredevDependencies and updated the lockfile accordingly. - Added URL codec unit coverage for
fieldsoperator prefixes and performed small hygiene cleanups (stale TODO removals; npm keywords fill-in).
Reviewed changes
Copilot reviewed 7 out of 8 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| packages/parser-simple/test/unit/parser/filters.spec.ts | Updates stale commentary around deep nested include behavior to reflect v2 alias/IR responsibilities. |
| packages/parser-simple/src/parameter/filters/module.ts | Removes an obsolete TODO comment from the filters parser implementation. |
| packages/core/src/parser/types.ts | Removes deprecated IParserOptions.async from the exported parser type surface; updates generics accordingly. |
| packages/core/src/parser/parameter/filters/types.ts | Drops IParserOptions usage from filters parse options after the deprecation removal. |
| packages/core/package.json | Removes unused @ucast/sql devDependency from core. |
| packages/codec-url/test/unit/simple-fields.spec.ts | Adds a unit test covering encoding of +/- field operators and schemaless decode resolution semantics. |
| packages/adapter-typeorm/package.json | Populates keywords to match the ecosystem vocabulary and include typeorm. |
| package-lock.json | Removes @ucast/sql (and related entries) consistent with the core manifest change. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
There was a problem hiding this comment.
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
packages/core/src/parser/types.ts (1)
74-81: 🗄️ Data Integrity & Integration | 🟠 Major | ⚡ Quick winKeep unparameterized
IParseroptions closed.
ObjectLiteralisRecord<string, any>, soIParser’sOptions = ObjectLiteraltype-checksparse(input, { async: true }). Use a no-options default or require a concrete options type, plus a regression test that rejectsasync.🤖 Prompt for 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. In `@packages/core/src/parser/types.ts` around lines 74 - 81, Update the default Options type parameter on IParser so an unparameterized parser does not accept arbitrary option properties such as async; use the project’s no-options type or require callers to provide a concrete options type while preserving typed options for parameterized parsers. Add a regression type test confirming IParser rejects { async: true }.
🤖 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.
Outside diff comments:
In `@packages/core/src/parser/types.ts`:
- Around line 74-81: Update the default Options type parameter on IParser so an
unparameterized parser does not accept arbitrary option properties such as
async; use the project’s no-options type or require callers to provide a
concrete options type while preserving typed options for parameterized parsers.
Add a regression type test confirming IParser rejects { async: true }.
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro Plus
Run ID: 0fb66b64-71b7-49ab-913a-c610de7d8963
⛔ Files ignored due to path filters (1)
package-lock.jsonis excluded by!**/package-lock.json
📒 Files selected for processing (7)
packages/adapter-typeorm/package.jsonpackages/codec-url/test/unit/simple-fields.spec.tspackages/core/package.jsonpackages/core/src/parser/parameter/filters/types.tspackages/core/src/parser/types.tspackages/parser-simple/src/parameter/filters/module.tspackages/parser-simple/test/unit/parser/filters.spec.ts
💤 Files with no reviewable changes (2)
- packages/core/package.json
- packages/parser-simple/src/parameter/filters/module.ts
Small pre-GA cleanups surfaced by the release-readiness audit (plan 025 follow-up):
IParserOptions.asyncescape hatch (plan 025 §4 item 1; zero readers,parseAsync()is the settled path). Breaking, pre-GA sanctioned.@ucast/sqldevDependency (only reference was the manifest itself).keywordslist (mirrors adapter-sql, plustypeorm).src/carries no todo markers.operator missingnote): the encoder writes the+/-prefixes onto the wire, and a schemaless decode resolves them viaFields.execute(opt-in flattens, exclusion drops).Deliberately untouched: the
@rapiq/adapter-memorypeer on adapter-sql/adapter-typeorm (it arrived with the field-gates work in #837 and signals the post-fetchapplyFieldConditionscontract).Full build, lint and test are green across all packages.
Summary by CodeRabbit
New Features
Refactor
Documentation