UNPKG

@vaadin/hilla-models

Version:

Generative form models for Hilla

24 lines (23 loc) 1.37 kB
import type { EmptyObject } from 'type-fest'; import { $enum, $itemModel, type $members, type AnyObject, type Enum, Model, type Value } from './model.js'; export type PrimitiveModel<V = unknown> = Model<V>; export declare const PrimitiveModel: Model<unknown, EmptyObject>; export type StringModel = PrimitiveModel<string>; export declare const StringModel: Model<string, EmptyObject>; export type NumberModel = PrimitiveModel<number>; export declare const NumberModel: Model<number, EmptyObject>; export type BooleanModel = PrimitiveModel<boolean>; export declare const BooleanModel: Model<boolean, EmptyObject>; export type ArrayModel<M extends Model = Model> = Model<Array<Value<M>>, Readonly<{ [$itemModel]: M; }>>; export declare const ArrayModel: Model<unknown[], EmptyObject & Readonly<Record<typeof $itemModel, Model<unknown, EmptyObject, never>>>>; export type ObjectModel<V, EX extends AnyObject = EmptyObject, R extends keyof any = never> = Model<V, EX, R>; export declare const ObjectModel: Model<Readonly<Record<never, never>>, EmptyObject>; export type EnumModel<T extends typeof Enum> = Model<T[keyof T], Readonly<{ [$enum]: T; }>>; export declare const EnumModel: Model<string, EmptyObject & Readonly<Record<typeof $enum, typeof Enum>>>; export type UnionModel<MM extends Model[]> = Model<Value<MM[number]>, Readonly<{ [$members]: MM; }>>;