@aws-amplify/amplify-api-next-alpha
Advanced tools
Comparing version 0.7.3 to 0.7.4
@@ -23,5 +23,5 @@ import { type Prettify, __modelMeta__ } from '@aws-amplify/amplify-api-next-types-alpha'; | ||
*/ | ||
type InternalClientSchema<Schema extends ModelSchema<any>, ResolvedSchema = ResolveSchema<Schema>, IdentifierMeta = ModelIdentifier<SchemaTypes<Schema>>, ExplicitScalarFields = ExtractExplicitScalarFields<Schema>, ResolvedFields extends Record<string, unknown> = ResolveFieldProperties<Schema>, RelationshipMeta = RelationalMetadata<ResolvedSchema, ResolvedFields>, Meta = IdentifierMeta & RelationshipMeta & ExplicitScalarFields> = Prettify<ResolvedFields & { | ||
type InternalClientSchema<Schema extends ModelSchema<any>, ResolvedSchema = ResolveSchema<Schema>, IdentifierMeta extends Record<string, any> = ModelIdentifier<SchemaTypes<Schema>>, ExplicitScalarFields = ExtractExplicitScalarFields<Schema>, ResolvedFields extends Record<string, unknown> = ResolveFieldProperties<Schema>, RelationshipMeta = RelationalMetadata<ResolvedSchema, ResolvedFields, IdentifierMeta>, Meta = IdentifierMeta & RelationshipMeta & ExplicitScalarFields> = Prettify<ResolvedFields & { | ||
[__modelMeta__]: Meta; | ||
}>; | ||
export {}; |
@@ -12,8 +12,8 @@ import { type UnionToIntersection, type ExcludeEmpty } from '@aws-amplify/amplify-api-next-types-alpha'; | ||
}; | ||
export type RelationalMetadata<ResolvedSchema, ResolvedFields extends Record<string, unknown>> = UnionToIntersection<ExcludeEmpty<{ | ||
export type RelationalMetadata<ResolvedSchema, ResolvedFields extends Record<string, unknown>, IdentifierMeta extends Record<string, any>> = UnionToIntersection<ExcludeEmpty<{ | ||
[ModelName in keyof ResolvedSchema]: { | ||
[Field in keyof ResolvedSchema[ModelName] as ResolvedSchema[ModelName][Field] extends ModelRelationalFieldParamShape ? ResolvedSchema[ModelName][Field]['relationshipType'] extends 'hasMany' ? ResolvedSchema[ModelName][Field]['relatedModel'] : ResolvedSchema[ModelName][Field]['relationshipType'] extends 'hasOne' | 'belongsTo' ? ModelName : ResolvedSchema[ModelName][Field]['relationshipType'] extends 'manyToMany' ? ResolvedSchema[ModelName][Field]['relationName'] extends string ? ResolvedSchema[ModelName][Field]['relationName'] : never : never : never]: ResolvedSchema[ModelName][Field] extends ModelRelationalFieldParamShape ? ResolvedSchema[ModelName][Field] extends ModelRelationalFieldParamShape ? ResolvedSchema[ModelName][Field]['relationshipType'] extends 'manyToMany' | 'hasMany' ? { | ||
relationalInputFields: Partial<Record<`${Uncapitalize<ModelName & string>}`, ResolvedFields[ModelName & string]>>; | ||
relationalInputFields: Partial<Record<`${Uncapitalize<ModelName & string>}`, NormalizeInputFields<ResolvedFields[ModelName & string], ExtractModelIdentifier<ModelName, IdentifierMeta>>>>; | ||
} : { | ||
relationalInputFields: Partial<Record<Field, ResolvedFields[ResolvedSchema[ModelName][Field]['relatedModel']]>>; | ||
relationalInputFields: Partial<Record<Field, NormalizeInputFields<ResolvedFields[ResolvedSchema[ModelName][Field]['relatedModel']], ExtractModelIdentifier<`${Capitalize<Field & string>}`, IdentifierMeta>>>>; | ||
} : never : never; | ||
@@ -27,2 +27,4 @@ }; | ||
}; | ||
type ExtractModelIdentifier<ModelName, IdentifierMeta> = ModelName extends keyof IdentifierMeta ? IdentifierMeta[ModelName] : never; | ||
type NormalizeInputFields<ModelFields, IdentifierMeta extends Record<string, any>> = Partial<Omit<ModelFields, IdentifierMeta['identifier']>> & Required<Pick<ModelFields, IdentifierMeta['identifier']>>; | ||
type ScalarFieldTypes<T> = { | ||
@@ -29,0 +31,0 @@ [ModelProp in keyof T]: { |
{ | ||
"name": "@aws-amplify/amplify-api-next-alpha", | ||
"version": "0.7.3", | ||
"version": "0.7.4", | ||
"license": "Apache-2.0", | ||
@@ -5,0 +5,0 @@ "repository": { |
Sorry, the diff of this file is not supported yet
166869
1863