@stackbit/sdk
Version:
105 lines • 4.46 kB
TypeScript
import * as StackbitTypes from '@stackbit/types';
export type RawConfig = StackbitTypes.StackbitConfig;
export { StackbitConfig, Import, ContentfulImport, SanityImport, ContentModelMap, ContentModel, PresetSource, PresetSourceFiles, ModelsSource, ModelsSourceFiles, ModelsSourceContentful, ModelsSourceSanity, Field, FieldType, FieldSpecificProps, FieldCommonProps, FieldEnum, FieldImage, FieldNumber, FieldObject, FieldModel, FieldReference, FieldStyle, FieldList, FieldListObject, FieldListModel, FieldListReference, FieldBasicProps, FieldEnumProps, FieldEnumDropdownProps, FieldEnumThumbnailsProps, FieldEnumPaletteProps, FieldEnumOptionValue, FieldEnumOptionObject, FieldEnumOptionThumbnails, FieldEnumOptionPalette, FieldImageProps, FieldNumberProps, FieldObjectProps, FieldGroupItem, FieldModelProps, FieldReferenceProps, FieldCrossReferenceProps, StyleProps, FieldStyleProps, FieldListProps, FieldListItems } from '@stackbit/types';
export interface StackbitConfigWithPaths extends StackbitTypes.StackbitConfig {
dirPath: string;
filePath: string;
}
export interface Config extends Omit<StackbitTypes.StackbitConfig, 'models' | 'customContentReload' | 'experimental' | 'sitemap'> {
dirPath: string;
filePath: string;
models: Model[];
presets?: PresetMap;
internalStackbitRunnerOptions?: SSGRunOptions;
hcrHandled?: boolean;
}
export type PresetMap = Record<string, Preset>;
export interface Preset {
label: string;
modelName: string;
srcType: string;
srcProjectId: string;
thumbnail?: string;
locale?: string;
metadata: any;
data: Record<string, any>;
}
export interface SSGRunOptions {
displayName?: string;
runCommand?: string;
runArgs?: string[];
directPaths?: string[];
blockedPaths?: string[];
directRoutes?: Record<string, string>;
proxyWebsockets?: boolean;
triggerInstallFiles?: string[];
triggerRestartFiles?: string[];
appCopySkipFiles?: string[];
cacheDir?: string;
envVars?: Record<string, any>;
directChangeSocketOrigin?: boolean;
directChangeOrigin?: boolean;
patterns?: {
doneStart?: string[];
errorState?: string[];
deletedPage?: string[];
};
patch?: (dir: string, updatedFiles: string[]) => Promise<void>;
unpatch?: (dir: string, updatedFiles: string[]) => Promise<void>;
postInstall?: (dir: string) => Promise<void>;
}
/******************************
*** Normalized Model Types ***
******************************/
export type Model = ObjectModel | DataModel | PageModel | ConfigModel;
export type ObjectModel = StackbitTypes.ObjectModel & BaseModel;
export type DataModel = DataModelSingle | DataModelList;
export type PageModel = StackbitTypes.PageModel & BaseModel;
export type ConfigModel = StackbitTypes.ConfigModel & BaseModel;
export type ImageModel = {
type: 'image';
name: '__image_model';
label?: string;
labelField?: string;
fields?: StackbitTypes.Field[];
source?: string;
};
export interface DataModelSingle extends StackbitTypes.DataModel, BaseModel {
isList?: false;
}
export interface DataModelList extends StackbitTypes.DataModel, BaseModel {
isList: true;
items: StackbitTypes.FieldListItems;
}
export type BaseModel = ModelMetadata & {
presets?: string[];
};
interface ModelMetadata {
__metadata?: {
filePath?: string;
invalid?: boolean;
};
}
/***********************
*** Raw Model Types ***
***********************/
export type YamlModel = YamlObjectModel | YamlPageModel | YamlConfigModel | YamlDataModel;
export type YamlModelMap = Record<string, YamlModel>;
export interface YamlBaseModel extends Omit<StackbitTypes.ModelCommonFields, 'name'>, ModelMetadata {
type: YamlModel['type'];
}
export interface YamlObjectModel extends Omit<StackbitTypes.ObjectModel, 'name'>, ModelMetadata {
}
export interface YamlPageModel extends Omit<StackbitTypes.PageModel, 'name'>, ModelMetadata {
}
export interface YamlConfigModel extends Omit<StackbitTypes.ConfigModel, 'name'>, ModelMetadata {
}
export type YamlDataModel = YamlDataModelSingle | YamlDataModelList;
export interface YamlDataModelSingle extends Omit<StackbitTypes.DataModel, 'name'>, ModelMetadata {
isList?: false;
}
export interface YamlDataModelList extends Omit<StackbitTypes.DataModel, 'name'>, ModelMetadata {
isList: true;
items: StackbitTypes.FieldListItems;
}
//# sourceMappingURL=config-types.d.ts.map