Skip to content
This repository was archived by the owner on Jun 19, 2023. It is now read-only.

CreateTableOptions not properly typed #198

@tsheaff

Description

@tsheaff

I see that this PR: https://github.com/awslabs/dynamodb-data-mapper-js/pull/147/files added support for SSE.

However, there seems do be some odd typing going on. When I read the source, I see that the type for options passed into createTable is CreateTableOptions, which extends BaseCreateTableOptions and includes:

export interface SseSpecification {
    sseType: SseType;
    kmsMasterKeyId?: string;
}

However, when I call createTable this in my code and click through to the type, I'm seeing a different CreateTableOptions type, which only extends ProvisionedThroughput and doesn't include sse options.

The same is true for billingMode.

Here are the types by comparison:

export type CreateTableOptions = ProvisionedCreateTableOptions | OnDemandCreateTableOptions;
export interface CreateTableOptions extends ProvisionedThroughput {
    streamViewType?: StreamViewType;
    indexOptions?: PerIndexOptions;
}

Why is there this odd discrepancy? It leads to a compiler error when calling createTable() with sseSpecification param. cc @jeskew

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions