trpc-openapi
proposal-pattern-matching
trpc-openapi | proposal-pattern-matching | |
---|---|---|
11 | 67 | |
2,006 | 5,344 | |
2.3% | 0.9% | |
3.5 | 9.0 | |
23 days ago | 13 days ago | |
TypeScript | HTML | |
MIT License | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
trpc-openapi
-
Create Production-Ready SDKs for tRPC
tRPC does not natively export OpenAPI documents, but the trpc-openapi package adds this functionality. We'll start this tutorial by adding trpc-openapi to a project, and then we'll add a script to generate an OpenAPI schema and save it as a file.
-
Using OpenAPI to Detect Breaking Changes in tRPC
While trpc-openapi originally was used to expose REST endpoints of the tRPC router, we will use it to generate an OpenAPI specification for our API.
-
tRPC – Move Fast and Break Nothing. End-to-end typesafe APIs made easy
Sure it can, you can use https://github.com/prosepilot/trpc-openapi
-
Will you, and when will you, use trpc in your code?
You either have to go with react native or use https://github.com/jlalmes/trpc-openapi to generate rest endpoint using trpc. lol. Not sure how good the trpc-openapi package is though. Read somewhere it was missing stuff
-
Is tRPC redundant with SvelteKit?
As for exposing the API externally, neither (can) limit this but SvelteKit's API is generally considered to be an internal implementation detail that you don't use directly since it might change between versions. If you want to expose an API you should choose tRPC, probably alongside the OpenAPI plugin or something similar.
-
[AskTS] What do you think will be the future of runtime type checking?
In essence, features of the language made for static type checking at compilation are possibly being left favour of tools that act like a superset of the language that provide the static build type checking and offer runtime type checking too. An example I recently saw was the trpc-openapi package which uses Zod for creating the types of the schema for the http request and responses, it takes a zod schema as that is what it can use when compiled to JavaScript to generate the types for the openapi file at runtime, there's scarcely a type or interface in sight when using it but you have full type safety.
-
Help me get out of stack hell
Take a look at https://github.com/jlalmes/trpc-openapi which will give you a rest endpoint based on your trpc router. Ymmv in reality but basically this should give you some confidence that your trpc router can be called from another client (not just next).
-
Full-Stack TypeScript with tRPC and React
Ok thanks, I did find a good example here https://github.com/jlalmes/trpc-openapi/blob/master/examples/with-nextjs/src/server/router.ts
-
Why we ditched GraphQL for tRPC
There is an OpenAPI Extension for tRPC that can be used to create a more REST-like API from your procedures, and that in turn can be used for auto-generating documentation. But if my app needed to offer third-party API access, I would likely reach for GraphQL again.
tRPC is nice because you have type safety the whole way down. Someone has made a tRPC OpenaAPI for exposing tRPC procedures externally in the OpenAPI format https://github.com/jlalmes/trpc-openapi
proposal-pattern-matching
-
Coming to grips with JS: a Rubyist's deep dive
Note, however, that there is a proposal to add pattern matching to JS.
-
Level up your Typescript game, functionally - Part 2
There's an ECMAScript proposal that is in the works to add this feature to the language! It's going to look something like this.
-
Building React Components Using Unions in TypeScript
More importantly, TypeScript typically commits to build things into itself when the proposal in JavaScript reaches Stage 3. The pattern matching proposal in JavaScript is Stage 1, but depends on many other proposals as well that may or may not need to be at Stage 3 as well for it to work. This particular proposal is interested on pattern matching on JavaScript Objects and other primitives, just like Python does with it’s native primitives. These are also dynamic types which helps in some areas, but makes it harder than others. Additionally, the JavaScript type annotations proposal needs to possibly account for this. So it’s going to be awhile. Like many years.
-
Explicit Software Design. Preliminary Conclusions
For true™ functional programming in JS, native pattern matching and partial function application are missing (at least for now: 1, 2). For proper OOP, it lacks real interfaces and compile-time dependency injection.
-
TypeScript Is Surprisingly OK for Compilers
The proposal for pattern matching syntax seems more akin to what they're looking for.
https://github.com/tc39/proposal-pattern-matching
-
[AskJS] C# in every Node.js job posting?
There's a proposal to add something like that to JavaScript but it's been stuck in limbo since 2017 although there are libraries like ts-pattern which implement it already.
-
[AskTS] What do you think will be the future of runtime type checking?
I'll admit, it is easy to assert that the TypeScript language should not be involved in the matters of packages but I also wonder if we're moving towards a point where interfaces will be as common as namespaces and whether or not it would be sensible for the language to incorporate such type assertions into the language formally, after all, it already compiles to various forms of JavaScript and there is a stage 1 proposal submitted to the TC39 committee to give JavaScript pattern matching. If adopted, wouldn't it make sense to allow TypeScript to compile a type into a type guard for the native JavaScript pattern matcher?
- Updates from the 96th TC39 meeting
-
Mostly adequate guide to FP (in JavaScript)
Both are active tc39 proposals :)
https://github.com/tc39/proposal-pipeline-operator - Stage 2
https://github.com/tc39/proposal-pattern-matching - Stage 1
Hopefully we get both in the next couple of years.
-
CoffeeScript for TypeScript
We often add promising TC39 proposals into Civet so people can experiment without waiting.
We've added https://github.com/tc39/proposal-pipeline-operator, a variant of https://github.com/tc39/proposal-pattern-matching, a variant of https://github.com/tc39/proposal-string-dedent and others.
Since our goal is to be 99% compatible with ES we'll need to accommodate any proposals that become standard and pick up anything TC39 leaves on the table (rest parameters in any position, etc.)
What are some alternatives?
spot - Spot is a concise, developer-friendly way to describe your API contract.
fp-ts - Functional programming in TypeScript
create-t3-app - The best way to start a full-stack, typesafe Next.js app
package.elm-lang.org - website for browsing packages and exploring documentation
typescript-runtime-type-benchmarks - 📊 Benchmark Comparison of Packages with Runtime Validation and TypeScript Support
content - The content behind MDN Web Docs
trpc-fe-boilerplate-next - ⚒️ Minimal tRPC frontend Nextjs boilerplate for separate BE-FE repositories. Easily consume fully typesafe APIs.
ecma262 - Status, process, and documents for ECMA-262
openapi-typescript - Generate TypeScript types from OpenAPI 3 specs
proposal-pipeline-operator - A proposal for adding a useful pipe operator to JavaScript.
ttype-safe - TypeScript runtime type validator generator that creates validation functions from TypeScript types with custom validation rules defined using JSDoc comments.
proposal-record-tuple - ECMAScript proposal for the Record and Tuple value types. | Stage 2: it will change!