SingleIndexIrFromType<Idx, ResolvedFields>: Idx extends ModelIndexType<any, infer PK extends string, infer SK extends readonly string[], infer QueryField extends string | never, any>
    ? {
        compositeSk: SK["length"] extends 0 | 1
            ? never
            : CompositeSkFieldName<ArrayShift<SK>, SK[0]>;
        defaultQueryFieldSuffix: QueryFieldLabelFromTuple<SK, Capitalize<PK>>;
        pk: PK extends keyof ResolvedFields
            ? {
                [Key in PK]: Exclude<ResolvedFields[PK], null>
            }
            : never;
        queryField: QueryField;
        sk: unknown extends SK
            ? never
            : ResolvedSortKeyFields<SK, ResolvedFields>;
    }
    : never

Type Parameters

  • Idx extends ModelIndexTypeShape

    accepts a single ModelIndexType

  • ResolvedFields

    resolved model fields

Returns

an IR with the following shape: { queryField: string; pk: { [fieldName: string]: string | number } sk: { [fieldName: string]: string | number } | never }

Remarks

  • the IR type alias is defined as SecondaryIndexIrShape in data-schema-types