UNPKG

@vaadin/hilla-models

Version:

Generative form models for Hilla

32 lines (31 loc) 1.61 kB
import { type $defaultValue, type $members, type AnyObject, type Enum, type Extensions, type TargetModel, Model, type ModelConverter, type Value } from './Model.js'; export type PrimitiveModel<V = unknown> = Model<V>; export declare const PrimitiveModel: Model<unknown>; export type StringModel = PrimitiveModel<string>; export declare const StringModel: Model<string>; export type NumberModel = PrimitiveModel<number>; export declare const NumberModel: Model<number>; export type BooleanModel = PrimitiveModel<boolean>; export declare const BooleanModel: Model<boolean>; export declare const $itemModel: unique symbol; export type ArrayModel<M extends Model = Model> = Model<Array<Value<M>>, { readonly [$itemModel]: M; }>; export declare const ArrayModel: ArrayModel; export type ObjectModel<V, EX extends AnyObject = AnyObject> = Model<V, { readonly [K in keyof EX]: EX[K] extends ModelConverter ? TargetModel<EX[K], ObjectModel<V, EX>> : EX[K]; }>; export declare const ObjectModel: Model<Readonly<Record<never, never>>>; export type RecordModel<K extends string, V> = Model<Record<K, V>>; export declare const RecordModel: Model<Record<string, unknown>>; export declare const $enum: unique symbol; export type EnumModel<T extends typeof Enum> = Model<T[keyof T], { readonly [$enum]: T; }>; export declare const EnumModel: EnumModel<typeof Enum>; export type UnionModel<MM extends Model[]> = Model<Value<MM[number]>, { readonly [$members]: MM; }>; export type OptionalModel<M extends Model> = Model<M[typeof $defaultValue] | undefined, Extensions<M> & { readonly $optional: true; }>;