@prismicio/types-internal
Version:
Prismic types for Custom Types and Prismic Data
43 lines (42 loc) • 2.18 kB
TypeScript
import * as t from "io-ts";
import { type Group, type NestableWidget } from "../../customtypes";
import { LegacyContentCtx, WithTypes } from "../LegacyContentCtx";
import { ContentPath, TraverseWidgetContentFn } from "../utils";
import { NestableContent } from "./nestable";
export declare const GroupItemContentType: "GroupItemContent";
export declare const GroupContentType: "GroupContentType";
export declare const GroupItemContent: t.Type<GroupItemContent>;
export declare type GroupItemContent = {
__TYPE__: typeof GroupItemContentType;
key: string;
value: [string, NestableContent | GroupContent][];
};
export declare const GroupContent: t.Type<GroupContent>;
export declare type GroupContent = {
__TYPE__: typeof GroupContentType;
value: GroupItemContent[];
};
export declare const isGroupContent: (u: unknown) => u is GroupContent;
export declare const GroupContentDefaultValue: GroupContent;
declare const itemLegacyReader: t.RecordC<t.StringC, t.UnknownC>;
export declare type GroupItemLegacy = t.TypeOf<typeof itemLegacyReader>;
export declare const GroupItemLegacy: (ctx: LegacyContentCtx, index: number) => t.Type<GroupItemContent, WithTypes<{
[x: string]: unknown;
}>, unknown>;
export declare function arrayWithIndexCodec<T, O>(f: (index: number) => t.Type<T, O, unknown>): t.Type<Array<T>, O[], unknown>;
declare type GroupLegacy = Array<GroupItemLegacy>;
export declare const GroupLegacy: (ctx: LegacyContentCtx) => t.Type<GroupContent, WithTypes<GroupLegacy>, unknown>;
export declare function groupContentWithDefaultValues(customType: Group, content: GroupContent): GroupContent;
export declare function traverseGroupContent({ path, key, apiId, model, content, }: {
path: ContentPath;
key: string;
apiId: string;
content: GroupContent;
model?: Group | undefined;
}): (transform: TraverseWidgetContentFn) => GroupContent | undefined;
export declare function traverseGroupItemsContent({ path, model, content, }: {
path: ContentPath;
content: Array<GroupItemContent>;
model?: Record<string, Group | NestableWidget> | undefined;
}): (transform: TraverseWidgetContentFn) => Array<GroupItemContent>;
export {};