schemats
reflect-metadata
schemats | reflect-metadata | |
---|---|---|
2 | 3 | |
1,034 | 3,192 | |
0.1% | - | |
0.0 | 7.2 | |
almost 3 years ago | 6 months ago | |
TypeScript | TypeScript | |
MIT License | Apache License 2.0 |
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.
schemats
-
GraphQL error handling to the max with Typescript, codegen and fp-ts
:::note When using remote APIs, we often have the possibility to generate the types automatically from a JSON schema for REST APIs, from protobuf files for gRPC-based APIs, from a database schema, etc. You might even be using an external API through an SDK that already provides you with all types. In such cases, the creation of specialized Error classes is not mandatory. However, it might still be a good idea to do so to provide application-specific errors rather than bubbling up 3rd-party low-level errors. For such cases, the upcoming Ecma TC39 proposal for Error Cause is useful as it allows to chain errors. Polyfills exist: Pony Cause or error-cause. :::
-
Preferred SQL ORM
Using a library such as that one https://github.com/SweetIQ/schemats
reflect-metadata
- TypeScript please give us types
-
Using modern decorators in TypeScript
Second, TypeScript 5.0 cannot emit decorator metadata. Subsequently, it doesn’t integrate with the Reflect API and won’t work with the reflect-metadata npm package.
-
Deconstructing an Object Relationship Mapper (ORM) in Typescript
Database columns will be mapped to domain object properties using decorators. This will include relationships and enum types. reflect-metadata stores metadata about the classes and properties. Most of the work is a simple map for each class, renaming db column properties to domain model properties and vice versa. Reflect.defineProperty holds a list of field metadata on the target class. This is where more database ORM logic could live in the future such as column type, length, etc. A base domain model entity will use this metadata to map the models appropriately.
What are some alternatives?
crystal - 🔮 Graphile's Crystal Monorepo; home to Grafast, PostGraphile, pg-introspection, pg-sql2 and much more!
protobuf-ts - Protobuf and RPC for TypeScript
deno-nessie - A modular Deno library for PostgreSQL, MySQL, MariaDB and SQLite migrations
sequelize-typescript-decorators - Sequelize (SQL ORM for Node) Typescript Decorator that simplifies declarations of Sequelize models...
knex-types - Generate TypeScript definitions (types) from a PostgreSQL database schema.
di-compiler - A Custom Transformer for Typescript that enables compile-time Dependency Injection
fp-ts - Functional programming in TypeScript
arktype - TypeScript's 1:1 validator, optimized from editor to runtime
sql-lint - An SQL linter
ferocity - Write Java expression trees, statements, methods and classes with a LISP-like internal DSL
graphql-error-handling-with-union-and-fpts
typescript-needs-types - TypeScript please give us types.