@aws-amplify/data-schema 1.1.3 → 1.1.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/CustomOperation.js +46 -0
- package/dist/cjs/CustomOperation.js.map +1 -1
- package/dist/cjs/CustomType.js +32 -0
- package/dist/cjs/CustomType.js.map +1 -1
- package/dist/cjs/Handler.js +62 -0
- package/dist/cjs/Handler.js.map +1 -1
- package/dist/cjs/MappedTypes/{MapSecondaryIndexes.js → MapIndexes.js} +1 -1
- package/dist/cjs/MappedTypes/MapIndexes.js.map +1 -0
- package/dist/cjs/ModelRelationalField.js +82 -3
- package/dist/cjs/ModelRelationalField.js.map +1 -1
- package/dist/cjs/SchemaProcessor.js +3 -1
- package/dist/cjs/SchemaProcessor.js.map +1 -1
- package/dist/esm/Authorization.d.ts +2 -2
- package/dist/esm/CustomOperation.d.ts +46 -0
- package/dist/esm/CustomOperation.mjs +46 -0
- package/dist/esm/CustomOperation.mjs.map +1 -1
- package/dist/esm/CustomType.d.ts +32 -0
- package/dist/esm/CustomType.mjs +32 -0
- package/dist/esm/CustomType.mjs.map +1 -1
- package/dist/esm/Handler.d.ts +62 -0
- package/dist/esm/Handler.mjs +62 -0
- package/dist/esm/Handler.mjs.map +1 -1
- package/dist/esm/MappedTypes/ImplicitFieldInjector.d.ts +15 -5
- package/dist/esm/MappedTypes/{MapSecondaryIndexes.d.ts → MapIndexes.d.ts} +6 -0
- package/dist/esm/MappedTypes/MapIndexes.mjs +2 -0
- package/dist/esm/MappedTypes/MapIndexes.mjs.map +1 -0
- package/dist/esm/MappedTypes/ModelMetadata.d.ts +12 -5
- package/dist/esm/MappedTypes/ResolveFieldProperties.d.ts +3 -2
- package/dist/esm/ModelField.d.ts +1 -1
- package/dist/esm/ModelRelationalField.d.ts +83 -4
- package/dist/esm/ModelRelationalField.mjs +82 -3
- package/dist/esm/ModelRelationalField.mjs.map +1 -1
- package/dist/esm/ModelType.d.ts +22 -25
- package/dist/esm/RefType.d.ts +1 -1
- package/dist/esm/SchemaProcessor.mjs +3 -1
- package/dist/esm/SchemaProcessor.mjs.map +1 -1
- package/dist/esm/runtime/client/index.d.ts +26 -15
- package/dist/meta/cjs.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/CustomOperation.ts +46 -0
- package/src/CustomType.ts +32 -0
- package/src/Handler.ts +62 -0
- package/src/MappedTypes/ImplicitFieldInjector.ts +22 -14
- package/src/MappedTypes/{MapSecondaryIndexes.ts → MapIndexes.ts} +16 -0
- package/src/MappedTypes/ModelMetadata.ts +17 -12
- package/src/MappedTypes/ResolveFieldProperties.ts +3 -2
- package/src/ModelField.ts +1 -1
- package/src/ModelRelationalField.ts +83 -4
- package/src/ModelType.ts +45 -46
- package/src/RefType.ts +1 -1
- package/src/SchemaProcessor.ts +5 -3
- package/src/runtime/client/index.ts +52 -25
- package/dist/cjs/MappedTypes/MapSecondaryIndexes.js.map +0 -1
- package/dist/esm/MappedTypes/MapSecondaryIndexes.mjs +0 -2
- package/dist/esm/MappedTypes/MapSecondaryIndexes.mjs.map +0 -1
|
@@ -161,7 +161,7 @@ export type ResolvedModel<Model extends Record<string, unknown>, Depth extends n
|
|
|
161
161
|
};
|
|
162
162
|
}[Depth extends -1 ? 'done' : 'recur'];
|
|
163
163
|
export type SelectionSet<Model extends Record<string, unknown>, Path extends ReadonlyArray<ModelPath<FlatModel>>, FlatModel extends Record<string, unknown> = ResolvedModel<Model>> = CustomSelectionSetReturnValue<FlatModel, Path[number]>;
|
|
164
|
-
export type ModelIdentifier<
|
|
164
|
+
export type ModelIdentifier<ModelMeta extends ModelMetaShape> = ModelMeta['identifier']['pk'] & (ModelMeta['identifier']['sk'] extends never ? unknown : ModelMeta['identifier']['sk']);
|
|
165
165
|
type IfEquals<X, Y, A = X, B = never> = (<T>() => T extends X ? 1 : 2) extends <T>() => T extends Y ? 1 : 2 ? A : B;
|
|
166
166
|
type WritableKeys<T> = {
|
|
167
167
|
[P in keyof T]-?: IfEquals<{
|
|
@@ -179,7 +179,7 @@ type MutationInput<Fields, WritableFields = Pick<Fields, WritableKeys<Fields>>>
|
|
|
179
179
|
/**
|
|
180
180
|
* All identifiers and fields used to create a model
|
|
181
181
|
*/
|
|
182
|
-
type CreateModelInput<Model extends Record<string, unknown>, ModelMeta extends
|
|
182
|
+
type CreateModelInput<Model extends Record<string, unknown>, ModelMeta extends ModelMetaShape> = Equal<ModelIdentifier<ModelMeta>, {
|
|
183
183
|
id: string;
|
|
184
184
|
}> extends true ? Partial<ModelIdentifier<ModelMeta>> & Omit<MutationInput<Model>, 'id'> : MutationInput<Model>;
|
|
185
185
|
/**
|
|
@@ -324,7 +324,7 @@ type ModelFilter<Model extends Record<any, any>> = LogicalFilters<Model> & {
|
|
|
324
324
|
export type ModelSortDirection = 'ASC' | 'DESC';
|
|
325
325
|
type ModelMetaShape = {
|
|
326
326
|
secondaryIndexes: SecondaryIndexIrShape[];
|
|
327
|
-
identifier:
|
|
327
|
+
identifier: PrimaryIndexIrShape;
|
|
328
328
|
};
|
|
329
329
|
export type ModelTypesClient<ModelName extends string, Model extends Record<string, unknown>, ModelMeta extends ModelMetaShape, Enums extends Record<string, string>, FlatModel extends Record<string, unknown> = ResolvedModel<Model>> = IndexQueryMethodsFromIR<ModelMeta['secondaryIndexes'], ModelName, Model, Enums> & {
|
|
330
330
|
create: (model: Prettify<CreateModelInput<Model, ModelMeta>>, options?: {
|
|
@@ -348,9 +348,8 @@ export type ModelTypesClient<ModelName extends string, Model extends Record<stri
|
|
|
348
348
|
authToken?: string;
|
|
349
349
|
headers?: CustomHeaders;
|
|
350
350
|
}): SingularReturnValue<Prettify<ReturnValue<Model, FlatModel, SelectionSet>>>;
|
|
351
|
-
list<SelectionSet extends ReadonlyArray<ModelPath<FlatModel>> = never[]>(options?:
|
|
351
|
+
list<SelectionSet extends ReadonlyArray<ModelPath<FlatModel>> = never[]>(options?: ListPkOptions<ModelMeta, Enums> & {
|
|
352
352
|
filter?: ModelFilter<Model>;
|
|
353
|
-
sortDirection?: ModelSortDirection;
|
|
354
353
|
limit?: number;
|
|
355
354
|
nextToken?: string | null;
|
|
356
355
|
selectionSet?: SelectionSet;
|
|
@@ -408,7 +407,7 @@ type ModelTypesSSRCookies<ModelName extends string, Model extends Record<string,
|
|
|
408
407
|
authToken?: string;
|
|
409
408
|
headers?: CustomHeaders;
|
|
410
409
|
}): SingularReturnValue<Prettify<ReturnValue<Model, FlatModel, SelectionSet>>>;
|
|
411
|
-
list<SelectionSet extends ReadonlyArray<ModelPath<FlatModel>> = never[]>(options?:
|
|
410
|
+
list<SelectionSet extends ReadonlyArray<ModelPath<FlatModel>> = never[]>(options?: ListPkOptions<ModelMeta, Enums> & {
|
|
412
411
|
filter?: ModelFilter<Model>;
|
|
413
412
|
sortDirection?: ModelSortDirection;
|
|
414
413
|
limit?: number;
|
|
@@ -441,7 +440,7 @@ type ModelTypesSSRRequest<ModelName extends string, Model extends Record<string,
|
|
|
441
440
|
authToken?: string;
|
|
442
441
|
headers?: CustomHeaders;
|
|
443
442
|
}): SingularReturnValue<Prettify<ReturnValue<Model, FlatModel, SelectionSet>>>;
|
|
444
|
-
list<SelectionSet extends ReadonlyArray<ModelPath<FlatModel>> = never[]>(contextSpec: any, options?:
|
|
443
|
+
list<SelectionSet extends ReadonlyArray<ModelPath<FlatModel>> = never[]>(contextSpec: any, options?: ListPkOptions<ModelMeta, Enums> & {
|
|
445
444
|
filter?: ModelFilter<Model>;
|
|
446
445
|
sortDirection?: ModelSortDirection;
|
|
447
446
|
limit?: number;
|
|
@@ -516,27 +515,39 @@ export type RequestOptions = {
|
|
|
516
515
|
*/
|
|
517
516
|
export type CustomHeaders = Record<string, string> | ((requestOptions?: RequestOptions) => Promise<Record<string, string>>);
|
|
518
517
|
/**
|
|
519
|
-
*
|
|
518
|
+
* PrimaryIndex field types and query methods
|
|
520
519
|
*/
|
|
521
|
-
export
|
|
522
|
-
defaultQueryFieldSuffix: string;
|
|
523
|
-
queryField: string;
|
|
520
|
+
export interface PrimaryIndexIrShape {
|
|
524
521
|
pk: {
|
|
525
522
|
[key: string]: string | number;
|
|
526
523
|
};
|
|
527
524
|
sk: {
|
|
528
525
|
[key: string]: string | number;
|
|
529
|
-
};
|
|
530
|
-
}
|
|
526
|
+
} | never;
|
|
527
|
+
}
|
|
528
|
+
/**
|
|
529
|
+
* SecondaryIndex field types and query methods
|
|
530
|
+
*/
|
|
531
|
+
export interface SecondaryIndexIrShape extends PrimaryIndexIrShape {
|
|
532
|
+
defaultQueryFieldSuffix: string;
|
|
533
|
+
queryField: string;
|
|
534
|
+
}
|
|
531
535
|
type IndexQueryMethodsFromIR<SecondaryIdxTuple extends SecondaryIndexIrShape[], ModelName extends string, Model extends Record<string, unknown>, Enums extends Record<string, string>, Res = unknown> = SecondaryIdxTuple extends [
|
|
532
536
|
infer A extends SecondaryIndexIrShape,
|
|
533
537
|
...infer B extends SecondaryIndexIrShape[]
|
|
534
538
|
] ? IndexQueryMethodsFromIR<B, ModelName, Model, Enums, IndexQueryMethodSignature<A, ModelName, Model, Enums> & Res> : Res;
|
|
535
|
-
type
|
|
539
|
+
type ListPkOptions<ModelMeta extends ModelMetaShape, Enums extends Record<string, string>> = ModelMeta['identifier']['sk'] extends never ? unknown : Prettify<Partial<IndexQueryInput<ModelMeta['identifier'], Enums>> & {
|
|
540
|
+
sortDirection?: ModelSortDirection;
|
|
541
|
+
}>;
|
|
542
|
+
/**
|
|
543
|
+
* Accepts a PrimaryIndexIr or SecondaryIndexIr and returns resolved parameters
|
|
544
|
+
*/
|
|
545
|
+
type IndexQueryInput<Idx extends PrimaryIndexIrShape, Enums extends Record<string, string>> = {
|
|
536
546
|
[PKField in keyof Idx['pk']]: Idx['pk'][PKField] extends `${deferredRefResolvingPrefix}${infer R}` ? Enums[R] : Idx['pk'][PKField];
|
|
537
547
|
} & {
|
|
538
548
|
[SKField in keyof Idx['sk']]+?: number extends Idx['sk'][SKField] ? NumericFilter : Idx['sk'][SKField] extends `${deferredRefResolvingPrefix}${infer R}` ? StringFilter<Enums[R]> : StringFilter<Idx['sk'][SKField] & string>;
|
|
539
|
-
}
|
|
549
|
+
};
|
|
550
|
+
type IndexQueryMethodSignature<Idx extends SecondaryIndexIrShape, ModelName extends string, Model extends Record<string, unknown>, Enums extends Record<string, string>> = Record<IsEmptyStringOrNever<Idx['queryField']> extends false ? Idx['queryField'] : `list${ModelName}By${Idx['defaultQueryFieldSuffix']}`, <FlatModel extends Record<string, unknown> = ResolvedModel<Model>, SelectionSet extends ReadonlyArray<ModelPath<FlatModel>> = never[]>(input: IndexQueryInput<Idx, Enums>, options?: {
|
|
540
551
|
filter?: ModelFilter<Model>;
|
|
541
552
|
sortDirection?: ModelSortDirection;
|
|
542
553
|
limit?: number;
|