Skip to content

Commit ca5f456

Browse files
author
Michael Wittwer
committed
feat(aws-sdk-v3): [WIP] update imports
remove makeRequest method on dynamo-db-wrapper.ts since no underlying method is available
1 parent 1305d28 commit ca5f456

File tree

7 files changed

+41
-34
lines changed

7 files changed

+41
-34
lines changed

src/dynamo/batchget/batch-get.request.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ import { BatchGetResponse } from './batch-get.response'
1818
* Request class for the BatchGetItem operation. Read multiple items from one or more tables.
1919
*/
2020
export class BatchGetRequest {
21-
get dynamoDB(): DynamoDB {
21+
get dynamoDB(): DynamoDB.DynamoDB {
2222
return this.dynamoDBWrapper.dynamoDB
2323
}
2424

@@ -27,7 +27,7 @@ export class BatchGetRequest {
2727
private readonly tables: Map<string, ModelConstructor<any>> = new Map()
2828
private itemCounter = 0
2929

30-
constructor(dynamoDB?: DynamoDB) {
30+
constructor(dynamoDB?: DynamoDB.DynamoDB) {
3131
this.dynamoDBWrapper = new DynamoDbWrapper(dynamoDB)
3232
this.params = {
3333
RequestItems: {},

src/dynamo/batchwrite/batch-write.request.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,15 +14,15 @@ import { BATCH_WRITE_DEFAULT_TIME_SLOT, BATCH_WRITE_MAX_REQUEST_ITEM_COUNT } fro
1414
* Request class for the BatchWriteItem operation. Put or delete multiple items in one or more table.
1515
*/
1616
export class BatchWriteRequest {
17-
get dynamoDB(): DynamoDB {
17+
get dynamoDB(): DynamoDB.DynamoDB {
1818
return this.dynamoDBWrapper.dynamoDB
1919
}
2020

2121
readonly params: DynamoDB.BatchWriteItemInput
2222
private readonly dynamoDBWrapper: DynamoDbWrapper
2323
private itemCount = 0
2424

25-
constructor(dynamoDB?: DynamoDB) {
25+
constructor(dynamoDB?: DynamoDB.DynamoDB) {
2626
this.dynamoDBWrapper = new DynamoDbWrapper(dynamoDB)
2727
this.params = {
2828
RequestItems: {},

src/dynamo/dynamo-db-wrapper.ts

Lines changed: 20 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -10,61 +10,65 @@ import { dynamoEasyConfig } from '../config/dynamo-easy-config'
1010
* @hidden
1111
*/
1212
export class DynamoDbWrapper {
13-
readonly dynamoDB: DynamoDB
13+
readonly dynamoDB: DynamoDB.DynamoDB
1414

15-
constructor(dynamoDB?: DynamoDB) {
15+
constructor(dynamoDB?: DynamoDB.DynamoDB) {
1616
// create the actual dynamoDB client
17-
this.dynamoDB = dynamoDB || new DynamoDB.default()
17+
// TODO v3: check if any default configuration should be provided, possibly from dynamoEasyConfig
18+
this.dynamoDB = dynamoDB || new DynamoDB.DynamoDB({})
1819
}
1920

2021
/*
2122
* make all the dynamo requests return an promise
2223
*/
2324
putItem(params: DynamoDB.PutItemInput): Promise<DynamoDB.PutItemOutput> {
24-
return dynamoEasyConfig.sessionValidityEnsurer().then(() => this.dynamoDB.putItem(params).promise())
25+
return dynamoEasyConfig.sessionValidityEnsurer().then(() => this.dynamoDB.putItem(params))
2526
}
2627

2728
getItem(params: DynamoDB.GetItemInput): Promise<DynamoDB.GetItemOutput> {
28-
return dynamoEasyConfig.sessionValidityEnsurer().then(() => this.dynamoDB.getItem(params).promise())
29+
return dynamoEasyConfig.sessionValidityEnsurer().then(() => this.dynamoDB.getItem(params))
2930
}
3031

3132
updateItem(params: DynamoDB.UpdateItemInput): Promise<DynamoDB.UpdateItemOutput> {
32-
return dynamoEasyConfig.sessionValidityEnsurer().then(() => this.dynamoDB.updateItem(params).promise())
33+
return dynamoEasyConfig.sessionValidityEnsurer().then(() => this.dynamoDB.updateItem(params))
3334
}
3435

3536
deleteItem(params: DynamoDB.DeleteItemInput): Promise<DynamoDB.DeleteItemOutput> {
36-
return dynamoEasyConfig.sessionValidityEnsurer().then(() => this.dynamoDB.deleteItem(params).promise())
37+
return dynamoEasyConfig.sessionValidityEnsurer().then(() => this.dynamoDB.deleteItem(params))
3738
}
3839

3940
batchWriteItem(params: DynamoDB.BatchWriteItemInput): Promise<DynamoDB.BatchWriteItemOutput> {
40-
return dynamoEasyConfig.sessionValidityEnsurer().then(() => this.dynamoDB.batchWriteItem(params).promise())
41+
return dynamoEasyConfig.sessionValidityEnsurer().then(() => this.dynamoDB.batchWriteItem(params))
4142
}
4243

4344
batchGetItems(params: DynamoDB.BatchGetItemInput): Promise<DynamoDB.BatchGetItemOutput> {
44-
return dynamoEasyConfig.sessionValidityEnsurer().then(() => this.dynamoDB.batchGetItem(params).promise())
45+
return dynamoEasyConfig.sessionValidityEnsurer().then(() => this.dynamoDB.batchGetItem(params))
4546
}
4647

4748
transactWriteItems(params: DynamoDB.TransactWriteItemsInput): Promise<DynamoDB.TransactWriteItemsOutput> {
48-
return dynamoEasyConfig.sessionValidityEnsurer().then(() => this.dynamoDB.transactWriteItems(params).promise())
49+
return dynamoEasyConfig.sessionValidityEnsurer().then(() => this.dynamoDB.transactWriteItems(params))
4950
}
5051

5152
transactGetItems(params: DynamoDB.TransactGetItemsInput): Promise<DynamoDB.TransactGetItemsOutput> {
52-
return dynamoEasyConfig.sessionValidityEnsurer().then(() => this.dynamoDB.transactGetItems(params).promise())
53+
return dynamoEasyConfig.sessionValidityEnsurer().then(() => this.dynamoDB.transactGetItems(params))
5354
}
5455

5556
scan(params: DynamoDB.ScanInput): Promise<DynamoDB.ScanOutput> {
56-
return dynamoEasyConfig.sessionValidityEnsurer().then(() => this.dynamoDB.scan(params).promise())
57+
return dynamoEasyConfig.sessionValidityEnsurer().then(() => this.dynamoDB.scan(params))
5758
}
5859

5960
query(params: DynamoDB.QueryInput): Promise<DynamoDB.QueryOutput> {
6061
if (!params.KeyConditionExpression) {
6162
throw new Error('key condition expression must be defined')
6263
}
6364

64-
return dynamoEasyConfig.sessionValidityEnsurer().then(() => this.dynamoDB.query(params).promise())
65+
return dynamoEasyConfig.sessionValidityEnsurer().then(() => this.dynamoDB.query(params))
6566
}
6667

67-
makeRequest(operation: string, params?: Record<string, any>): Promise<any> {
68-
return dynamoEasyConfig.sessionValidityEnsurer().then(() => this.dynamoDB.makeRequest(operation, params).promise())
69-
}
68+
/*
69+
* TODO v3: check for replacement. DynamoDB.executeStatement is now used to execute statements using PartiQL
70+
*/
71+
// makeRequest(operation: string, params?: Record<string, any>): Promise<any> {
72+
// return dynamoEasyConfig.sessionValidityEnsurer().then(() => this.dynamoDB.executeStatement(operation as any, params))
73+
// }
7074
}

src/dynamo/dynamo-store.ts

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
import * as DynamoDB from '@aws-sdk/client-dynamodb'
55
import { createLogger, Logger } from '../logger/logger'
66
import { ModelConstructor } from '../model/model-constructor'
7-
import { DynamoApiOperations } from './dynamo-api-operations.type'
87
import { DynamoDbWrapper } from './dynamo-db-wrapper'
98
import { getTableName } from './get-table-name.function'
109
import { BatchGetSingleTableRequest } from './request/batchgetsingletable/batch-get-single-table.request'
@@ -21,15 +20,15 @@ import { UpdateRequest } from './request/update/update.request'
2120
* DynamoStore
2221
*/
2322
export class DynamoStore<T> {
24-
get dynamoDB(): DynamoDB {
23+
get dynamoDB(): DynamoDB.DynamoDB {
2524
return this.dynamoDBWrapper.dynamoDB
2625
}
2726

2827
readonly tableName: string
2928
private readonly logger: Logger
3029
private readonly dynamoDBWrapper: DynamoDbWrapper
3130

32-
constructor(private modelClazz: ModelConstructor<T>, dynamoDB?: DynamoDB) {
31+
constructor(private modelClazz: ModelConstructor<T>, dynamoDB?: DynamoDB.DynamoDB) {
3332
this.logger = createLogger('dynamo.DynamoStore', modelClazz)
3433
this.dynamoDBWrapper = new DynamoDbWrapper(dynamoDB)
3534
this.tableName = getTableName(modelClazz)
@@ -82,10 +81,13 @@ export class DynamoStore<T> {
8281
return new TransactGetSingleTableRequest(this.dynamoDBWrapper, this.modelClazz, keys)
8382
}
8483

85-
makeRequest<Z>(operation: DynamoApiOperations, params?: Record<string, any>): Promise<Z> {
86-
this.logger.debug('request', params)
87-
return this.dynamoDBWrapper
88-
.makeRequest(operation, params)
89-
.then(promiseTap((r: Z) => this.logger.debug('response', r)))
90-
}
84+
/**
85+
* TODO v3: check for potential replacement
86+
*/
87+
// makeRequest<Z>(operation: DynamoApiOperations, params?: Record<string, any>): Promise<Z> {
88+
// this.logger.debug('request', params)
89+
// return this.dynamoDBWrapper
90+
// .makeRequest(operation, params)
91+
// .then(promiseTap((r: Z) => this.logger.debug('response', r)))
92+
// }
9193
}

src/dynamo/expression/param-util.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
/**
22
* @module expression
33
*/
4+
import DynamoDB from '@aws-sdk/client-dynamodb'
45
import { isEmpty } from '../../helper/is-empty.function'
56
import { isString } from '../../helper/is-string.function'
67
import { ConditionalParams } from '../operation-params.type'

src/dynamo/transactget/transact-get.request.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,15 +19,15 @@ const MAX_REQUEST_ITEM_COUNT = 10
1919
* Request class for the TransactGetItems operation. Read up to 10 items from one or more tables in a transaction.
2020
*/
2121
export class TransactGetRequest {
22-
get dynamoDB(): DynamoDB {
22+
get dynamoDB(): DynamoDB.DynamoDB {
2323
return this.dynamoDBWrapper.dynamoDB
2424
}
2525

2626
readonly params: DynamoDB.TransactGetItemsInput
2727
private readonly dynamoDBWrapper: DynamoDbWrapper
2828
private readonly tables: Array<ModelConstructor<any>> = []
2929

30-
constructor(dynamoDB?: DynamoDB) {
30+
constructor(dynamoDB?: DynamoDB.DynamoDB) {
3131
this.dynamoDBWrapper = new DynamoDbWrapper(dynamoDB)
3232
this.params = {
3333
TransactItems: [],

src/dynamo/transactwrite/transact-write.request.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,14 +9,14 @@ import { TransactOperation } from './transact-operation.type'
99
* Request class for the TransactWriteItems operation. Write up to 25 items to one or many tables in a transaction.
1010
*/
1111
export class TransactWriteRequest {
12-
get dynamoDB(): DynamoDB {
12+
get dynamoDB(): DynamoDB.DynamoDB {
1313
return this.dynamoDBWrapper.dynamoDB
1414
}
1515

16-
readonly params: DynamoDB.TransactWriteItemsInput
16+
readonly params: DynamoDB.TransactWriteItemsInput & { TransactItems: DynamoDB.TransactWriteItem[] }
1717
private readonly dynamoDBWrapper: DynamoDbWrapper
1818

19-
constructor(dynamoDB?: DynamoDB) {
19+
constructor(dynamoDB?: DynamoDB.DynamoDB) {
2020
this.dynamoDBWrapper = new DynamoDbWrapper(dynamoDB)
2121
this.params = {
2222
TransactItems: [],

0 commit comments

Comments
 (0)