contentful-management
Version: 
Client for Contentful's Content Management API
54 lines (53 loc) • 1.72 kB
TypeScript
import type { CollectionProp, DefaultElements, EntryMetaSysProps, KeyValueMap, MakeRequest, MetadataProps } from '../common-types';
import type { ContentfulEntryApi } from '../create-entry-api';
import type { AssetProps } from './asset';
export type EntryProps<T = KeyValueMap> = {
    sys: EntryMetaSysProps;
    metadata?: MetadataProps;
    fields: T;
};
export type CreateEntryProps<TFields = KeyValueMap> = Omit<EntryProps<TFields>, 'sys'>;
export type EntryReferenceError = {
    sys: {
        type: 'error';
        id: 'notResolvable';
    };
    details: {
        type: 'Link';
        linkType: 'Entry' | 'Asset';
        id: string;
    };
};
export interface EntryReferenceProps extends CollectionProp<EntryProps> {
    includes?: {
        Entry?: EntryProps[];
        Asset?: AssetProps[];
    };
    errors?: EntryReferenceError[];
}
export type EntryReferenceOptionsProps = {
    include?: number;
};
export interface Entry extends EntryProps, DefaultElements<EntryProps>, ContentfulEntryApi {
}
export type WithResourceName<T extends {
    sys: unknown;
}> = T extends {
    sys: infer Sys;
} ? Omit<T, 'sys'> & {
    sys: Sys & {
        urn: string;
    };
} : never;
/**
 * @private
 * @param makeRequest - function to make requests via an adapter
 * @param data - Raw entry data
 * @return Wrapped entry data
 */
export declare function wrapEntry(makeRequest: MakeRequest, data: EntryProps): Entry;
/**
 * Data is also mixed in with link getters if links exist and includes were requested
 * @private
 */
export declare const wrapEntryCollection: (makeRequest: MakeRequest, data: CollectionProp<EntryProps<KeyValueMap>>) => import("../common-types").Collection<Entry, EntryProps<KeyValueMap>>;