@sinclair/typebox 0.34.30 → 0.34.31
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -28,8 +28,8 @@ type TFromUnionKeyLiteralString<Key extends TLiteral<string>, Type extends TSche
|
|
|
28
28
|
type TFromUnionKeyLiteralNumber<Key extends TLiteral<number>, Type extends TSchema> = {
|
|
29
29
|
[_ in Key['const']]: Type;
|
|
30
30
|
};
|
|
31
|
-
type
|
|
32
|
-
type TFromUnionKey<Key extends TSchema[], Type extends TSchema,
|
|
31
|
+
type TFromUnionKeyVariants<Keys extends TSchema[], Type extends TSchema, Result extends TProperties = {}> = Keys extends [infer Left extends TSchema, ...infer Right extends TSchema[]] ? (Left extends TUnion<infer Types extends TSchema[]> ? TFromUnionKeyVariants<Right, Type, Result & TFromUnionKeyVariants<Types, Type>> : Left extends TLiteral<string> ? TFromUnionKeyVariants<Right, Type, Result & TFromUnionKeyLiteralString<Left, Type>> : Left extends TLiteral<number> ? TFromUnionKeyVariants<Right, Type, Result & TFromUnionKeyLiteralNumber<Left, Type>> : {}) : Result;
|
|
32
|
+
type TFromUnionKey<Key extends TSchema[], Type extends TSchema, Properties extends TProperties = TFromUnionKeyVariants<Key, Type>> = (Ensure<TObject<Evaluate<Properties>>>);
|
|
33
33
|
type TFromLiteralKey<Key extends TLiteralValue, Type extends TSchema> = (Ensure<TObject<{
|
|
34
34
|
[_ in Assert<Key, PropertyKey>]: Type;
|
|
35
35
|
}>>);
|
|
@@ -28,8 +28,8 @@ type TFromUnionKeyLiteralString<Key extends TLiteral<string>, Type extends TSche
|
|
|
28
28
|
type TFromUnionKeyLiteralNumber<Key extends TLiteral<number>, Type extends TSchema> = {
|
|
29
29
|
[_ in Key['const']]: Type;
|
|
30
30
|
};
|
|
31
|
-
type
|
|
32
|
-
type TFromUnionKey<Key extends TSchema[], Type extends TSchema,
|
|
31
|
+
type TFromUnionKeyVariants<Keys extends TSchema[], Type extends TSchema, Result extends TProperties = {}> = Keys extends [infer Left extends TSchema, ...infer Right extends TSchema[]] ? (Left extends TUnion<infer Types extends TSchema[]> ? TFromUnionKeyVariants<Right, Type, Result & TFromUnionKeyVariants<Types, Type>> : Left extends TLiteral<string> ? TFromUnionKeyVariants<Right, Type, Result & TFromUnionKeyLiteralString<Left, Type>> : Left extends TLiteral<number> ? TFromUnionKeyVariants<Right, Type, Result & TFromUnionKeyLiteralNumber<Left, Type>> : {}) : Result;
|
|
32
|
+
type TFromUnionKey<Key extends TSchema[], Type extends TSchema, Properties extends TProperties = TFromUnionKeyVariants<Key, Type>> = (Ensure<TObject<Evaluate<Properties>>>);
|
|
33
33
|
type TFromLiteralKey<Key extends TLiteralValue, Type extends TSchema> = (Ensure<TObject<{
|
|
34
34
|
[_ in Assert<Key, PropertyKey>]: Type;
|
|
35
35
|
}>>);
|
package/package.json
CHANGED
package/readme.md
CHANGED
|
@@ -1726,6 +1726,7 @@ The following is a list of community packages that offer general tooling, extend
|
|
|
1726
1726
|
| [fastify-type-provider-typebox](https://github.com/fastify/fastify-type-provider-typebox) | Fastify TypeBox integration with the Fastify Type Provider |
|
|
1727
1727
|
| [feathersjs](https://github.com/feathersjs/feathers) | The API and real-time application framework |
|
|
1728
1728
|
| [fetch-typebox](https://github.com/erfanium/fetch-typebox) | Drop-in replacement for fetch that brings easy integration with TypeBox |
|
|
1729
|
+
| [@lonli-lokli/fetcher-typebox](https://github.com/Lonli-Lokli/fetcher-ts/tree/master/packages/fetcher-typebox) | A strongly-typed fetch wrapper for TypeScript applications with optional runtime validation using TypeBox |
|
|
1729
1730
|
| [h3-typebox](https://github.com/kevinmarrec/h3-typebox) | Schema validation utilities for h3 using TypeBox & Ajv |
|
|
1730
1731
|
| [http-wizard](https://github.com/flodlc/http-wizard) | Type safe http client library for Fastify |
|
|
1731
1732
|
| [json2typebox](https://github.com/hacxy/json2typebox) | Creating TypeBox code from Json Data |
|