UNPKG

node-llama-cpp

Version:

Run AI models locally on your machine with node.js bindings for llama.cpp. Enforce a JSON schema on the model output on the generation level

8 lines (7 loc) 617 B
/** * Makes all the properties of an object optional, including nested objects, * and strips all keys that their value is not of the specified allowed value types. */ export type OverridesObject<T, AllowedValueTypes> = T extends object ? { [P in keyof T]?: OverridesObject<T[P], AllowedValueTypes>; } : T extends Array<infer I> ? AllowedValueTypes extends Array<any> ? Array<OverridesObject<I, AllowedValueTypes>> : never : T extends ReadonlyArray<infer I> ? AllowedValueTypes extends ReadonlyArray<any> ? ReadonlyArray<OverridesObject<I, AllowedValueTypes>> : never : AllowedValueTypes extends T ? T : never;