spartan-schema
ts-to-zod
spartan-schema | ts-to-zod | |
---|---|---|
12 | 4 | |
431 | 996 | |
- | - | |
2.7 | 8.0 | |
about 1 year ago | 6 days ago | |
TypeScript | TypeScript | |
GNU General Public License v3.0 or later | 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.
spartan-schema
-
Hegel – An advanced static type checker for JavaScript
In the same vein, shameless plug for my own library, Spartan Schema:
https://github.com/ar-nelson/spartan-schema
It does the same thing as Zod, but is much smaller/simpler and its types always have a JSON representation.
- Spartan Schema: Like JSON Schema, but simpler, and with automatic Typescript types
- Ultra-minimal JSON schemas with TypeScript inference
ts-to-zod
-
How to parse json into typescript types?
You could use something like this https://github.com/fabien0102/ts-to-zod
-
Ultra-minimal JSON schemas with TypeScript inference
YES! I've introduced ts-to-zod into my codebase only yesterday, and it's served my needs exactly. It doesn't handle generics or mapped types, but that's a fair price to pay.
It also works the other way, you can define a zod schema and you can infer types for your data from it.
https://github.com/fabien0102/ts-to-zod
-
Generating dummy entities with random data for tests based on types
The closest that I know of (and I have not used this) is zod-fast-check. It generates fast-check “arbitraries” (test data generators) for property-based testing based on zod schemas. Of course, this requires that you use zod to define your types, which has some downsides. Fortunately there is another tool, ts-to-zod, (which I also have not used) which will codegen zod schemas based on TS type definitions. If you thread these four libraries together you should end up with the ability to write random tests on generated data with very little overhead. In theory.
-
Runtime Data Validation from TypeScript Interfaces
Okay, that's an improvement! We can use TypeScript's native type syntax to define the interface, and augment it with JSDoc comments for any properties that can't be natively expressed. So, to use this with Zod, we need to convert it from the TypeScript syntax to the Zod syntax. Luckily, Fabien Bernard has spearheaded the excellent ts-to-zod project, which looks through interfaces defined in a file and outputs the equivalent Zod schemata for them.
What are some alternatives?
flow-runtime - A runtime type system for JavaScript with full Flow compatibility.
zod - TypeScript-first schema validation with static type inference
Hegel - An advanced static type checker
ts-ast-viewer - TypeScript AST viewer.
ts-simple-type - Relationship type checker functions for Typescript types.
ts-patch - Augment the TypeScript compiler to support extended functionality
slonik - A Node.js PostgreSQL client with runtime and build time type safety, and composable SQL.
intermock - Mocking library to create mock objects with fake data for TypeScript interfaces
swagger-ui - Swagger UI is a collection of HTML, JavaScript, and CSS assets that dynamically generate beautiful documentation from a Swagger-compliant API.
quicktype - Generate types and converters from JSON, Schema, and GraphQL
typebox - Json Schema Type Builder with Static Type Resolution for TypeScript