@infra-blocks/aws-dynamodb 0.3.1 → 0.3.2-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/cjs/client.d.ts +3 -2
- package/lib/cjs/client.js +5 -11
- package/lib/cjs/client.js.map +1 -1
- package/lib/cjs/commands/get-item.d.ts +32 -0
- package/lib/cjs/commands/get-item.js +35 -0
- package/lib/cjs/commands/get-item.js.map +1 -0
- package/lib/cjs/types.d.ts +0 -20
- package/lib/esm/client.d.ts +3 -2
- package/lib/esm/client.js +6 -12
- package/lib/esm/client.js.map +1 -1
- package/lib/esm/commands/get-item.d.ts +32 -0
- package/lib/esm/commands/get-item.js +31 -0
- package/lib/esm/commands/get-item.js.map +1 -0
- package/lib/esm/types.d.ts +0 -20
- package/package.json +1 -1
package/lib/cjs/client.d.ts
CHANGED
|
@@ -4,8 +4,9 @@ import { DynamoDBDocumentClient } from "@aws-sdk/lib-dynamodb";
|
|
|
4
4
|
import type { Logger } from "@infra-blocks/logger-interface";
|
|
5
5
|
import { type Retry, type RetryConfig } from "@infra-blocks/retry";
|
|
6
6
|
import { type CreateTableParams } from "./commands/create-table.js";
|
|
7
|
+
import { type GetItemParams } from "./commands/get-item.js";
|
|
7
8
|
import { type PutItemParams } from "./commands/put-item.js";
|
|
8
|
-
import type { Attributes,
|
|
9
|
+
import type { Attributes, Query, WriteTransaction } from "./types.js";
|
|
9
10
|
/**
|
|
10
11
|
* Creation parameters for the {@link DynamoDbClient}.
|
|
11
12
|
*/
|
|
@@ -62,7 +63,7 @@ export declare class DynamoDbClient {
|
|
|
62
63
|
*
|
|
63
64
|
* @see https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_GetItem.html
|
|
64
65
|
*/
|
|
65
|
-
getItem<T>(params:
|
|
66
|
+
getItem<T>(params: GetItemParams): Promise<T | undefined>;
|
|
66
67
|
/**
|
|
67
68
|
* Puts an item using the PutItem API.
|
|
68
69
|
*
|
package/lib/cjs/client.js
CHANGED
|
@@ -6,6 +6,7 @@ const lib_dynamodb_1 = require("@aws-sdk/lib-dynamodb");
|
|
|
6
6
|
const null_logger_1 = require("@infra-blocks/null-logger");
|
|
7
7
|
const retry_1 = require("@infra-blocks/retry");
|
|
8
8
|
const create_table_js_1 = require("./commands/create-table.js");
|
|
9
|
+
const get_item_js_1 = require("./commands/get-item.js");
|
|
9
10
|
const put_item_js_1 = require("./commands/put-item.js");
|
|
10
11
|
class DynamoDbClientError extends Error {
|
|
11
12
|
constructor(message, options) {
|
|
@@ -58,18 +59,11 @@ class DynamoDbClient {
|
|
|
58
59
|
* @see https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_GetItem.html
|
|
59
60
|
*/
|
|
60
61
|
async getItem(params) {
|
|
62
|
+
if (this.logger.isDebugEnabled()) {
|
|
63
|
+
this.logger.debug("getItem(%s)", JSON.stringify(params));
|
|
64
|
+
}
|
|
61
65
|
try {
|
|
62
|
-
const
|
|
63
|
-
const key = {
|
|
64
|
-
[parititionKey.name]: parititionKey.value,
|
|
65
|
-
};
|
|
66
|
-
if (sortKey != null) {
|
|
67
|
-
key[sortKey.name] = sortKey.value;
|
|
68
|
-
}
|
|
69
|
-
const response = await this.client.send(new lib_dynamodb_1.GetCommand({
|
|
70
|
-
TableName: table,
|
|
71
|
-
Key: key,
|
|
72
|
-
}));
|
|
66
|
+
const response = await this.client.send(get_item_js_1.GetItem.from(params).toAwsCommand());
|
|
73
67
|
return response.Item;
|
|
74
68
|
}
|
|
75
69
|
catch (err) {
|
package/lib/cjs/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":";;;AACA,8DAA6E;AAK7E,
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { GetCommand, type GetCommandInput } from "@aws-sdk/lib-dynamodb";
|
|
2
|
+
import type { Attribute } from "../types.js";
|
|
3
|
+
import type { Command } from "./types.js";
|
|
4
|
+
/**
|
|
5
|
+
* The input required to call the GetItem API.
|
|
6
|
+
*/
|
|
7
|
+
export interface GetItemParams {
|
|
8
|
+
/**
|
|
9
|
+
* The name of the table to query.
|
|
10
|
+
*/
|
|
11
|
+
table: string;
|
|
12
|
+
/**
|
|
13
|
+
* The partition key value of the item to retrieve.
|
|
14
|
+
*/
|
|
15
|
+
partitionKey: Attribute;
|
|
16
|
+
/**
|
|
17
|
+
* The optional sort key value of the item to retrieve.
|
|
18
|
+
*
|
|
19
|
+
* Note that this is only optional if the table's primary key is made only of the partition key.
|
|
20
|
+
* It's mandatory otherwise.
|
|
21
|
+
*/
|
|
22
|
+
sortKey?: Attribute;
|
|
23
|
+
}
|
|
24
|
+
export declare class GetItem implements Command<GetCommandInput, GetCommand> {
|
|
25
|
+
private readonly table;
|
|
26
|
+
private readonly partitionKey;
|
|
27
|
+
private readonly sortKey?;
|
|
28
|
+
private constructor();
|
|
29
|
+
toAwsCommandInput(): GetCommandInput;
|
|
30
|
+
toAwsCommand(): GetCommand;
|
|
31
|
+
static from(params: GetItemParams): GetItem;
|
|
32
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GetItem = void 0;
|
|
4
|
+
const lib_dynamodb_1 = require("@aws-sdk/lib-dynamodb");
|
|
5
|
+
class GetItem {
|
|
6
|
+
table;
|
|
7
|
+
partitionKey;
|
|
8
|
+
sortKey;
|
|
9
|
+
constructor(params) {
|
|
10
|
+
const { table, partitionKey, sortKey } = params;
|
|
11
|
+
this.table = table;
|
|
12
|
+
this.partitionKey = partitionKey;
|
|
13
|
+
this.sortKey = sortKey;
|
|
14
|
+
}
|
|
15
|
+
toAwsCommandInput() {
|
|
16
|
+
const key = {
|
|
17
|
+
[this.partitionKey.name]: this.partitionKey.value,
|
|
18
|
+
};
|
|
19
|
+
if (this.sortKey != null) {
|
|
20
|
+
key[this.sortKey.name] = this.sortKey.value;
|
|
21
|
+
}
|
|
22
|
+
return {
|
|
23
|
+
TableName: this.table,
|
|
24
|
+
Key: key,
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
toAwsCommand() {
|
|
28
|
+
return new lib_dynamodb_1.GetCommand(this.toAwsCommandInput());
|
|
29
|
+
}
|
|
30
|
+
static from(params) {
|
|
31
|
+
return new GetItem(params);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
exports.GetItem = GetItem;
|
|
35
|
+
//# sourceMappingURL=get-item.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-item.js","sourceRoot":"","sources":["../../../src/commands/get-item.ts"],"names":[],"mappings":";;;AAAA,wDAAyE;AA0BzE,MAAa,OAAO;IACD,KAAK,CAAS;IACd,YAAY,CAAY;IACxB,OAAO,CAAa;IAErC,YAAoB,MAAqB;QACvC,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC;QAChD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,iBAAiB;QACf,MAAM,GAAG,GAAG;YACV,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,KAAK;SAClD,CAAC;QACF,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,EAAE,CAAC;YACzB,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;QAC9C,CAAC;QACD,OAAO;YACL,SAAS,EAAE,IAAI,CAAC,KAAK;YACrB,GAAG,EAAE,GAAG;SACT,CAAC;IACJ,CAAC;IAED,YAAY;QACV,OAAO,IAAI,yBAAU,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC;IAClD,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,MAAqB;QAC/B,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAC7B,CAAC;CACF;AAhCD,0BAgCC"}
|
package/lib/cjs/types.d.ts
CHANGED
|
@@ -20,26 +20,6 @@ export interface Index {
|
|
|
20
20
|
partitionKey: IndexField;
|
|
21
21
|
sortKey?: IndexField;
|
|
22
22
|
}
|
|
23
|
-
/**
|
|
24
|
-
* The input required to call the GetItem API.
|
|
25
|
-
*/
|
|
26
|
-
export interface GetItem {
|
|
27
|
-
/**
|
|
28
|
-
* The name of the table to query.
|
|
29
|
-
*/
|
|
30
|
-
table: string;
|
|
31
|
-
/**
|
|
32
|
-
* The partition key value of the item to retrieve.
|
|
33
|
-
*/
|
|
34
|
-
parititionKey: Attribute;
|
|
35
|
-
/**
|
|
36
|
-
* The optional sort key value of the item to retrieve.
|
|
37
|
-
*
|
|
38
|
-
* Note that this is only optional if the table's primary key is made only of the partition key.
|
|
39
|
-
* It's mandatory otherwise.
|
|
40
|
-
*/
|
|
41
|
-
sortKey?: Attribute;
|
|
42
|
-
}
|
|
43
23
|
export interface WriteTransaction {
|
|
44
24
|
items: PutItemParams[];
|
|
45
25
|
}
|
package/lib/esm/client.d.ts
CHANGED
|
@@ -4,8 +4,9 @@ import { DynamoDBDocumentClient } from "@aws-sdk/lib-dynamodb";
|
|
|
4
4
|
import type { Logger } from "@infra-blocks/logger-interface";
|
|
5
5
|
import { type Retry, type RetryConfig } from "@infra-blocks/retry";
|
|
6
6
|
import { type CreateTableParams } from "./commands/create-table.js";
|
|
7
|
+
import { type GetItemParams } from "./commands/get-item.js";
|
|
7
8
|
import { type PutItemParams } from "./commands/put-item.js";
|
|
8
|
-
import type { Attributes,
|
|
9
|
+
import type { Attributes, Query, WriteTransaction } from "./types.js";
|
|
9
10
|
/**
|
|
10
11
|
* Creation parameters for the {@link DynamoDbClient}.
|
|
11
12
|
*/
|
|
@@ -62,7 +63,7 @@ export declare class DynamoDbClient {
|
|
|
62
63
|
*
|
|
63
64
|
* @see https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_GetItem.html
|
|
64
65
|
*/
|
|
65
|
-
getItem<T>(params:
|
|
66
|
+
getItem<T>(params: GetItemParams): Promise<T | undefined>;
|
|
66
67
|
/**
|
|
67
68
|
* Puts an item using the PutItem API.
|
|
68
69
|
*
|
package/lib/esm/client.js
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { DynamoDBClient, ListTablesCommand } from "@aws-sdk/client-dynamodb";
|
|
2
|
-
import { DynamoDBDocumentClient,
|
|
2
|
+
import { DynamoDBDocumentClient, QueryCommand, TransactWriteCommand, } from "@aws-sdk/lib-dynamodb";
|
|
3
3
|
import { NullLogger } from "@infra-blocks/null-logger";
|
|
4
4
|
import { retry } from "@infra-blocks/retry";
|
|
5
5
|
import { CreateTable, } from "./commands/create-table.js";
|
|
6
|
+
import { GetItem } from "./commands/get-item.js";
|
|
6
7
|
import { PutItem } from "./commands/put-item.js";
|
|
7
8
|
export class DynamoDbClientError extends Error {
|
|
8
9
|
constructor(message, options) {
|
|
@@ -54,18 +55,11 @@ export class DynamoDbClient {
|
|
|
54
55
|
* @see https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_GetItem.html
|
|
55
56
|
*/
|
|
56
57
|
async getItem(params) {
|
|
58
|
+
if (this.logger.isDebugEnabled()) {
|
|
59
|
+
this.logger.debug("getItem(%s)", JSON.stringify(params));
|
|
60
|
+
}
|
|
57
61
|
try {
|
|
58
|
-
const
|
|
59
|
-
const key = {
|
|
60
|
-
[parititionKey.name]: parititionKey.value,
|
|
61
|
-
};
|
|
62
|
-
if (sortKey != null) {
|
|
63
|
-
key[sortKey.name] = sortKey.value;
|
|
64
|
-
}
|
|
65
|
-
const response = await this.client.send(new GetCommand({
|
|
66
|
-
TableName: table,
|
|
67
|
-
Key: key,
|
|
68
|
-
}));
|
|
62
|
+
const response = await this.client.send(GetItem.from(params).toAwsCommand());
|
|
69
63
|
return response.Item;
|
|
70
64
|
}
|
|
71
65
|
catch (err) {
|
package/lib/esm/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAK7E,OAAO,EACL,sBAAsB,EACtB,
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { GetCommand, type GetCommandInput } from "@aws-sdk/lib-dynamodb";
|
|
2
|
+
import type { Attribute } from "../types.js";
|
|
3
|
+
import type { Command } from "./types.js";
|
|
4
|
+
/**
|
|
5
|
+
* The input required to call the GetItem API.
|
|
6
|
+
*/
|
|
7
|
+
export interface GetItemParams {
|
|
8
|
+
/**
|
|
9
|
+
* The name of the table to query.
|
|
10
|
+
*/
|
|
11
|
+
table: string;
|
|
12
|
+
/**
|
|
13
|
+
* The partition key value of the item to retrieve.
|
|
14
|
+
*/
|
|
15
|
+
partitionKey: Attribute;
|
|
16
|
+
/**
|
|
17
|
+
* The optional sort key value of the item to retrieve.
|
|
18
|
+
*
|
|
19
|
+
* Note that this is only optional if the table's primary key is made only of the partition key.
|
|
20
|
+
* It's mandatory otherwise.
|
|
21
|
+
*/
|
|
22
|
+
sortKey?: Attribute;
|
|
23
|
+
}
|
|
24
|
+
export declare class GetItem implements Command<GetCommandInput, GetCommand> {
|
|
25
|
+
private readonly table;
|
|
26
|
+
private readonly partitionKey;
|
|
27
|
+
private readonly sortKey?;
|
|
28
|
+
private constructor();
|
|
29
|
+
toAwsCommandInput(): GetCommandInput;
|
|
30
|
+
toAwsCommand(): GetCommand;
|
|
31
|
+
static from(params: GetItemParams): GetItem;
|
|
32
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { GetCommand } from "@aws-sdk/lib-dynamodb";
|
|
2
|
+
export class GetItem {
|
|
3
|
+
table;
|
|
4
|
+
partitionKey;
|
|
5
|
+
sortKey;
|
|
6
|
+
constructor(params) {
|
|
7
|
+
const { table, partitionKey, sortKey } = params;
|
|
8
|
+
this.table = table;
|
|
9
|
+
this.partitionKey = partitionKey;
|
|
10
|
+
this.sortKey = sortKey;
|
|
11
|
+
}
|
|
12
|
+
toAwsCommandInput() {
|
|
13
|
+
const key = {
|
|
14
|
+
[this.partitionKey.name]: this.partitionKey.value,
|
|
15
|
+
};
|
|
16
|
+
if (this.sortKey != null) {
|
|
17
|
+
key[this.sortKey.name] = this.sortKey.value;
|
|
18
|
+
}
|
|
19
|
+
return {
|
|
20
|
+
TableName: this.table,
|
|
21
|
+
Key: key,
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
toAwsCommand() {
|
|
25
|
+
return new GetCommand(this.toAwsCommandInput());
|
|
26
|
+
}
|
|
27
|
+
static from(params) {
|
|
28
|
+
return new GetItem(params);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=get-item.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-item.js","sourceRoot":"","sources":["../../../src/commands/get-item.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAwB,MAAM,uBAAuB,CAAC;AA0BzE,MAAM,OAAO,OAAO;IACD,KAAK,CAAS;IACd,YAAY,CAAY;IACxB,OAAO,CAAa;IAErC,YAAoB,MAAqB;QACvC,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC;QAChD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,iBAAiB;QACf,MAAM,GAAG,GAAG;YACV,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,KAAK;SAClD,CAAC;QACF,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,EAAE,CAAC;YACzB,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;QAC9C,CAAC;QACD,OAAO;YACL,SAAS,EAAE,IAAI,CAAC,KAAK;YACrB,GAAG,EAAE,GAAG;SACT,CAAC;IACJ,CAAC;IAED,YAAY;QACV,OAAO,IAAI,UAAU,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC;IAClD,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,MAAqB;QAC/B,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAC7B,CAAC;CACF"}
|
package/lib/esm/types.d.ts
CHANGED
|
@@ -20,26 +20,6 @@ export interface Index {
|
|
|
20
20
|
partitionKey: IndexField;
|
|
21
21
|
sortKey?: IndexField;
|
|
22
22
|
}
|
|
23
|
-
/**
|
|
24
|
-
* The input required to call the GetItem API.
|
|
25
|
-
*/
|
|
26
|
-
export interface GetItem {
|
|
27
|
-
/**
|
|
28
|
-
* The name of the table to query.
|
|
29
|
-
*/
|
|
30
|
-
table: string;
|
|
31
|
-
/**
|
|
32
|
-
* The partition key value of the item to retrieve.
|
|
33
|
-
*/
|
|
34
|
-
parititionKey: Attribute;
|
|
35
|
-
/**
|
|
36
|
-
* The optional sort key value of the item to retrieve.
|
|
37
|
-
*
|
|
38
|
-
* Note that this is only optional if the table's primary key is made only of the partition key.
|
|
39
|
-
* It's mandatory otherwise.
|
|
40
|
-
*/
|
|
41
|
-
sortKey?: Attribute;
|
|
42
|
-
}
|
|
43
23
|
export interface WriteTransaction {
|
|
44
24
|
items: PutItemParams[];
|
|
45
25
|
}
|