@stackbit/types
Version:
Types for Stackbit config and Content Source Interface
55 lines • 2.67 kB
TypeScript
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