UNPKG

cl-fill-link

Version:

Fill generated nextjs links with dynamic values

19 lines (18 loc) 1.05 kB
declare type PrimitiveTypeConstraint = boolean | string | number; declare type Obj<T> = Record<string, T>; declare type QueryConstraint = Obj<PrimitiveTypeConstraint>; declare type ObjConstraint = Obj<unknown>; declare type Query = { $query?: QueryConstraint; }; export declare type InferObject<T extends string, C extends ObjConstraint = {}> = T extends `${infer K}[[...${infer U}]]${infer O}` ? InferObject<`${K}${O}`, { [I in U]: PrimitiveTypeConstraint[]; } & C> : T extends `${infer K}[...${infer U}]${infer O}` ? InferObject<`${K}${O}`, { [I in U]: [PrimitiveTypeConstraint, ...PrimitiveTypeConstraint[]]; } & C> : T extends `${infer K}[${infer U}]${infer O}` ? InferObject<`${K}${O}`, { [I in U]: PrimitiveTypeConstraint; } & C> : C; export declare type Replacer<T extends string> = InferObject<T> & Query; export declare function fillLink<T extends string>(link: T, replacer: Replacer<T>): string; export declare function fillLinkSafe<T extends string>(link: T, replacer: Replacer<T>): string | null; export {};