zod-enum-forge
Version:
Tiny helpers to extend Zod enums for open-set/iterative classification workflows.
35 lines (33 loc) • 1.71 kB
TypeScript
declare function isFlexEnum(x: unknown): boolean;
/**
* Creates a flexible enum that allows for dynamic extension.
*/
declare function flexEnum(values: string[], description?: string): any;
declare function flexEnum(enumDef: any, description?: string): any;
declare function flexEnum(schema: any, dataJson: unknown): any;
declare function flexEnum(zodInstance: any, values: string[], description?: string): any;
declare function flexEnum(zodInstance: any, enumDef: any, description?: string): any;
/**
* Extends a ZodEnum with new values.
*/
declare function forgeEnum(values: string[], add: string[] | string): any;
declare function forgeEnum(enumDef: any, add: string[] | string): any;
declare function forgeEnum(schema: any, key: string, add: string[] | string): any;
interface FlexityInfo {
values: string[];
description?: string;
}
type FlexityLayer = Record<string, FlexityInfo>;
declare function addToEnum(...args: any[]): any;
declare function limitEnum(values: string[], remove: string | string[]): any;
declare function limitEnum(enumOrFlex: any, remove: string | string[]): any;
declare function limitEnum(schema: any, key: string, remove: string | string[]): any;
declare function deleteFromEnum(...args: any[]): any;
declare function strictEnum(schemaOrFlex: any): any;
declare function deflexStructure(schema: any): any;
declare function separateFlexibility(schema: any): {
schema: any;
flexityLayer: FlexityLayer;
};
declare function integrateFlexibility(schema: any, flexityLayer: FlexityLayer): any;
export { type FlexityLayer, addToEnum, deflexStructure, deleteFromEnum, flexEnum, forgeEnum, integrateFlexibility, isFlexEnum, limitEnum, separateFlexibility, strictEnum };