UNPKG

@stackbit/types

Version:

Types for Stackbit config and Content Source Interface

55 lines 2.67 kB
import type { Version } from './content-source'; import type { FieldType, Field, FieldForType, FieldSpecificProps, FieldSpecificPropsForType } from './model-fields'; import type { StackbitConfig } from './config'; import type { AssetFileField, AssetFileFieldLocalized } from './content-source-document'; import type { DocumentField, DocumentFieldForType, DocumentFieldLocalized, DocumentFieldNonLocalizedForType } from './content-source-document-fields'; export declare function loadJSON(filePath: string): Promise<any>; export declare function getInterfaceVersion(): Promise<any>; export declare function getVersion(options?: { packageJsonPath?: string; contentSourceVersion?: string; }): Promise<Version>; export declare function isLocalizedField(field: DocumentField | AssetFileField): field is DocumentFieldLocalized | AssetFileFieldLocalized; /** * Returns non-localized version of a DocumentField for the provided `locale`. * If the `field` is localized, and the provided locale is not present, this * function returns `undefined`. If the `field` is not localized, this function * returns the `field` as-is ignoring the `locale`. * * @example Passing localized field * getLocalizedFieldForLocale({ * type: 'string', * localized: true, * locales: { * en-US: { value: 'Hello' }, * es-ES: { value: 'Hola' }, * fr-FR: { value: 'Bonjour' } * } * }, 'es-ES'); * returns: * { * type: 'string', * value: 'Hola' * } * * @example Passing non-localized field * getLocalizedFieldForLocale({ * type: 'string', * value: 'Hello' * }); * returns: * { * type: 'string', * value: 'Hello' * } * * @param field * @param locale */ export declare function getLocalizedFieldForLocale<Type extends FieldType>(field?: DocumentFieldForType<Type>, locale?: string): DocumentFieldNonLocalizedForType<Type> | undefined; export declare function isOneOfFieldTypes<T extends FieldType>(fieldType: FieldType, fieldTypes: ReadonlyArray<T>): fieldType is T; export declare function isModelFieldOneOfFieldTypes<T extends FieldType>(modelField: Field, fieldTypes: ReadonlyArray<T>): modelField is FieldForType<T>; export declare function isModelFieldSpecificPropsOneOfFieldTypes<T extends FieldType>(modelField: FieldSpecificProps, fieldTypes: ReadonlyArray<T>): modelField is FieldSpecificPropsForType<T>; export declare function isDocumentFieldOneOfFieldTypes<T extends FieldType>(documentField: DocumentField, fieldTypes: ReadonlyArray<T>): documentField is DocumentFieldForType<T>; export declare function defineStackbitConfig(stackbitConfig: StackbitConfig): StackbitConfig; //# sourceMappingURL=utils.d.ts.map