Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

0.2.0 #106

Closed
28 of 51 tasks
oscartbeaumont opened this issue Jan 8, 2023 · 3 comments
Closed
28 of 51 tasks

0.2.0 #106

oscartbeaumont opened this issue Jan 8, 2023 · 3 comments
Labels
v1.x A change for version 1.x.x

Comments

@oscartbeaumont
Copy link
Member

oscartbeaumont commented Jan 8, 2023

Breaking Changes:

  • Use proper Typescript testing framework #94 - The current custom one is just wrong sometimes
  • Fix TS subscription type ([, null] issue)
  • Move Typescript tests to Vitest + add one for query, subscriptions & mutation for never or single item or many items in enum
  • New transport system
    • Client v2
    • Execute chain of links correctly
    • Require a "terminatingLink" to expose a map and handler functions which are exposed to all links in the chain through a tRPC runtime style thing but extracted from the last link. Error if last link is not a terminatingLink.
    • Websocket Transport
    • Tauri Transport
    • Working AbortController on vanilla client and RQ
    • Both the vanilla client and hooks should have an optional global onError callback
    • Upgrade @rspc/react
    • Upgrade @rspc/solid
    • HTTP Transport.
      • Support for this for setting CORS, cookies and other fetch params.
      • I think the children type is still wrong on the SolidJS hooks
    • Docs
  • Interop Client
    • Basic unit tests for it derived from the old docs
    • Interop Client
    • Interop transports FetchTransport & TauriTransport
    • Check against current npm releases .d.ts that we are matching up
    • Move all tRPC private types into a subexport
    • Fix .subscription types
    • Fix main examples to use the old syntax but include some examples with the new syntax
  • Dropped support for Axum extractors
    • Completely dropped support for any async-style extractors - Both because it's not currently needed and also it also means no Box<dyn Future>!
    • New httpz powered cookie API - styled after tower-cookies API
    • New httpz powered request API - styled after Axum API
    • httpz cookie signing
    • httpz cookie encryption
    • Fix working with the cookiejar over websockets
    • API for using legacy Axum extractors to help with the migration process.
    • As a personal note the cookie handling in rspc will need to be rewritten to not internally suck but for the next idea this is fine.
  • Inline types by default - Specta silently overwrites types defined with duplicate names #101
  • Export Typescript types using type's instead of interface - generate ts types with type keyword instead of interface #83
  • Typescript export use ; as separator instead of , - My vscode autocorrects to this on save
  • Report errors on duplicates in Specta type name. These would previously be "undefined behavior"
  • rspc no longer supports bigints + Specta features for restricting bigints
  • Specta + rspc comment exporting
  • Drop Normi from the repo. It remains in a branch for reference and will probably come back at some point.
  • Use .nest instead of .route to attach the endpoint. This is so we can handle URL prefixes in the router. Also change from /rspc/:id to /rspc.
  • Drop endpoint_with_prefix in favor of httpz being better integrated with routers.
  • Remove TMeta - This will mess with your generics
  • Redone Specta attribute parser. Now will have nicer compiler errors.
  • Dropped beta OpenAPI support because it's not ready enough for practical usage and shouldn't have been included in the last release.
  • Multithreaded Tauri executor

Features:

Internal:

  • Less clone calls which should help with performance/memory usage.
  • Using Specta for internal type safety

Prerelease:

  • Release notes + upgrade guide
  • Upgrade Twidge to test everything
  • Prepare Specta for release
    • Feature gate Remove new language extractors
    • Fix test suite and check it passes with my new macro work
    • Decide how much of Tracking release 0.0.9 specta#1 will be included.
  • Ensure rspc builds and still works in Cloudflare Workers
@oscartbeaumont oscartbeaumont pinned this issue Jan 8, 2023
@dlight
Copy link

dlight commented Jan 8, 2023

just linking the other 0.1.3 issue, #70

@oscartbeaumont
Copy link
Member Author

oscartbeaumont commented Jan 10, 2023

@dlight I forgot I created that. This issue is becoming the definitive source of truth for the next version. This release was expected to come out 2-3 months ago (hence the old issue) but life got in the way and was unable to finish it. I suspect they will have a lot of overlap but I won't include anything on #70 if it's not mentioned here. If there is anything from #70 you really need let me know and I can prioritise it.

@blarfoon
Copy link
Contributor

How would you feel about adding #19 to 0.1.3? I feel like it's a must-have for any non trivial app

@oscartbeaumont oscartbeaumont changed the title 0.1.3 0.2.0 Feb 6, 2023
@oscartbeaumont oscartbeaumont unpinned this issue May 10, 2023
@oscartbeaumont oscartbeaumont added the v1.x A change for version 1.x.x label May 10, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
v1.x A change for version 1.x.x
Development

No branches or pull requests

3 participants