Skip to content

Commit acf2462

Browse files
authored
Merge pull request #231 from pacyL2K19/bugfix/#203-nested-properties
Improve nestedProperties' type configuration
2 parents a137e70 + 1bfedd7 commit acf2462

File tree

1 file changed

+18
-6
lines changed
  • src/collections/configure/types

1 file changed

+18
-6
lines changed

src/collections/configure/types/base.ts

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -36,17 +36,31 @@ export type MultiTenancyConfigUpdate = {
3636
autoTenantCreation?: boolean;
3737
};
3838

39+
export type ObjectDataType = 'object' | 'object[]';
40+
41+
export type PrimitiveDataType = Exclude<DataType, ObjectDataType>;
42+
43+
export type NestedDataTypeConfig<T> =
44+
| {
45+
dataType: ObjectDataType;
46+
/** only for object types */
47+
nestedProperties?: NestedPropertyConfigCreate<T, ObjectDataType>[];
48+
}
49+
| {
50+
dataType: PrimitiveDataType;
51+
/** If not an object, or an array of objecs, this field should never be assigned. */
52+
nestedProperties?: never;
53+
};
54+
3955
export type NestedPropertyCreate<T = undefined> = T extends undefined
4056
? {
4157
name: string;
42-
dataType: DataType;
4358
description?: string;
44-
nestedProperties?: NestedPropertyConfigCreate<T, DataType>[];
4559
indexInverted?: boolean;
4660
indexFilterable?: boolean;
4761
indexSearchable?: boolean;
4862
tokenization?: WeaviateNestedProperty['tokenization'];
49-
}
63+
} & NestedDataTypeConfig<T>
5064
: {
5165
[K in NonRefKeys<T>]: RequiresNested<DataType<T[K]>> extends true
5266
? {
@@ -92,17 +106,15 @@ export type NestedPropertyConfigCreateBase = {
92106
export type PropertyConfigCreate<T> = T extends undefined
93107
? {
94108
name: string;
95-
dataType: DataType;
96109
description?: string;
97-
nestedProperties?: NestedPropertyConfigCreate<T, DataType>[];
98110
indexInverted?: boolean;
99111
indexFilterable?: boolean;
100112
indexRangeFilters?: boolean;
101113
indexSearchable?: boolean;
102114
tokenization?: WeaviateProperty['tokenization'];
103115
skipVectorization?: boolean;
104116
vectorizePropertyName?: boolean;
105-
}
117+
} & NestedDataTypeConfig<T>
106118
: {
107119
[K in NonRefKeys<T>]: RequiresNested<DataType<T[K]>> extends true
108120
? {

0 commit comments

Comments
 (0)