@stackbit/types
Advanced tools
Comparing version 0.1.9-alpha.0 to 0.1.9-alpha.1
import type { ContentSourceInterface } from './content-source'; | ||
import type { Document } from './content-source-document'; | ||
import type { Model, ModelMatchFields } from './models'; | ||
import type { DocumentWithSource } from './content-source-document'; | ||
import type { ModelExtension, ModelMatchFields, ModelWithSource, NamelessModelMap } from './models'; | ||
import { SSG_NAMES, CMS_NAMES } from './consts'; | ||
import { SidebarButton } from './sidebar-button'; | ||
import { Field, FieldListItems } from './model-fields'; | ||
export interface StackbitConfig { | ||
@@ -195,42 +194,2 @@ /** | ||
} | ||
export declare type ModelWithSource = Model & { | ||
srcType: string; | ||
srcProjectId: string; | ||
}; | ||
export declare type DocumentWithSource = Document & { | ||
srcType: string; | ||
srcProjectId: string; | ||
}; | ||
export declare type NamelessModelMap = Record<string, NamelessModel>; | ||
export declare type NamelessModel = DistributeNamelessModels<Model>; | ||
export declare type DistributeNamelessModels<Type extends Model> = Type extends Model ? Omit<Type, 'name'> : never; | ||
export declare type DistributeFieldsExtension<Type extends Field> = Type extends { | ||
type: 'object'; | ||
} ? Partial<Omit<Type, 'name' | 'fields'>> & { | ||
name: string; | ||
fields?: DistributeFieldsExtension<Field>[]; | ||
} : Type extends { | ||
type: 'list'; | ||
} ? Partial<Omit<Type, 'name' | 'items'>> & { | ||
name: string; | ||
items?: DistributePartialListItems<FieldListItems>[]; | ||
} : Type extends { | ||
type: 'style'; | ||
} ? Type : Partial<Omit<Type, 'name'>> & { | ||
name: string; | ||
}; | ||
export declare type DistributePartialListItems<Type extends FieldListItems> = Type extends { | ||
type: 'object'; | ||
} ? Partial<Omit<Type, 'fields'>> & { | ||
fields?: DistributeFieldsExtension<Field>[]; | ||
} : Partial<Type>; | ||
export declare type FieldExtension = DistributeFieldsExtension<Field>; | ||
export declare type DistributeModelExtensions<Type extends Model> = Type extends Model ? Partial<Omit<Type, 'name' | 'fields'>> & { | ||
name: string; | ||
fields?: FieldExtension[]; | ||
} & { | ||
srcType?: string; | ||
srcProjectId?: string; | ||
} : never; | ||
export declare type ModelExtension = DistributeModelExtensions<Model>; | ||
//# sourceMappingURL=config.d.ts.map |
@@ -17,2 +17,6 @@ import type { FieldType } from './model-fields'; | ||
} | ||
export declare type DocumentWithSource = Document & { | ||
srcType: string; | ||
srcProjectId: string; | ||
}; | ||
export interface Asset<AssetContext = unknown> { | ||
@@ -19,0 +23,0 @@ type: TypeAsset; |
@@ -19,3 +19,3 @@ import type { Field, FieldType } from './model-fields'; | ||
index?: number; | ||
item: UpdateOperationField; | ||
item: UpdateOperationListFieldItem; | ||
} | ||
@@ -22,0 +22,0 @@ export interface UpdateOperationRemove extends UpdateOperationBase { |
@@ -6,2 +6,23 @@ /** | ||
export declare type Field = FieldBasic | FieldEnum | FieldImage | FieldNumber | FieldObject | FieldModel | FieldReference | FieldStyle | FieldList; | ||
export declare type DistributeFieldsExtension<Type extends Field> = Type extends { | ||
type: 'object'; | ||
} ? Partial<Omit<Type, 'name' | 'fields'>> & { | ||
name: string; | ||
fields?: DistributeFieldsExtension<Field>[]; | ||
} : Type extends { | ||
type: 'list'; | ||
} ? Partial<Omit<Type, 'name' | 'items'>> & { | ||
name: string; | ||
items?: DistributePartialListItems<FieldListItems>[]; | ||
} : Type extends { | ||
type: 'style'; | ||
} ? Type : Partial<Omit<Type, 'name'>> & { | ||
name: string; | ||
}; | ||
export declare type DistributePartialListItems<Type extends FieldListItems> = Type extends { | ||
type: 'object'; | ||
} ? Partial<Omit<Type, 'fields'>> & { | ||
fields?: DistributeFieldsExtension<Field>[]; | ||
} : Partial<Type>; | ||
export declare type FieldExtension = DistributeFieldsExtension<Field>; | ||
export declare type FieldType = Field['type']; | ||
@@ -8,0 +29,0 @@ export declare type FieldSpecificProps = FieldBasicProps | FieldEnumProps | FieldImageProps | FieldNumberProps | FieldObjectProps | FieldModelProps | FieldReferenceProps | FieldStyleProps | FieldListProps; |
/** | ||
* Stackbit Model Types | ||
*/ | ||
import type { Field, FieldGroupItem } from './model-fields'; | ||
import type { Field, FieldExtension, FieldGroupItem } from './model-fields'; | ||
export declare type Model = ObjectModel | DataModel | PageModel | ConfigModel; | ||
export declare type ModelWithSource = Model & { | ||
srcType: string; | ||
srcProjectId: string; | ||
}; | ||
export declare type NamelessModelMap = Record<string, NamelessModel>; | ||
export declare type NamelessModel = DistributeNamelessModels<Model>; | ||
export declare type DistributeNamelessModels<Type extends Model> = Type extends Model ? Omit<Type, 'name'> : never; | ||
export declare type DistributeModelExtensions<Type extends Model> = Type extends Model ? Partial<Omit<Type, 'name' | 'fields'>> & { | ||
name: string; | ||
fields?: FieldExtension[]; | ||
} & { | ||
srcType?: string; | ||
srcProjectId?: string; | ||
} : never; | ||
export declare type ModelExtension = DistributeModelExtensions<Model>; | ||
export interface ModelCommonFields { | ||
@@ -7,0 +22,0 @@ name: string; |
{ | ||
"name": "@stackbit/types", | ||
"version": "0.1.9-alpha.0", | ||
"version": "0.1.9-alpha.1", | ||
"description": "Types for Stackbit config and Content Source Interface", | ||
@@ -42,3 +42,3 @@ "main": "dist/index.js", | ||
}, | ||
"gitHead": "baec10c5978097386c171c48676e01ecee808b37" | ||
"gitHead": "6f314d14cfa8d55d2a9ae5f13016df7616950b53" | ||
} |
import type { ContentSourceInterface } from './content-source'; | ||
import type { Document } from './content-source-document'; | ||
import type { Model, ModelMatchFields } from './models'; | ||
import type { DocumentWithSource } from './content-source-document'; | ||
import type { ModelExtension, ModelMatchFields, ModelWithSource, NamelessModelMap } from './models'; | ||
import { SSG_NAMES, CMS_NAMES } from './consts'; | ||
import { SidebarButton } from './sidebar-button'; | ||
import { Field, FieldListItems } from './model-fields'; | ||
@@ -220,37 +219,1 @@ export interface StackbitConfig { | ||
} | ||
export type ModelWithSource = Model & { srcType: string; srcProjectId: string }; | ||
export type DocumentWithSource = Document & { srcType: string; srcProjectId: string }; | ||
export type NamelessModelMap = Record<string, NamelessModel>; | ||
export type NamelessModel = DistributeNamelessModels<Model>; | ||
export type DistributeNamelessModels<Type extends Model> = Type extends Model ? Omit<Type, 'name'> : never; | ||
// Make all Field properties except the 'name' optional, including fields of nested objects and lists. | ||
// prettier-ignore | ||
export type DistributeFieldsExtension<Type extends Field> = | ||
Type extends { type: 'object' } ? | ||
Partial<Omit<Type, 'name' | 'fields'>> & { name: string; fields?: DistributeFieldsExtension<Field>[] } : | ||
Type extends { type: 'list' } ? | ||
Partial<Omit<Type, 'name' | 'items'>> & { name: string; items?: DistributePartialListItems<FieldListItems>[] } : | ||
// do not make style fields partial | ||
Type extends { type: 'style' } ? Type : | ||
Partial<Omit<Type, 'name'>> & { name: string }; | ||
// prettier-ignore | ||
export type DistributePartialListItems<Type extends FieldListItems> = | ||
Type extends { type: 'object' } ? | ||
Partial<Omit<Type, 'fields'>> & { fields?: DistributeFieldsExtension<Field>[] } : | ||
Partial<Type>; | ||
export type FieldExtension = DistributeFieldsExtension<Field>; | ||
// prettier-ignore | ||
export type DistributeModelExtensions<Type extends Model> = | ||
Type extends Model | ||
? Partial<Omit<Type, 'name' | 'fields'>> | ||
& { name: string; fields?: FieldExtension[] } | ||
& { srcType?: string; srcProjectId?: string; } | ||
: never; | ||
export type ModelExtension = DistributeModelExtensions<Model>; |
@@ -19,2 +19,4 @@ import type { FieldType } from './model-fields'; | ||
export type DocumentWithSource = Document & { srcType: string; srcProjectId: string }; | ||
export interface Asset<AssetContext = unknown> { | ||
@@ -21,0 +23,0 @@ type: TypeAsset; |
@@ -29,3 +29,3 @@ import type { Field, FieldType } from './model-fields'; | ||
index?: number; | ||
item: UpdateOperationField; | ||
item: UpdateOperationListFieldItem; | ||
} | ||
@@ -32,0 +32,0 @@ |
@@ -18,2 +18,21 @@ /** | ||
// Make all Field properties except the 'name' optional, including fields of nested objects and lists. | ||
// prettier-ignore | ||
export type DistributeFieldsExtension<Type extends Field> = | ||
Type extends { type: 'object' } ? | ||
Partial<Omit<Type, 'name' | 'fields'>> & { name: string; fields?: DistributeFieldsExtension<Field>[] } : | ||
Type extends { type: 'list' } ? | ||
Partial<Omit<Type, 'name' | 'items'>> & { name: string; items?: DistributePartialListItems<FieldListItems>[] } : | ||
// do not make style fields partial | ||
Type extends { type: 'style' } ? Type : | ||
Partial<Omit<Type, 'name'>> & { name: string }; | ||
// prettier-ignore | ||
export type DistributePartialListItems<Type extends FieldListItems> = | ||
Type extends { type: 'object' } ? | ||
Partial<Omit<Type, 'fields'>> & { fields?: DistributeFieldsExtension<Field>[] } : | ||
Partial<Type>; | ||
export type FieldExtension = DistributeFieldsExtension<Field>; | ||
export type FieldType = Field['type']; | ||
@@ -20,0 +39,0 @@ |
@@ -5,6 +5,22 @@ /** | ||
import type { Field, FieldGroupItem } from './model-fields'; | ||
import type { Field, FieldExtension, FieldGroupItem } from './model-fields'; | ||
export type Model = ObjectModel | DataModel | PageModel | ConfigModel; | ||
export type ModelWithSource = Model & { srcType: string; srcProjectId: string }; | ||
export type NamelessModelMap = Record<string, NamelessModel>; | ||
export type NamelessModel = DistributeNamelessModels<Model>; | ||
export type DistributeNamelessModels<Type extends Model> = Type extends Model ? Omit<Type, 'name'> : never; | ||
// Convert all models to have all their properties to be optional except the 'name', and add 'srcType' and 'srcProjectId' properties | ||
// prettier-ignore | ||
export type DistributeModelExtensions<Type extends Model> = | ||
Type extends Model | ||
? Partial<Omit<Type, 'name' | 'fields'>> | ||
& { name: string; fields?: FieldExtension[] } | ||
& { srcType?: string; srcProjectId?: string; } | ||
: never; | ||
export type ModelExtension = DistributeModelExtensions<Model>; | ||
export interface ModelCommonFields { | ||
@@ -11,0 +27,0 @@ name: string; |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
115561
2309