refute
orval
refute | orval | |
---|---|---|
3 | 20 | |
9 | 2,344 | |
- | - | |
5.9 | 9.6 | |
7 months ago | 3 days ago | |
TypeScript | TypeScript | |
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.
refute
-
Ramda: A practical functional library for JavaScript programmers
I find straight forward, dedicated combinators much more readable and practical to use ie. for iterables (context where it makes a lot of sense) [0] example [1], runtime assertions (through refutations, which are much faster than combinators over assertions) [2], parser combinators for smallish grammars [3] etc.
In many cases vanilla/imperative js is more readable and terse, no need to bring functional fanaticism everywhere, just in places where it gives true benefits and in form that can be understood by peers.
Functional code can be beautiful and can also be unreadable/undebugable. Same with imperative code. It's great in js/ts you can pick approach where the problem is expressed more naturally and mix it at will.
[0] https://github.com/preludejs/generator
[1] https://observablehq.com/@mirek/project-euler
[2] https://github.com/preludejs/refute
[3] https://github.com/preludejs/parser
-
Ask HN: Why isn't JSON-RPC more widely adopted?
We use jsonrpc over websockets in production for many years in trading services. It works very well. We use lightweight libraries that look like this [0] and this [1]. It's lightweight, fast, type safe, easy to maintain and debug etc.
[0] https://github.com/preludejs/jsonrpc
[1] https://github.com/preludejs/refute
-
An Inconsistent Truth: Next.js and Typesafety
Types can be asserted at runtime (parsed) at IO boundaries (reading http request or response, websocket message, parsing json file etc). Once they enter statically type system they don't need to be asserted again.
The difference it makes is illusion of type-safety vs type-safety this article touches on.
You can try to bind service with client somehow but in many cases this will fail in production as you can't guarantee paired versioning, due to normal situations by design of your architecture or temporary mid-deployment state or other team doing something they were not suppose to do etc. It's hard to avoid runtime parsing in general.
Functional combinators [0] or faster [1] with predicate/assert semantics work very well with typescript, which is very pleasant language to work with.
[0] https://github.com/appliedblockchain/assert-combinators
[1] https://github.com/preludejs/refute
orval
-
HonoJS: Small, simple, and ultrafast web framework for the Edges
In cases where the client needs to stay separate, we have had a good experience with Orval[1] to generate a fully-typed @tanstack/query client from our OpenAPI spec.
[1] https://orval.dev/
-
Litestar – powerful, flexible, and highly performant Python ASGI framework
- Vite/React/Tailwind for the frontend, with [Orval](https://orval.dev/) to generate FE definitions based on the API spec.
For non-API/SPA use-cases, it also has good HTML support, with built-in Jinja and HTMX integrations. The docs are great (https://docs.litestar.dev/latest/ - not quite Django-tier but that's the gold standard), however the reference application is a tad too complex imo (https://github.com/litestar-org/litestar-fullstack).
https://github.com/litestar-org/awesome-litestar has a list of useful extensions - highly recommend trying it out if you are starting a new Python web project.
-
How to Automatically Consume RESTful APIs in Your Frontend
In order to generate the API client, there are a few options available, but we are going to use (Orval)[https://orval.dev]. Orval is a CLI tool that generates API clients based on an OpenAPI specification. It supports TypeScript, JavaScript, Axios, React, Vue, Angular and Svelte and it's highly customizable.
-
Getting the most out of vscode
I would use "reveal": "never" if I don't care about the results of the command, for example, I generate swagger types using orval.dev on every folder open, but I want this to run in background as it's not that important, so I use "reveal": "never" for it.
-
Mock Service Worker(msw) releases 2.0
we started using (and now contributing to) https://orval.dev/ this year which both generates the mocks using MSW as well as the client-side networking code (React Query in our case). It removes so much boilerplate its amazing.
wrote up the basics of our workflow few weeks ago https://betaacid.co/blog/api-contracts
-
Ask HN: Why isn't JSON-RPC more widely adopted?
Personally, find gRPC-Web very attractive but the current state of TypeScript/JS code-gen is very confusing and lacking.
I would love something like https://orval.dev for gRPC-web. Have I missed something or is it just early to expect it?
I tried a few libraries but couldn't get them to work or would generate unappealing results. I believe I'm hitting this issue with my local experiments. https://github.com/grpc/grpc-web/issues/535
-
I made a framework to build fully-typed RESTful server and client with zero dependency
This is a Library I've used in the past, https://github.com/anymaniax/orval
-
Best / Modern Test Stack for a new big Next.js project
If you have OpenAPI specs to work with you could also use Orval (https://orval.dev/) to generate a lot of code. We’re just starting to evaluate it at work but so far the team that’s trialing it is liking it.
-
React & REST APIs: End-To-End TypeScript Based On OpenAPI Docs
On the frontend we can use the OpenAPI docs to generate the TS types for our data structures. Not only types but fetch functions as well as react-query hook can be generated as well. And in this blog post you can see how to do that with a library called Orval.
-
React & REST APIs: End-To-End TypeScript Based On OpenAPI Docs
On this page, we’ll use a code generator called Orval.
What are some alternatives?
assert-combinators - Functional assertion combinators.
openapi-typescript-codegen - NodeJS library that generates Typescript or Javascript clients based on the OpenAPI specification
next-rpc - makes exported functions from API routes accessible in the browser. Just import your API function and call it anywhere you want.
jest-mock-extended - Type safe mocking extensions for Jest https://www.npmjs.com/package/jest-mock-extended
parser - String parser combinators
react-query-auth - ⚛️ Authenticate your react applications easily with react-query.
sick - Streams of Independent Constant Keys
rtk-query - Data fetching and caching addon for Redux Toolkit
gradual-typing-bib - A bibliography on Gradual Typing
NSwag - The Swagger/OpenAPI toolchain for .NET, ASP.NET Core and TypeScript.
graphql-code-generator - A tool for generating code based on a GraphQL schema and GraphQL operations (query/mutation/subscription), with flexible support for custom plugins.
such - A powerful fake data library, expandable, configurable, generate data exactly as you want.