UNPKG

@nerdware/ddb-single-table

Version:

A schema-based DynamoDB modeling tool, high-level API, and type-generator built to supercharge single-table designs!⚡

13 lines 1.09 kB
import type { KeyAttributeConfig } from "./KeyAttributeConfig.js"; import type { ModelSchemaAttributeConfig } from "./ModelSchemaAttributeConfig.js"; import type { ModelSchemaType } from "./ModelSchemaType.js"; import type { TableKeysSchemaType } from "./TableKeysSchemaType.js"; import type { SetOptional } from "type-fest"; /** * Use this type to derive a _merged_ schema type from merging a * `TableKeysSchema` and a `ModelSchema`. */ export type MergeModelAndTableKeysSchema<TableKeysSchema extends TableKeysSchemaType, ModelSchema extends ModelSchemaType<TableKeysSchema>> = { [K in keyof TableKeysSchema | keyof ModelSchema]: K extends keyof TableKeysSchema ? TableKeysSchema[K] extends KeyAttributeConfig ? K extends keyof ModelSchema ? ModelSchema[K] extends SetOptional<ModelSchemaAttributeConfig, "type" | "required"> ? TableKeysSchema[K] & ModelSchema[K] : never : TableKeysSchema[K] : never : K extends keyof ModelSchema ? ModelSchema[K] extends ModelSchemaAttributeConfig ? ModelSchema[K] : never : never; }; //# sourceMappingURL=MergeModelAndTableKeysSchema.d.ts.map