@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
TypeScript
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