@ftschopp/dynatable-core 1.0.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/CHANGELOG.md +62 -0
- package/README.md +17 -0
- package/dist/builders/batch-get/create-batch-get-builder.d.ts +18 -0
- package/dist/builders/batch-get/create-batch-get-builder.d.ts.map +1 -0
- package/dist/builders/batch-get/create-batch-get-builder.js +71 -0
- package/dist/builders/batch-get/index.d.ts +3 -0
- package/dist/builders/batch-get/index.d.ts.map +1 -0
- package/dist/builders/batch-get/index.js +18 -0
- package/dist/builders/batch-get/types.d.ts +25 -0
- package/dist/builders/batch-get/types.d.ts.map +1 -0
- package/dist/builders/batch-get/types.js +2 -0
- package/dist/builders/batch-write/create-batch-write-builder.d.ts +12 -0
- package/dist/builders/batch-write/create-batch-write-builder.d.ts.map +1 -0
- package/dist/builders/batch-write/create-batch-write-builder.js +35 -0
- package/dist/builders/batch-write/index.d.ts +3 -0
- package/dist/builders/batch-write/index.d.ts.map +1 -0
- package/dist/builders/batch-write/index.js +18 -0
- package/dist/builders/batch-write/types.d.ts +30 -0
- package/dist/builders/batch-write/types.d.ts.map +1 -0
- package/dist/builders/batch-write/types.js +2 -0
- package/dist/builders/delete/create-delete-builder.d.ts +9 -0
- package/dist/builders/delete/create-delete-builder.d.ts.map +1 -0
- package/dist/builders/delete/create-delete-builder.js +72 -0
- package/dist/builders/delete/index.d.ts +3 -0
- package/dist/builders/delete/index.d.ts.map +1 -0
- package/dist/builders/delete/index.js +18 -0
- package/dist/builders/delete/types.d.ts +11 -0
- package/dist/builders/delete/types.d.ts.map +1 -0
- package/dist/builders/delete/types.js +2 -0
- package/dist/builders/get/create-get-builder.d.ts +12 -0
- package/dist/builders/get/create-get-builder.d.ts.map +1 -0
- package/dist/builders/get/create-get-builder.js +95 -0
- package/dist/builders/get/index.d.ts +3 -0
- package/dist/builders/get/index.d.ts.map +1 -0
- package/dist/builders/get/index.js +18 -0
- package/dist/builders/get/types.d.ts +28 -0
- package/dist/builders/get/types.d.ts.map +1 -0
- package/dist/builders/get/types.js +2 -0
- package/dist/builders/index.d.ts +12 -0
- package/dist/builders/index.d.ts.map +1 -0
- package/dist/builders/index.js +29 -0
- package/dist/builders/put/create-put-builder.d.ts +9 -0
- package/dist/builders/put/create-put-builder.d.ts.map +1 -0
- package/dist/builders/put/create-put-builder.js +104 -0
- package/dist/builders/put/index.d.ts +3 -0
- package/dist/builders/put/index.d.ts.map +1 -0
- package/dist/builders/put/index.js +18 -0
- package/dist/builders/put/types.d.ts +17 -0
- package/dist/builders/put/types.d.ts.map +1 -0
- package/dist/builders/put/types.js +2 -0
- package/dist/builders/query/create-query-builder.d.ts +9 -0
- package/dist/builders/query/create-query-builder.d.ts.map +1 -0
- package/dist/builders/query/create-query-builder.js +283 -0
- package/dist/builders/query/index.d.ts +3 -0
- package/dist/builders/query/index.d.ts.map +1 -0
- package/dist/builders/query/index.js +18 -0
- package/dist/builders/query/types.d.ts +79 -0
- package/dist/builders/query/types.d.ts.map +1 -0
- package/dist/builders/query/types.js +2 -0
- package/dist/builders/scan/create-scan-builder.d.ts +12 -0
- package/dist/builders/scan/create-scan-builder.d.ts.map +1 -0
- package/dist/builders/scan/create-scan-builder.js +103 -0
- package/dist/builders/scan/index.d.ts +3 -0
- package/dist/builders/scan/index.d.ts.map +1 -0
- package/dist/builders/scan/index.js +18 -0
- package/dist/builders/scan/types.d.ts +43 -0
- package/dist/builders/scan/types.d.ts.map +1 -0
- package/dist/builders/scan/types.js +2 -0
- package/dist/builders/shared/conditions.d.ts +18 -0
- package/dist/builders/shared/conditions.d.ts.map +1 -0
- package/dist/builders/shared/conditions.js +48 -0
- package/dist/builders/shared/index.d.ts +4 -0
- package/dist/builders/shared/index.d.ts.map +1 -0
- package/dist/builders/shared/index.js +19 -0
- package/dist/builders/shared/operators.d.ts +12 -0
- package/dist/builders/shared/operators.d.ts.map +1 -0
- package/dist/builders/shared/operators.js +197 -0
- package/dist/builders/shared/types.d.ts +77 -0
- package/dist/builders/shared/types.d.ts.map +1 -0
- package/dist/builders/shared/types.js +6 -0
- package/dist/builders/transact-get/create-transact-get-builder.d.ts +18 -0
- package/dist/builders/transact-get/create-transact-get-builder.d.ts.map +1 -0
- package/dist/builders/transact-get/create-transact-get-builder.js +60 -0
- package/dist/builders/transact-get/index.d.ts +3 -0
- package/dist/builders/transact-get/index.d.ts.map +1 -0
- package/dist/builders/transact-get/index.js +18 -0
- package/dist/builders/transact-get/types.d.ts +28 -0
- package/dist/builders/transact-get/types.d.ts.map +1 -0
- package/dist/builders/transact-get/types.js +2 -0
- package/dist/builders/transact-write/create-transact-write-builder.d.ts +18 -0
- package/dist/builders/transact-write/create-transact-write-builder.d.ts.map +1 -0
- package/dist/builders/transact-write/create-transact-write-builder.js +97 -0
- package/dist/builders/transact-write/index.d.ts +3 -0
- package/dist/builders/transact-write/index.d.ts.map +1 -0
- package/dist/builders/transact-write/index.js +18 -0
- package/dist/builders/transact-write/types.d.ts +34 -0
- package/dist/builders/transact-write/types.d.ts.map +1 -0
- package/dist/builders/transact-write/types.js +2 -0
- package/dist/builders/update/create-update-builder.d.ts +14 -0
- package/dist/builders/update/create-update-builder.d.ts.map +1 -0
- package/dist/builders/update/create-update-builder.js +180 -0
- package/dist/builders/update/index.d.ts +3 -0
- package/dist/builders/update/index.d.ts.map +1 -0
- package/dist/builders/update/index.js +18 -0
- package/dist/builders/update/types.d.ts +35 -0
- package/dist/builders/update/types.d.ts.map +1 -0
- package/dist/builders/update/types.js +2 -0
- package/dist/core/types.d.ts +224 -0
- package/dist/core/types.d.ts.map +1 -0
- package/dist/core/types.js +3 -0
- package/dist/entity.d.ts +73 -0
- package/dist/entity.d.ts.map +1 -0
- package/dist/entity.js +161 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +20 -0
- package/dist/table.d.ts +70 -0
- package/dist/table.d.ts.map +1 -0
- package/dist/table.js +69 -0
- package/dist/utils/dynamodb-logger.d.ts +118 -0
- package/dist/utils/dynamodb-logger.d.ts.map +1 -0
- package/dist/utils/dynamodb-logger.js +125 -0
- package/dist/utils/model-utils.d.ts +24 -0
- package/dist/utils/model-utils.d.ts.map +1 -0
- package/dist/utils/model-utils.js +88 -0
- package/dist/utils/zod-utils.d.ts +13 -0
- package/dist/utils/zod-utils.d.ts.map +1 -0
- package/dist/utils/zod-utils.js +35 -0
- package/eslint.config.mjs +4 -0
- package/jest.config.js +11 -0
- package/package.json +36 -0
- package/src/builders/README.md +272 -0
- package/src/builders/batch-get/README.md +98 -0
- package/src/builders/batch-get/create-batch-get-builder.test.ts +165 -0
- package/src/builders/batch-get/create-batch-get-builder.ts +106 -0
- package/src/builders/batch-get/index.ts +2 -0
- package/src/builders/batch-get/types.ts +29 -0
- package/src/builders/batch-write/README.md +204 -0
- package/src/builders/batch-write/create-batch-write-builder.test.ts +173 -0
- package/src/builders/batch-write/create-batch-write-builder.ts +49 -0
- package/src/builders/batch-write/index.ts +2 -0
- package/src/builders/batch-write/types.ts +33 -0
- package/src/builders/delete/create-delete-builder.test.ts +294 -0
- package/src/builders/delete/create-delete-builder.ts +100 -0
- package/src/builders/delete/index.ts +2 -0
- package/src/builders/delete/types.ts +11 -0
- package/src/builders/get/create-get-builder.test.ts +272 -0
- package/src/builders/get/create-get-builder.ts +140 -0
- package/src/builders/get/index.ts +2 -0
- package/src/builders/get/types.ts +30 -0
- package/src/builders/index.ts +14 -0
- package/src/builders/put/create-put-builder.test.ts +213 -0
- package/src/builders/put/create-put-builder.ts +151 -0
- package/src/builders/put/index.ts +2 -0
- package/src/builders/put/types.ts +18 -0
- package/src/builders/query/create-query-builder.test.ts +230 -0
- package/src/builders/query/create-query-builder.ts +353 -0
- package/src/builders/query/index.ts +2 -0
- package/src/builders/query/types.ts +95 -0
- package/src/builders/scan/create-scan-builder.test.ts +260 -0
- package/src/builders/scan/create-scan-builder.ts +217 -0
- package/src/builders/scan/index.ts +2 -0
- package/src/builders/scan/types.ts +49 -0
- package/src/builders/shared/conditions.ts +58 -0
- package/src/builders/shared/index.ts +3 -0
- package/src/builders/shared/operators.test.ts +270 -0
- package/src/builders/shared/operators.ts +200 -0
- package/src/builders/shared/types.ts +100 -0
- package/src/builders/transact-get/README.md +167 -0
- package/src/builders/transact-get/create-transact-get-builder.test.ts +239 -0
- package/src/builders/transact-get/create-transact-get-builder.ts +67 -0
- package/src/builders/transact-get/index.ts +2 -0
- package/src/builders/transact-get/types.ts +31 -0
- package/src/builders/transact-write/README.md +166 -0
- package/src/builders/transact-write/create-transact-write-builder.test.ts +288 -0
- package/src/builders/transact-write/create-transact-write-builder.ts +118 -0
- package/src/builders/transact-write/index.ts +2 -0
- package/src/builders/transact-write/types.ts +33 -0
- package/src/builders/update/create-update-builder.test.ts +333 -0
- package/src/builders/update/create-update-builder.ts +284 -0
- package/src/builders/update/index.ts +2 -0
- package/src/builders/update/types.ts +42 -0
- package/src/core/types.test.ts +506 -0
- package/src/core/types.ts +290 -0
- package/src/entity.ts +337 -0
- package/src/index.ts +22 -0
- package/src/table.ts +109 -0
- package/src/utils/dynamodb-logger.test.ts +246 -0
- package/src/utils/dynamodb-logger.ts +175 -0
- package/src/utils/model-utils.test.ts +232 -0
- package/src/utils/model-utils.ts +101 -0
- package/src/utils/zod-utils.test.ts +272 -0
- package/src/utils/zod-utils.ts +36 -0
- package/tests/integration/instagram-clone.integration.test.ts +966 -0
- package/tests/integration/pagination-timestamps.integration.test.ts +375 -0
- package/tests/integration/transactions.integration.test.ts +529 -0
- package/tsconfig.json +12 -0
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { DynamoDBClient } from '@aws-sdk/client-dynamodb';
|
|
2
|
+
import { Condition } from '../shared';
|
|
3
|
+
import { ScanBuilder } from './types';
|
|
4
|
+
import { DynamoDBLogger } from '../../utils/dynamodb-logger';
|
|
5
|
+
/**
|
|
6
|
+
* Creates a ScanBuilder for scanning a table or index.
|
|
7
|
+
*/
|
|
8
|
+
export declare function createScanBuilder<Model>(tableName: string, client: DynamoDBClient, filters?: Condition[], projectionAttrs?: (keyof Model)[], limitValue?: number, isConsistentRead?: boolean, indexName?: string, exclusiveStartKey?: Record<string, any>, segmentConfig?: {
|
|
9
|
+
segment: number;
|
|
10
|
+
totalSegments: number;
|
|
11
|
+
}, logger?: DynamoDBLogger): ScanBuilder<Model>;
|
|
12
|
+
//# sourceMappingURL=create-scan-builder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-scan-builder.d.ts","sourceRoot":"","sources":["../../../src/builders/scan/create-scan-builder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE1D,OAAO,EAAgC,SAAS,EAAmB,MAAM,WAAW,CAAC;AACrF,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAE7D;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EACrC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,cAAc,EACtB,OAAO,GAAE,SAAS,EAAO,EACzB,eAAe,GAAE,CAAC,MAAM,KAAK,CAAC,EAAO,EACrC,UAAU,CAAC,EAAE,MAAM,EACnB,gBAAgB,UAAQ,EACxB,SAAS,CAAC,EAAE,MAAM,EAClB,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACvC,aAAa,CAAC,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAE,EAC1D,MAAM,CAAC,EAAE,cAAc,GACtB,WAAW,CAAC,KAAK,CAAC,CAmMpB"}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createScanBuilder = createScanBuilder;
|
|
4
|
+
const lib_dynamodb_1 = require("@aws-sdk/lib-dynamodb");
|
|
5
|
+
const shared_1 = require("../shared");
|
|
6
|
+
/**
|
|
7
|
+
* Creates a ScanBuilder for scanning a table or index.
|
|
8
|
+
*/
|
|
9
|
+
function createScanBuilder(tableName, client, filters = [], projectionAttrs = [], limitValue, isConsistentRead = false, indexName, exclusiveStartKey, segmentConfig, logger) {
|
|
10
|
+
const build = () => ({
|
|
11
|
+
filter(fn) {
|
|
12
|
+
const attrs = new Proxy({}, {
|
|
13
|
+
get(_, prop) {
|
|
14
|
+
return { name: prop };
|
|
15
|
+
},
|
|
16
|
+
});
|
|
17
|
+
const opBuilder = (0, shared_1.createOpBuilder)();
|
|
18
|
+
const condition = fn(attrs, opBuilder);
|
|
19
|
+
return createScanBuilder(tableName, client, [...filters, condition], projectionAttrs, limitValue, isConsistentRead, indexName, exclusiveStartKey, segmentConfig, logger);
|
|
20
|
+
},
|
|
21
|
+
select(attrs) {
|
|
22
|
+
return createScanBuilder(tableName, client, filters, attrs, limitValue, isConsistentRead, indexName, exclusiveStartKey, segmentConfig, logger);
|
|
23
|
+
},
|
|
24
|
+
limit(count) {
|
|
25
|
+
return createScanBuilder(tableName, client, filters, projectionAttrs, count, isConsistentRead, indexName, exclusiveStartKey, segmentConfig, logger);
|
|
26
|
+
},
|
|
27
|
+
consistentRead() {
|
|
28
|
+
return createScanBuilder(tableName, client, filters, projectionAttrs, limitValue, true, indexName, exclusiveStartKey, segmentConfig, logger);
|
|
29
|
+
},
|
|
30
|
+
usingIndex(index) {
|
|
31
|
+
return createScanBuilder(tableName, client, filters, projectionAttrs, limitValue, isConsistentRead, index, exclusiveStartKey, segmentConfig, logger);
|
|
32
|
+
},
|
|
33
|
+
startFrom(key) {
|
|
34
|
+
return createScanBuilder(tableName, client, filters, projectionAttrs, limitValue, isConsistentRead, indexName, key, segmentConfig, logger);
|
|
35
|
+
},
|
|
36
|
+
segment(segmentNumber, totalSegments) {
|
|
37
|
+
return createScanBuilder(tableName, client, filters, projectionAttrs, limitValue, isConsistentRead, indexName, exclusiveStartKey, { segment: segmentNumber, totalSegments }, logger);
|
|
38
|
+
},
|
|
39
|
+
dbParams() {
|
|
40
|
+
let filterExpression = '';
|
|
41
|
+
let expressionAttributeNames = {};
|
|
42
|
+
let expressionAttributeValues = {};
|
|
43
|
+
// Build FilterExpression from filters
|
|
44
|
+
if (filters.length > 0) {
|
|
45
|
+
const combinedFilter = filters.length === 1 && filters[0]
|
|
46
|
+
? filters[0]
|
|
47
|
+
: {
|
|
48
|
+
expression: '',
|
|
49
|
+
operator: 'AND',
|
|
50
|
+
children: filters,
|
|
51
|
+
};
|
|
52
|
+
const result = (0, shared_1.buildExpression)(combinedFilter);
|
|
53
|
+
filterExpression = result.expression;
|
|
54
|
+
expressionAttributeNames = result.names;
|
|
55
|
+
expressionAttributeValues = result.values;
|
|
56
|
+
}
|
|
57
|
+
// Build ProjectionExpression
|
|
58
|
+
let projectionExpression = '';
|
|
59
|
+
if (projectionAttrs.length > 0) {
|
|
60
|
+
projectionExpression = projectionAttrs.map((attr) => String(attr)).join(', ');
|
|
61
|
+
}
|
|
62
|
+
const params = {
|
|
63
|
+
TableName: tableName,
|
|
64
|
+
};
|
|
65
|
+
if (filterExpression) {
|
|
66
|
+
params.FilterExpression = filterExpression;
|
|
67
|
+
}
|
|
68
|
+
if (Object.keys(expressionAttributeNames).length > 0) {
|
|
69
|
+
params.ExpressionAttributeNames = expressionAttributeNames;
|
|
70
|
+
}
|
|
71
|
+
if (Object.keys(expressionAttributeValues).length > 0) {
|
|
72
|
+
params.ExpressionAttributeValues = expressionAttributeValues;
|
|
73
|
+
}
|
|
74
|
+
if (projectionExpression) {
|
|
75
|
+
params.ProjectionExpression = projectionExpression;
|
|
76
|
+
}
|
|
77
|
+
if (limitValue !== undefined) {
|
|
78
|
+
params.Limit = limitValue;
|
|
79
|
+
}
|
|
80
|
+
if (isConsistentRead) {
|
|
81
|
+
params.ConsistentRead = true;
|
|
82
|
+
}
|
|
83
|
+
if (indexName) {
|
|
84
|
+
params.IndexName = indexName;
|
|
85
|
+
}
|
|
86
|
+
if (exclusiveStartKey) {
|
|
87
|
+
params.ExclusiveStartKey = exclusiveStartKey;
|
|
88
|
+
}
|
|
89
|
+
if (segmentConfig) {
|
|
90
|
+
params.Segment = segmentConfig.segment;
|
|
91
|
+
params.TotalSegments = segmentConfig.totalSegments;
|
|
92
|
+
}
|
|
93
|
+
return params;
|
|
94
|
+
},
|
|
95
|
+
async execute() {
|
|
96
|
+
const params = build().dbParams();
|
|
97
|
+
const response = await client.send(new lib_dynamodb_1.ScanCommand(params));
|
|
98
|
+
logger?.log('ScanCommand', params, response);
|
|
99
|
+
return (response.Items || []);
|
|
100
|
+
},
|
|
101
|
+
});
|
|
102
|
+
return build();
|
|
103
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/builders/scan/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,uBAAuB,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./types"), exports);
|
|
18
|
+
__exportStar(require("./create-scan-builder"), exports);
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { ExecutableBuilder, AttrBuilder, OpBuilder, Condition } from '../shared';
|
|
2
|
+
/**
|
|
3
|
+
* Builder for DynamoDB Scan operations.
|
|
4
|
+
* Scans the entire table or index without requiring key conditions.
|
|
5
|
+
*/
|
|
6
|
+
export interface ScanBuilder<Model> extends ExecutableBuilder<Model[]> {
|
|
7
|
+
/**
|
|
8
|
+
* Adds a filter expression to the scan.
|
|
9
|
+
* Returns a new immutable builder.
|
|
10
|
+
*/
|
|
11
|
+
filter(fn: (attr: AttrBuilder<Model>, op: OpBuilder) => Condition): ScanBuilder<Model>;
|
|
12
|
+
/**
|
|
13
|
+
* Adds a projection expression to only return specific attributes.
|
|
14
|
+
* Returns a new immutable builder.
|
|
15
|
+
*/
|
|
16
|
+
select(attrs: (keyof Model)[]): ScanBuilder<Model>;
|
|
17
|
+
/**
|
|
18
|
+
* Sets the maximum number of items to evaluate (not necessarily return).
|
|
19
|
+
* Returns a new immutable builder.
|
|
20
|
+
*/
|
|
21
|
+
limit(count: number): ScanBuilder<Model>;
|
|
22
|
+
/**
|
|
23
|
+
* Enables consistent read (eventual consistency is default).
|
|
24
|
+
* Returns a new immutable builder.
|
|
25
|
+
*/
|
|
26
|
+
consistentRead(): ScanBuilder<Model>;
|
|
27
|
+
/**
|
|
28
|
+
* Specifies an index to scan.
|
|
29
|
+
* Returns a new immutable builder.
|
|
30
|
+
*/
|
|
31
|
+
usingIndex(indexName: string): ScanBuilder<Model>;
|
|
32
|
+
/**
|
|
33
|
+
* Sets the starting position for the scan (pagination).
|
|
34
|
+
* Returns a new immutable builder.
|
|
35
|
+
*/
|
|
36
|
+
startFrom(exclusiveStartKey: Record<string, any>): ScanBuilder<Model>;
|
|
37
|
+
/**
|
|
38
|
+
* Enables parallel scan by specifying segment and total segments.
|
|
39
|
+
* Returns a new immutable builder.
|
|
40
|
+
*/
|
|
41
|
+
segment(segmentNumber: number, totalSegments: number): ScanBuilder<Model>;
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/builders/scan/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEjF;;;GAGG;AACH,MAAM,WAAW,WAAW,CAAC,KAAK,CAAE,SAAQ,iBAAiB,CAAC,KAAK,EAAE,CAAC;IACpE;;;OAGG;IACH,MAAM,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,WAAW,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,SAAS,KAAK,SAAS,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;IAEvF;;;OAGG;IACH,MAAM,CAAC,KAAK,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;IAEnD;;;OAGG;IACH,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;IAEzC;;;OAGG;IACH,cAAc,IAAI,WAAW,CAAC,KAAK,CAAC,CAAC;IAErC;;;OAGG;IACH,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;IAElD;;;OAGG;IACH,SAAS,CAAC,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;IAEtE;;;OAGG;IACH,OAAO,CAAC,aAAa,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;CAC3E"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Condition } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* Builds a DynamoDB expression from a condition tree
|
|
4
|
+
*/
|
|
5
|
+
export declare function buildExpression(condition: Condition): {
|
|
6
|
+
expression: string;
|
|
7
|
+
names: Record<string, string>;
|
|
8
|
+
values: Record<string, any>;
|
|
9
|
+
};
|
|
10
|
+
/**
|
|
11
|
+
* Combines multiple conditions into a DynamoDB-compatible expression object.
|
|
12
|
+
*/
|
|
13
|
+
export declare function buildConditionExpr(conditions: Condition[]): {
|
|
14
|
+
ConditionExpression: string | undefined;
|
|
15
|
+
ExpressionAttributeNames: any;
|
|
16
|
+
ExpressionAttributeValues: any;
|
|
17
|
+
};
|
|
18
|
+
//# sourceMappingURL=conditions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conditions.d.ts","sourceRoot":"","sources":["../../../src/builders/shared/conditions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEpC;;GAEG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,SAAS,GAAG;IACrD,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC7B,CAiCA;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,SAAS,EAAE;;;;EAUzD"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.buildExpression = buildExpression;
|
|
4
|
+
exports.buildConditionExpr = buildConditionExpr;
|
|
5
|
+
/**
|
|
6
|
+
* Builds a DynamoDB expression from a condition tree
|
|
7
|
+
*/
|
|
8
|
+
function buildExpression(condition) {
|
|
9
|
+
const names = {};
|
|
10
|
+
const values = {};
|
|
11
|
+
function processCondition(cond) {
|
|
12
|
+
// If it's a combinator (AND/OR)
|
|
13
|
+
if (cond.operator && cond.children) {
|
|
14
|
+
const childExpressions = cond.children
|
|
15
|
+
.map((child) => processCondition(child))
|
|
16
|
+
.filter((expr) => expr.length > 0);
|
|
17
|
+
if (childExpressions.length === 0)
|
|
18
|
+
return '';
|
|
19
|
+
if (childExpressions.length === 1)
|
|
20
|
+
return childExpressions[0];
|
|
21
|
+
const combined = childExpressions.map((expr) => `(${expr})`).join(` ${cond.operator} `);
|
|
22
|
+
return cond.isNegated ? `NOT (${combined})` : combined;
|
|
23
|
+
}
|
|
24
|
+
// It's a leaf condition
|
|
25
|
+
if (cond.names) {
|
|
26
|
+
Object.assign(names, cond.names);
|
|
27
|
+
}
|
|
28
|
+
if (cond.values) {
|
|
29
|
+
Object.assign(values, cond.values);
|
|
30
|
+
}
|
|
31
|
+
return cond.isNegated ? `NOT (${cond.expression})` : cond.expression;
|
|
32
|
+
}
|
|
33
|
+
const expression = processCondition(condition);
|
|
34
|
+
return { expression, names, values };
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Combines multiple conditions into a DynamoDB-compatible expression object.
|
|
38
|
+
*/
|
|
39
|
+
function buildConditionExpr(conditions) {
|
|
40
|
+
const expression = conditions.map((c) => c.expression).join(' AND ');
|
|
41
|
+
const names = Object.assign({}, ...conditions.map((c) => c.names ?? {}));
|
|
42
|
+
const values = Object.assign({}, ...conditions.map((c) => c.values ?? {}));
|
|
43
|
+
return {
|
|
44
|
+
ConditionExpression: expression || undefined,
|
|
45
|
+
ExpressionAttributeNames: Object.keys(names).length ? names : undefined,
|
|
46
|
+
ExpressionAttributeValues: Object.keys(values).length ? values : undefined,
|
|
47
|
+
};
|
|
48
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/builders/shared/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./types"), exports);
|
|
18
|
+
__exportStar(require("./operators"), exports);
|
|
19
|
+
__exportStar(require("./conditions"), exports);
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { OpBuilder } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* Creates a scoped OpBuilder with its own counter for unique value placeholders.
|
|
4
|
+
* Each builder instance maintains isolated state to prevent naming conflicts.
|
|
5
|
+
*/
|
|
6
|
+
export declare function createOpBuilder(): OpBuilder;
|
|
7
|
+
/**
|
|
8
|
+
* @deprecated Use createOpBuilder() instead to avoid global state.
|
|
9
|
+
* This export is maintained for backward compatibility.
|
|
10
|
+
*/
|
|
11
|
+
export declare const opBuilder: OpBuilder;
|
|
12
|
+
//# sourceMappingURL=operators.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"operators.d.ts","sourceRoot":"","sources":["../../../src/builders/shared/operators.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEpC;;;GAGG;AACH,wBAAgB,eAAe,IAAI,SAAS,CA2L3C;AAED;;;GAGG;AACH,eAAO,MAAM,SAAS,EAAE,SAA6B,CAAC"}
|
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.opBuilder = void 0;
|
|
4
|
+
exports.createOpBuilder = createOpBuilder;
|
|
5
|
+
/**
|
|
6
|
+
* Creates a scoped OpBuilder with its own counter for unique value placeholders.
|
|
7
|
+
* Each builder instance maintains isolated state to prevent naming conflicts.
|
|
8
|
+
*/
|
|
9
|
+
function createOpBuilder() {
|
|
10
|
+
let valueCounter = 0;
|
|
11
|
+
/**
|
|
12
|
+
* Generates a unique value placeholder name within this builder's scope
|
|
13
|
+
*/
|
|
14
|
+
function getUniqueValueName(baseName) {
|
|
15
|
+
return `${baseName}_${valueCounter++}`;
|
|
16
|
+
}
|
|
17
|
+
return {
|
|
18
|
+
eq: (attr, value) => {
|
|
19
|
+
const valueName = getUniqueValueName(attr.name);
|
|
20
|
+
return {
|
|
21
|
+
expression: `#${attr.name} = :${valueName}`,
|
|
22
|
+
names: { [`#${attr.name}`]: attr.name },
|
|
23
|
+
values: { [`:${valueName}`]: value },
|
|
24
|
+
};
|
|
25
|
+
},
|
|
26
|
+
ne: (attr, value) => {
|
|
27
|
+
const valueName = getUniqueValueName(attr.name);
|
|
28
|
+
return {
|
|
29
|
+
expression: `#${attr.name} <> :${valueName}`,
|
|
30
|
+
names: { [`#${attr.name}`]: attr.name },
|
|
31
|
+
values: { [`:${valueName}`]: value },
|
|
32
|
+
};
|
|
33
|
+
},
|
|
34
|
+
lt: (attr, value) => {
|
|
35
|
+
const valueName = getUniqueValueName(attr.name);
|
|
36
|
+
return {
|
|
37
|
+
expression: `#${attr.name} < :${valueName}`,
|
|
38
|
+
names: { [`#${attr.name}`]: attr.name },
|
|
39
|
+
values: { [`:${valueName}`]: value },
|
|
40
|
+
};
|
|
41
|
+
},
|
|
42
|
+
lte: (attr, value) => {
|
|
43
|
+
const valueName = getUniqueValueName(attr.name);
|
|
44
|
+
return {
|
|
45
|
+
expression: `#${attr.name} <= :${valueName}`,
|
|
46
|
+
names: { [`#${attr.name}`]: attr.name },
|
|
47
|
+
values: { [`:${valueName}`]: value },
|
|
48
|
+
};
|
|
49
|
+
},
|
|
50
|
+
gt: (attr, value) => {
|
|
51
|
+
const valueName = getUniqueValueName(attr.name);
|
|
52
|
+
return {
|
|
53
|
+
expression: `#${attr.name} > :${valueName}`,
|
|
54
|
+
names: { [`#${attr.name}`]: attr.name },
|
|
55
|
+
values: { [`:${valueName}`]: value },
|
|
56
|
+
};
|
|
57
|
+
},
|
|
58
|
+
gte: (attr, value) => {
|
|
59
|
+
const valueName = getUniqueValueName(attr.name);
|
|
60
|
+
return {
|
|
61
|
+
expression: `#${attr.name} >= :${valueName}`,
|
|
62
|
+
names: { [`#${attr.name}`]: attr.name },
|
|
63
|
+
values: { [`:${valueName}`]: value },
|
|
64
|
+
};
|
|
65
|
+
},
|
|
66
|
+
between: (attr, low, high) => {
|
|
67
|
+
const lowName = getUniqueValueName(`${attr.name}_low`);
|
|
68
|
+
const highName = getUniqueValueName(`${attr.name}_high`);
|
|
69
|
+
return {
|
|
70
|
+
expression: `#${attr.name} BETWEEN :${lowName} AND :${highName}`,
|
|
71
|
+
names: { [`#${attr.name}`]: attr.name },
|
|
72
|
+
values: {
|
|
73
|
+
[`:${lowName}`]: low,
|
|
74
|
+
[`:${highName}`]: high,
|
|
75
|
+
},
|
|
76
|
+
};
|
|
77
|
+
},
|
|
78
|
+
beginsWith: (attr, value) => {
|
|
79
|
+
const valueName = getUniqueValueName(attr.name);
|
|
80
|
+
return {
|
|
81
|
+
expression: `begins_with(#${attr.name}, :${valueName})`,
|
|
82
|
+
names: { [`#${attr.name}`]: attr.name },
|
|
83
|
+
values: { [`:${valueName}`]: value },
|
|
84
|
+
};
|
|
85
|
+
},
|
|
86
|
+
contains: (attr, value) => {
|
|
87
|
+
const valueName = getUniqueValueName(attr.name);
|
|
88
|
+
return {
|
|
89
|
+
expression: `contains(#${attr.name}, :${valueName})`,
|
|
90
|
+
names: { [`#${attr.name}`]: attr.name },
|
|
91
|
+
values: { [`:${valueName}`]: value },
|
|
92
|
+
};
|
|
93
|
+
},
|
|
94
|
+
exists: (attr) => ({
|
|
95
|
+
expression: `attribute_exists(#${attr.name})`,
|
|
96
|
+
names: { [`#${attr.name}`]: attr.name },
|
|
97
|
+
}),
|
|
98
|
+
notExists: (attr) => ({
|
|
99
|
+
expression: `attribute_not_exists(#${attr.name})`,
|
|
100
|
+
names: { [`#${attr.name}`]: attr.name },
|
|
101
|
+
}),
|
|
102
|
+
attributeType: (attr, type) => {
|
|
103
|
+
const valueName = getUniqueValueName(`${attr.name}_type`);
|
|
104
|
+
return {
|
|
105
|
+
expression: `attribute_type(#${attr.name}, :${valueName})`,
|
|
106
|
+
names: { [`#${attr.name}`]: attr.name },
|
|
107
|
+
values: { [`:${valueName}`]: type },
|
|
108
|
+
};
|
|
109
|
+
},
|
|
110
|
+
in: (attr, values) => {
|
|
111
|
+
const valueNames = values.map((_, i) => getUniqueValueName(`${attr.name}_in${i}`));
|
|
112
|
+
const placeholders = valueNames.map((name) => `:${name}`).join(', ');
|
|
113
|
+
const valuesObj = {};
|
|
114
|
+
valueNames.forEach((name, i) => {
|
|
115
|
+
valuesObj[`:${name}`] = values[i];
|
|
116
|
+
});
|
|
117
|
+
return {
|
|
118
|
+
expression: `#${attr.name} IN (${placeholders})`,
|
|
119
|
+
names: { [`#${attr.name}`]: attr.name },
|
|
120
|
+
values: valuesObj,
|
|
121
|
+
};
|
|
122
|
+
},
|
|
123
|
+
size: (attr) => {
|
|
124
|
+
const sizeExpr = `size(#${attr.name})`;
|
|
125
|
+
const names = { [`#${attr.name}`]: attr.name };
|
|
126
|
+
return {
|
|
127
|
+
eq: (value) => {
|
|
128
|
+
const valueName = getUniqueValueName(`${attr.name}_size`);
|
|
129
|
+
return {
|
|
130
|
+
expression: `${sizeExpr} = :${valueName}`,
|
|
131
|
+
names,
|
|
132
|
+
values: { [`:${valueName}`]: value },
|
|
133
|
+
};
|
|
134
|
+
},
|
|
135
|
+
ne: (value) => {
|
|
136
|
+
const valueName = getUniqueValueName(`${attr.name}_size`);
|
|
137
|
+
return {
|
|
138
|
+
expression: `${sizeExpr} <> :${valueName}`,
|
|
139
|
+
names,
|
|
140
|
+
values: { [`:${valueName}`]: value },
|
|
141
|
+
};
|
|
142
|
+
},
|
|
143
|
+
lt: (value) => {
|
|
144
|
+
const valueName = getUniqueValueName(`${attr.name}_size`);
|
|
145
|
+
return {
|
|
146
|
+
expression: `${sizeExpr} < :${valueName}`,
|
|
147
|
+
names,
|
|
148
|
+
values: { [`:${valueName}`]: value },
|
|
149
|
+
};
|
|
150
|
+
},
|
|
151
|
+
lte: (value) => {
|
|
152
|
+
const valueName = getUniqueValueName(`${attr.name}_size`);
|
|
153
|
+
return {
|
|
154
|
+
expression: `${sizeExpr} <= :${valueName}`,
|
|
155
|
+
names,
|
|
156
|
+
values: { [`:${valueName}`]: value },
|
|
157
|
+
};
|
|
158
|
+
},
|
|
159
|
+
gt: (value) => {
|
|
160
|
+
const valueName = getUniqueValueName(`${attr.name}_size`);
|
|
161
|
+
return {
|
|
162
|
+
expression: `${sizeExpr} > :${valueName}`,
|
|
163
|
+
names,
|
|
164
|
+
values: { [`:${valueName}`]: value },
|
|
165
|
+
};
|
|
166
|
+
},
|
|
167
|
+
gte: (value) => {
|
|
168
|
+
const valueName = getUniqueValueName(`${attr.name}_size`);
|
|
169
|
+
return {
|
|
170
|
+
expression: `${sizeExpr} >= :${valueName}`,
|
|
171
|
+
names,
|
|
172
|
+
values: { [`:${valueName}`]: value },
|
|
173
|
+
};
|
|
174
|
+
},
|
|
175
|
+
};
|
|
176
|
+
},
|
|
177
|
+
and: (...conditions) => ({
|
|
178
|
+
expression: '',
|
|
179
|
+
operator: 'AND',
|
|
180
|
+
children: conditions,
|
|
181
|
+
}),
|
|
182
|
+
or: (...conditions) => ({
|
|
183
|
+
expression: '',
|
|
184
|
+
operator: 'OR',
|
|
185
|
+
children: conditions,
|
|
186
|
+
}),
|
|
187
|
+
not: (condition) => ({
|
|
188
|
+
...condition,
|
|
189
|
+
isNegated: true,
|
|
190
|
+
}),
|
|
191
|
+
};
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* @deprecated Use createOpBuilder() instead to avoid global state.
|
|
195
|
+
* This export is maintained for backward compatibility.
|
|
196
|
+
*/
|
|
197
|
+
exports.opBuilder = createOpBuilder();
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared types for DynamoDB builders
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Condition object for DynamoDB expressions
|
|
6
|
+
*/
|
|
7
|
+
export type Condition = {
|
|
8
|
+
expression: string;
|
|
9
|
+
names?: Record<string, string>;
|
|
10
|
+
values?: Record<string, any>;
|
|
11
|
+
operator?: 'AND' | 'OR';
|
|
12
|
+
isNegated?: boolean;
|
|
13
|
+
children?: Condition[];
|
|
14
|
+
};
|
|
15
|
+
/**
|
|
16
|
+
* Attribute reference for building expressions
|
|
17
|
+
*/
|
|
18
|
+
export type AttrRef = {
|
|
19
|
+
name: string;
|
|
20
|
+
path?: string;
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
* Type-safe attribute builder for models
|
|
24
|
+
* Note: All properties are required (non-optional) to ensure type safety in expressions
|
|
25
|
+
*/
|
|
26
|
+
export type AttrBuilder<Model> = {
|
|
27
|
+
[K in keyof Model]-?: AttrRef;
|
|
28
|
+
};
|
|
29
|
+
/**
|
|
30
|
+
* Available operators for building conditions
|
|
31
|
+
*/
|
|
32
|
+
export type OpBuilder = {
|
|
33
|
+
eq: (attr: AttrRef, value: any) => Condition;
|
|
34
|
+
ne: (attr: AttrRef, value: any) => Condition;
|
|
35
|
+
lt: (attr: AttrRef, value: any) => Condition;
|
|
36
|
+
lte: (attr: AttrRef, value: any) => Condition;
|
|
37
|
+
gt: (attr: AttrRef, value: any) => Condition;
|
|
38
|
+
gte: (attr: AttrRef, value: any) => Condition;
|
|
39
|
+
between: (attr: AttrRef, low: any, high: any) => Condition;
|
|
40
|
+
beginsWith: (attr: AttrRef, value: string) => Condition;
|
|
41
|
+
contains: (attr: AttrRef, value: any) => Condition;
|
|
42
|
+
exists: (attr: AttrRef) => Condition;
|
|
43
|
+
notExists: (attr: AttrRef) => Condition;
|
|
44
|
+
attributeType: (attr: AttrRef, type: 'S' | 'N' | 'B' | 'SS' | 'NS' | 'BS' | 'M' | 'L' | 'NULL' | 'BOOL') => Condition;
|
|
45
|
+
in: (attr: AttrRef, values: any[]) => Condition;
|
|
46
|
+
size: (attr: AttrRef) => SizeRef;
|
|
47
|
+
and: (...conditions: Condition[]) => Condition;
|
|
48
|
+
or: (...conditions: Condition[]) => Condition;
|
|
49
|
+
not: (condition: Condition) => Condition;
|
|
50
|
+
};
|
|
51
|
+
/**
|
|
52
|
+
* Reference to the size() function result for comparisons
|
|
53
|
+
*/
|
|
54
|
+
export type SizeRef = {
|
|
55
|
+
eq: (value: number) => Condition;
|
|
56
|
+
ne: (value: number) => Condition;
|
|
57
|
+
lt: (value: number) => Condition;
|
|
58
|
+
lte: (value: number) => Condition;
|
|
59
|
+
gt: (value: number) => Condition;
|
|
60
|
+
gte: (value: number) => Condition;
|
|
61
|
+
};
|
|
62
|
+
/**
|
|
63
|
+
* Base interface for executable builders
|
|
64
|
+
*/
|
|
65
|
+
export interface ExecutableBuilder<Result> {
|
|
66
|
+
dbParams(): any;
|
|
67
|
+
execute(): Promise<Result>;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Base interface for operation builders with conditions
|
|
71
|
+
*/
|
|
72
|
+
export interface OperationBuilder<Model> {
|
|
73
|
+
where(fn: (attr: AttrBuilder<Model>, op: OpBuilder) => Condition): this;
|
|
74
|
+
dbParams(): any;
|
|
75
|
+
execute(): Promise<Model>;
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/builders/shared/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { DynamoDBClient } from '@aws-sdk/client-dynamodb';
|
|
2
|
+
import { TransactGetBuilder } from './types';
|
|
3
|
+
/**
|
|
4
|
+
* Creates a new TransactGet builder
|
|
5
|
+
*
|
|
6
|
+
* @param client - DynamoDB client instance
|
|
7
|
+
* @returns A TransactGetBuilder
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```typescript
|
|
11
|
+
* const [user, photo] = await createTransactGetBuilder(client)
|
|
12
|
+
* .addGet(getUserParams)
|
|
13
|
+
* .addGet(getPhotoParams)
|
|
14
|
+
* .execute();
|
|
15
|
+
* ```
|
|
16
|
+
*/
|
|
17
|
+
export declare const createTransactGetBuilder: (client: DynamoDBClient) => TransactGetBuilder;
|
|
18
|
+
//# sourceMappingURL=create-transact-get-builder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-transact-get-builder.d.ts","sourceRoot":"","sources":["../../../src/builders/transact-get/create-transact-get-builder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE1D,OAAO,EAAE,kBAAkB,EAAoB,MAAM,SAAS,CAAC;AA8C/D;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,wBAAwB,GAAI,QAAQ,cAAc,KAAG,kBAGjE,CAAC"}
|