triangle-utils 1.0.36 → 1.0.37
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/package.json +1 -1
- package/utils/Utils_DynamoDB.js +9 -7
package/package.json
CHANGED
package/utils/Utils_DynamoDB.js
CHANGED
|
@@ -38,7 +38,7 @@ function convert_input(input) {
|
|
|
38
38
|
return undefined
|
|
39
39
|
}
|
|
40
40
|
|
|
41
|
-
async function
|
|
41
|
+
async function compile_pages(request, f, compile = true) {
|
|
42
42
|
const items = []
|
|
43
43
|
let last_eval_key = undefined
|
|
44
44
|
while (true) {
|
|
@@ -49,7 +49,7 @@ async function paginate(request, f) {
|
|
|
49
49
|
)
|
|
50
50
|
const new_items = response.Items.map(item => convert_output({ M : item }))
|
|
51
51
|
items.push(...new_items)
|
|
52
|
-
if (response.LastEvaluatedKey === undefined) {
|
|
52
|
+
if (response.LastEvaluatedKey === undefined || !compile) {
|
|
53
53
|
return items
|
|
54
54
|
}
|
|
55
55
|
last_eval_key = response.LastEvaluatedKey
|
|
@@ -86,7 +86,7 @@ export default class Utils_DynamoDB {
|
|
|
86
86
|
Segment : i,
|
|
87
87
|
TotalSegments : concurrency
|
|
88
88
|
}).filter(([field, value]) => value !== undefined && (typeof value === typeof 3 || Object.keys(value).length !== 0)))
|
|
89
|
-
iterators.push(
|
|
89
|
+
iterators.push(compile_pages(request, (request) => this.dynamodb.scan(request)))
|
|
90
90
|
}
|
|
91
91
|
const segments = await Promise.all(iterators)
|
|
92
92
|
return segments.flat()
|
|
@@ -131,7 +131,9 @@ export default class Utils_DynamoDB {
|
|
|
131
131
|
|
|
132
132
|
|
|
133
133
|
|
|
134
|
-
async query(table, primary_key,
|
|
134
|
+
async query(table, primary_key, options = {}) {
|
|
135
|
+
const reverse = options.reverse !== undefined ? options.reverse : false
|
|
136
|
+
const compile = options.reverse !== undefined ? options.compile : true
|
|
135
137
|
if (Object.keys(primary_key).length !== 1) {
|
|
136
138
|
return undefined
|
|
137
139
|
}
|
|
@@ -146,7 +148,7 @@ export default class Utils_DynamoDB {
|
|
|
146
148
|
KeyConditionExpression: "#a = :a",
|
|
147
149
|
ScanIndexForward : !reverse
|
|
148
150
|
}
|
|
149
|
-
return await
|
|
151
|
+
return await compile_pages(request, (request) => this.dynamodb.query(request), compile)
|
|
150
152
|
}
|
|
151
153
|
|
|
152
154
|
async query_prefix(table, primary_key, secondary_key_prefix, reverse=false) {
|
|
@@ -166,7 +168,7 @@ export default class Utils_DynamoDB {
|
|
|
166
168
|
KeyConditionExpression: "#a = :a AND begins_with(#b, :b)",
|
|
167
169
|
ScanIndexForward : !reverse
|
|
168
170
|
}
|
|
169
|
-
return await
|
|
171
|
+
return await compile_pages(request, (request) => this.dynamodb.query(request))
|
|
170
172
|
}
|
|
171
173
|
|
|
172
174
|
async query_range(table, primary_key, secondary_key_range, reverse=false) {
|
|
@@ -187,7 +189,7 @@ export default class Utils_DynamoDB {
|
|
|
187
189
|
KeyConditionExpression: "#a = :a AND (#b BETWEEN :b1 AND :b2)",
|
|
188
190
|
ScanIndexForward : !reverse
|
|
189
191
|
}
|
|
190
|
-
return await
|
|
192
|
+
return await compile_pages(request, (request) => this.dynamodb.query(request))
|
|
191
193
|
}
|
|
192
194
|
|
|
193
195
|
async set(table, key, attributes) {
|