effect-dynamodb 1.15.0 → 1.17.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/dist/Aggregate.d.ts +49 -5
- package/dist/Aggregate.d.ts.map +1 -1
- package/dist/Aggregate.js +479 -88
- package/dist/Aggregate.js.map +1 -1
- package/dist/Batch.d.ts +10 -2
- package/dist/Batch.d.ts.map +1 -1
- package/dist/Batch.js +45 -6
- package/dist/Batch.js.map +1 -1
- package/dist/Collection.d.ts +0 -7
- package/dist/Collection.d.ts.map +1 -1
- package/dist/Collection.js +84 -2
- package/dist/Collection.js.map +1 -1
- package/dist/DynamoClient.d.ts +3 -1
- package/dist/DynamoClient.d.ts.map +1 -1
- package/dist/DynamoClient.js +253 -26
- package/dist/DynamoClient.js.map +1 -1
- package/dist/Entity.d.ts +87 -6
- package/dist/Entity.d.ts.map +1 -1
- package/dist/Entity.js +413 -144
- package/dist/Entity.js.map +1 -1
- package/dist/EventStore.d.ts.map +1 -1
- package/dist/EventStore.js +49 -17
- package/dist/EventStore.js.map +1 -1
- package/dist/Query.d.ts +56 -5
- package/dist/Query.d.ts.map +1 -1
- package/dist/Query.js +218 -34
- package/dist/Query.js.map +1 -1
- package/dist/Transaction.d.ts +2 -2
- package/dist/Transaction.d.ts.map +1 -1
- package/dist/Transaction.js +29 -9
- package/dist/Transaction.js.map +1 -1
- package/dist/internal/BoundCrud.d.ts +76 -9
- package/dist/internal/BoundCrud.d.ts.map +1 -1
- package/dist/internal/BoundCrud.js +22 -1
- package/dist/internal/BoundCrud.js.map +1 -1
- package/dist/internal/BoundQuery.d.ts +75 -13
- package/dist/internal/BoundQuery.d.ts.map +1 -1
- package/dist/internal/BoundQuery.js +85 -11
- package/dist/internal/BoundQuery.js.map +1 -1
- package/dist/internal/BoundVectorQuery.d.ts +9 -0
- package/dist/internal/BoundVectorQuery.d.ts.map +1 -1
- package/dist/internal/BoundVectorQuery.js +3 -2
- package/dist/internal/BoundVectorQuery.js.map +1 -1
- package/dist/internal/EntityCombinators.d.ts +31 -5
- package/dist/internal/EntityCombinators.d.ts.map +1 -1
- package/dist/internal/EntityCombinators.js +7 -7
- package/dist/internal/EntityCombinators.js.map +1 -1
- package/dist/internal/EntityOps.d.ts +14 -1
- package/dist/internal/EntityOps.d.ts.map +1 -1
- package/dist/internal/EntityOps.js +4 -1
- package/dist/internal/EntityOps.js.map +1 -1
- package/dist/internal/TransactWriteOps.d.ts +44 -5
- package/dist/internal/TransactWriteOps.d.ts.map +1 -1
- package/dist/internal/TransactWriteOps.js +98 -20
- package/dist/internal/TransactWriteOps.js.map +1 -1
- package/dist/internal/TransactableOps.d.ts +69 -1
- package/dist/internal/TransactableOps.d.ts.map +1 -1
- package/dist/internal/TransactableOps.js +138 -4
- package/dist/internal/TransactableOps.js.map +1 -1
- package/package.json +2 -2
package/dist/Query.js
CHANGED
|
@@ -13,6 +13,13 @@ import { DynamoClient } from "./DynamoClient.js";
|
|
|
13
13
|
import { compileExpr } from "./internal/Expr.js";
|
|
14
14
|
import { compilePath } from "./internal/PathBuilder.js";
|
|
15
15
|
import { fromAttributeMap, toAttributeValue } from "./Marshaller.js";
|
|
16
|
+
/** @internal Dedupe + drop absent entries from a caller-supplied key field list. */
|
|
17
|
+
const normalizeKeyFields = (fields) => {
|
|
18
|
+
if (!fields)
|
|
19
|
+
return undefined;
|
|
20
|
+
const out = [...new Set(fields.filter((f) => typeof f === "string" && f !== ""))];
|
|
21
|
+
return out.length > 0 ? out : undefined;
|
|
22
|
+
};
|
|
16
23
|
// ---------------------------------------------------------------------------
|
|
17
24
|
// Query<A> interface
|
|
18
25
|
// ---------------------------------------------------------------------------
|
|
@@ -44,6 +51,7 @@ export const make = (config) => new QueryImpl({
|
|
|
44
51
|
exprFilters: [],
|
|
45
52
|
entityTypes: config.entityTypes,
|
|
46
53
|
limitValue: undefined,
|
|
54
|
+
pageSizeValue: undefined,
|
|
47
55
|
maxPagesValue: undefined,
|
|
48
56
|
scanForward: true,
|
|
49
57
|
consistentRead: false,
|
|
@@ -54,6 +62,7 @@ export const make = (config) => new QueryImpl({
|
|
|
54
62
|
projectionPaths: undefined,
|
|
55
63
|
decoder: config.decoder,
|
|
56
64
|
resolveTableName: config.resolveTableName,
|
|
65
|
+
keyFields: normalizeKeyFields(config.keyFields),
|
|
57
66
|
});
|
|
58
67
|
/**
|
|
59
68
|
* Create a scan-mode Query. Shares all combinators and terminals with Query
|
|
@@ -70,6 +79,7 @@ export const makeScan = (config) => new QueryImpl({
|
|
|
70
79
|
exprFilters: [],
|
|
71
80
|
entityTypes: config.entityTypes,
|
|
72
81
|
limitValue: undefined,
|
|
82
|
+
pageSizeValue: undefined,
|
|
73
83
|
maxPagesValue: undefined,
|
|
74
84
|
scanForward: true,
|
|
75
85
|
consistentRead: false,
|
|
@@ -80,6 +90,7 @@ export const makeScan = (config) => new QueryImpl({
|
|
|
80
90
|
projectionPaths: undefined,
|
|
81
91
|
decoder: config.decoder,
|
|
82
92
|
resolveTableName: config.resolveTableName,
|
|
93
|
+
keyFields: normalizeKeyFields(config.keyFields),
|
|
83
94
|
});
|
|
84
95
|
// ---------------------------------------------------------------------------
|
|
85
96
|
// Cursor encoding (internal)
|
|
@@ -103,12 +114,33 @@ export const where = Function.dual(2, (self, condition) => {
|
|
|
103
114
|
});
|
|
104
115
|
});
|
|
105
116
|
/**
|
|
106
|
-
*
|
|
117
|
+
* Return **at most `n` items** — a contract on results, not on round trips.
|
|
118
|
+
*
|
|
119
|
+
* The query accumulates across as many DynamoDB requests as it takes to reach
|
|
120
|
+
* `n` accepted items (or to exhaust the key range). Under a `FilterExpression`
|
|
121
|
+
* DynamoDB's own `Limit` bounds rows *examined* before the filter runs, so it
|
|
122
|
+
* cannot express this — {@link pageSize} is the knob that sets `Limit`, and
|
|
123
|
+
* {@link maxPages} stays the hard stop on the number of requests.
|
|
124
|
+
*
|
|
125
|
+
* ```ts
|
|
126
|
+
* query.pipe(Query.limit(3), Query.collect) // 3 items
|
|
127
|
+
* query.pipe(Query.pageSize(50), Query.limit(120), Query.collect) // 120 items, requests of ≤50
|
|
128
|
+
* ```
|
|
107
129
|
*/
|
|
108
130
|
export const limit = Function.dual(2, (self, n) => new QueryImpl({
|
|
109
131
|
...self._state,
|
|
110
132
|
limitValue: n,
|
|
111
133
|
}));
|
|
134
|
+
/**
|
|
135
|
+
* Fetch in batches of `n` — sets DynamoDB's `Limit` (rows examined per request).
|
|
136
|
+
* A contract on round trips, not on what comes back: a request under a
|
|
137
|
+
* `FilterExpression` may return fewer than `n` items, and pagination continues
|
|
138
|
+
* until the key range is exhausted (or {@link limit} / {@link maxPages} stops it).
|
|
139
|
+
*/
|
|
140
|
+
export const pageSize = Function.dual(2, (self, n) => new QueryImpl({
|
|
141
|
+
...self._state,
|
|
142
|
+
pageSizeValue: n,
|
|
143
|
+
}));
|
|
112
144
|
/**
|
|
113
145
|
* Reverse the sort order (sets ScanIndexForward = false).
|
|
114
146
|
*/
|
|
@@ -166,10 +198,18 @@ export const select = Function.dual(2, (self, attributes) => new QueryImpl({
|
|
|
166
198
|
* Add an Expr-based filter expression to the query.
|
|
167
199
|
* Multiple filterExpr calls are ANDed together.
|
|
168
200
|
*/
|
|
169
|
-
export const filterExpr = Function.dual(2, (self, expr) =>
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
201
|
+
export const filterExpr = Function.dual(2, (self, expr) => {
|
|
202
|
+
// An empty shorthand (`.filter({})`) parses to an empty `and`, which
|
|
203
|
+
// compiles to the empty string — and `FilterExpression: ""` is rejected by
|
|
204
|
+
// DynamoDB. A predicate over no attributes is a no-op, so drop it here
|
|
205
|
+
// rather than emitting an unusable request.
|
|
206
|
+
if ((expr._tag === "and" || expr._tag === "or") && expr.exprs.length === 0)
|
|
207
|
+
return self;
|
|
208
|
+
return new QueryImpl({
|
|
209
|
+
...self._state,
|
|
210
|
+
exprFilters: [...self._state.exprFilters, expr],
|
|
211
|
+
});
|
|
212
|
+
});
|
|
173
213
|
/**
|
|
174
214
|
* Apply path-based projections. Compiles path segments to ProjectionExpression.
|
|
175
215
|
* When projection is active, items are returned as raw `Record<string, unknown>`.
|
|
@@ -207,23 +247,26 @@ const buildFilterClauses = (state) => {
|
|
|
207
247
|
// ---------------------------------------------------------------------------
|
|
208
248
|
// Internal: build projection expression from state
|
|
209
249
|
// ---------------------------------------------------------------------------
|
|
210
|
-
const buildProjection = (state, names) => {
|
|
250
|
+
const buildProjection = (state, names, extraFields = []) => {
|
|
211
251
|
if (state.projectionPaths && state.projectionPaths.length > 0) {
|
|
212
252
|
const counter = { value: 0 };
|
|
213
253
|
const projParts = [];
|
|
214
254
|
for (const segments of state.projectionPaths) {
|
|
215
255
|
projParts.push(compilePath(segments, names, "proj", counter));
|
|
216
256
|
}
|
|
257
|
+
for (const field of extraFields) {
|
|
258
|
+
projParts.push(compilePath([field], names, "proj", counter));
|
|
259
|
+
}
|
|
217
260
|
return projParts.join(", ");
|
|
218
261
|
}
|
|
219
262
|
if (state.projection && state.projection.length > 0) {
|
|
220
|
-
const proj = Projection.projection(state.projection);
|
|
263
|
+
const proj = Projection.projection([...state.projection, ...extraFields]);
|
|
221
264
|
Object.assign(names, proj.names);
|
|
222
265
|
return proj.expression;
|
|
223
266
|
}
|
|
224
267
|
return undefined;
|
|
225
268
|
};
|
|
226
|
-
const buildCommandInput = (state) => {
|
|
269
|
+
const buildCommandInput = (state, extraProjectionFields = []) => {
|
|
227
270
|
const fc = buildFilterClauses(state);
|
|
228
271
|
const names = { ...fc.names };
|
|
229
272
|
const values = { ...fc.values };
|
|
@@ -268,7 +311,7 @@ const buildCommandInput = (state) => {
|
|
|
268
311
|
}
|
|
269
312
|
}
|
|
270
313
|
}
|
|
271
|
-
const projectionExpression = buildProjection(state, names);
|
|
314
|
+
const projectionExpression = buildProjection(state, names, extraProjectionFields);
|
|
272
315
|
return {
|
|
273
316
|
KeyConditionExpression: keyCondition,
|
|
274
317
|
FilterExpression: fc.filterClauses.length > 0 ? fc.filterClauses.join(" AND ") : undefined,
|
|
@@ -280,9 +323,12 @@ const buildCommandInput = (state) => {
|
|
|
280
323
|
};
|
|
281
324
|
/**
|
|
282
325
|
* @internal Build the full DynamoDB command parameters from state and table name.
|
|
326
|
+
*
|
|
327
|
+
* `Limit` is NOT derived from state here — it is per-request (it shrinks as a
|
|
328
|
+
* `limit` budget is consumed) and is always supplied through `overrides`.
|
|
283
329
|
*/
|
|
284
|
-
const buildDynamoCommand = (state, tableName, overrides) => {
|
|
285
|
-
const input = buildCommandInput(state);
|
|
330
|
+
const buildDynamoCommand = (state, tableName, overrides, extraProjectionFields = []) => {
|
|
331
|
+
const input = buildCommandInput(state, extraProjectionFields);
|
|
286
332
|
return {
|
|
287
333
|
TableName: tableName,
|
|
288
334
|
IndexName: state.indexName,
|
|
@@ -292,16 +338,80 @@ const buildDynamoCommand = (state, tableName, overrides) => {
|
|
|
292
338
|
ExpressionAttributeNames: input.ExpressionAttributeNames,
|
|
293
339
|
ExpressionAttributeValues: input.ExpressionAttributeValues,
|
|
294
340
|
ConsistentRead: input.ConsistentRead,
|
|
295
|
-
Limit: state.limitValue,
|
|
341
|
+
Limit: computeRequestLimit(state, state.limitValue),
|
|
296
342
|
ScanIndexForward: state.isScan ? undefined : state.scanForward,
|
|
297
343
|
...overrides,
|
|
298
344
|
};
|
|
299
345
|
};
|
|
300
346
|
// ---------------------------------------------------------------------------
|
|
347
|
+
// Internal: limit / pageSize execution helpers
|
|
348
|
+
// ---------------------------------------------------------------------------
|
|
349
|
+
/**
|
|
350
|
+
* @internal DynamoDB `Limit` for the next request.
|
|
351
|
+
*
|
|
352
|
+
* - `pageSize` always wins as the round-trip budget when it is set.
|
|
353
|
+
* - With a `limit` budget and NO user filter, every examined row is an accepted
|
|
354
|
+
* row, so the budget can be handed to DynamoDB directly (bounded by pageSize).
|
|
355
|
+
* The `__edd_e__` ownership filter is not counted here: it only ever rejects
|
|
356
|
+
* foreign items, which the accumulate loop handles by fetching another page.
|
|
357
|
+
* - With a user filter, `limit` cannot be expressed as `Limit` at all (it bounds
|
|
358
|
+
* rows examined, and the filter runs after), so the request asks for
|
|
359
|
+
* `pageSize` — or, unset, a natural (1 MB) page.
|
|
360
|
+
*/
|
|
361
|
+
const computeRequestLimit = (state, remaining) => {
|
|
362
|
+
const pageSize = state.pageSizeValue;
|
|
363
|
+
if (remaining === undefined)
|
|
364
|
+
return pageSize;
|
|
365
|
+
if (state.exprFilters.length > 0)
|
|
366
|
+
return pageSize;
|
|
367
|
+
return pageSize === undefined ? remaining : Math.min(pageSize, remaining);
|
|
368
|
+
};
|
|
369
|
+
/**
|
|
370
|
+
* @internal Attribute names that form a resume key for this response.
|
|
371
|
+
* The `LastEvaluatedKey`, when present, is authoritative about the key shape.
|
|
372
|
+
*/
|
|
373
|
+
const resumeKeyNames = (state, lastEvaluatedKey) => lastEvaluatedKey != null ? Object.keys(lastEvaluatedKey) : state.keyFields;
|
|
374
|
+
/**
|
|
375
|
+
* @internal Rebuild a cursor from the last item actually returned, so the next
|
|
376
|
+
* page resumes after what the caller saw rather than after the last row the
|
|
377
|
+
* request examined. Returns `undefined` when the item does not carry the whole
|
|
378
|
+
* key (e.g. a projection dropped it) — the caller then falls back.
|
|
379
|
+
*/
|
|
380
|
+
const cursorFromItem = (item, names) => {
|
|
381
|
+
if (!names || names.length === 0)
|
|
382
|
+
return undefined;
|
|
383
|
+
const key = {};
|
|
384
|
+
for (const name of names) {
|
|
385
|
+
const value = item[name];
|
|
386
|
+
if (value === undefined)
|
|
387
|
+
return undefined;
|
|
388
|
+
key[name] = value;
|
|
389
|
+
}
|
|
390
|
+
return encodeCursor(key);
|
|
391
|
+
};
|
|
392
|
+
/**
|
|
393
|
+
* @internal Key attributes to add to an active ProjectionExpression so an
|
|
394
|
+
* over-reading request can still rebuild an accurate cursor. They are stripped
|
|
395
|
+
* from the items handed back, so the caller sees exactly what it selected.
|
|
396
|
+
*/
|
|
397
|
+
const cursorProjectionFields = (state) => {
|
|
398
|
+
if (state.limitValue === undefined || !state.keyFields)
|
|
399
|
+
return [];
|
|
400
|
+
const projected = new Set([
|
|
401
|
+
...(state.projection ?? []),
|
|
402
|
+
...(state.projectionPaths ?? []).map((segments) => String(segments[0])),
|
|
403
|
+
]);
|
|
404
|
+
if (projected.size === 0)
|
|
405
|
+
return [];
|
|
406
|
+
return state.keyFields.filter((field) => !projected.has(field));
|
|
407
|
+
};
|
|
408
|
+
// ---------------------------------------------------------------------------
|
|
301
409
|
// Terminals
|
|
302
410
|
// ---------------------------------------------------------------------------
|
|
303
411
|
/**
|
|
304
|
-
* Execute the query and collect
|
|
412
|
+
* Execute the query and collect the results into a single array.
|
|
413
|
+
* Stops at {@link limit} items when one is set, otherwise reads to the end of
|
|
414
|
+
* the key range (or {@link maxPages} requests).
|
|
305
415
|
*/
|
|
306
416
|
export const collect = (self) => Effect.gen(function* () {
|
|
307
417
|
const stream = yield* paginateInternal(self);
|
|
@@ -309,8 +419,15 @@ export const collect = (self) => Effect.gen(function* () {
|
|
|
309
419
|
return pages.flat();
|
|
310
420
|
});
|
|
311
421
|
/**
|
|
312
|
-
* Execute
|
|
313
|
-
*
|
|
422
|
+
* Execute one page and return a {@link Page} with an opaque cursor.
|
|
423
|
+
*
|
|
424
|
+
* Without {@link limit}, a page is one DynamoDB request (of {@link pageSize}
|
|
425
|
+
* rows, when set). With `limit(n)`, a page is `n` items: the request loop
|
|
426
|
+
* accumulates until `n` items are accepted, the key range is exhausted, or
|
|
427
|
+
* {@link maxPages} requests have been made.
|
|
428
|
+
*
|
|
429
|
+
* The cursor resumes after the last item actually returned — a `null` cursor
|
|
430
|
+
* means genuinely exhausted. Combine with {@link startFrom} to iterate:
|
|
314
431
|
*
|
|
315
432
|
* ```ts
|
|
316
433
|
* const first = yield* query.pipe(Query.limit(25), Query.execute)
|
|
@@ -323,59 +440,126 @@ export const execute = (self) => Effect.gen(function* () {
|
|
|
323
440
|
const client = yield* DynamoClient;
|
|
324
441
|
const state = self._state;
|
|
325
442
|
const tableName = state.resolveTableName ? yield* state.resolveTableName : state.tableName;
|
|
326
|
-
const
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
const
|
|
333
|
-
|
|
334
|
-
|
|
443
|
+
const limitValue = state.limitValue;
|
|
444
|
+
if (limitValue !== undefined && limitValue <= 0) {
|
|
445
|
+
return { items: [], cursor: null };
|
|
446
|
+
}
|
|
447
|
+
// Key attributes borrowed into an active projection so an over-reading
|
|
448
|
+
// request can still rebuild a cursor. Stripped again before decoding.
|
|
449
|
+
const borrowedFields = cursorProjectionFields(state);
|
|
450
|
+
const items = [];
|
|
451
|
+
let startKey = state.exclusiveStartKey;
|
|
452
|
+
let pageCount = 0;
|
|
453
|
+
let cursor = null;
|
|
454
|
+
while (true) {
|
|
455
|
+
pageCount++;
|
|
456
|
+
const remaining = limitValue === undefined ? undefined : limitValue - items.length;
|
|
457
|
+
const cmd = buildDynamoCommand(state, tableName, { ExclusiveStartKey: startKey, Limit: computeRequestLimit(state, remaining) }, borrowedFields);
|
|
458
|
+
const result = state.isScan ? yield* client.scan(cmd) : yield* client.query(cmd);
|
|
459
|
+
const returned = (result.Items ?? []);
|
|
460
|
+
const lastEvaluatedKey = result.LastEvaluatedKey;
|
|
461
|
+
const take = remaining === undefined ? returned.length : Math.min(remaining, returned.length);
|
|
462
|
+
for (let i = 0; i < take; i++) {
|
|
463
|
+
const raw = fromAttributeMap(returned[i]);
|
|
464
|
+
for (const field of borrowedFields)
|
|
465
|
+
delete raw[field];
|
|
466
|
+
items.push(yield* state.decoder(raw));
|
|
467
|
+
}
|
|
468
|
+
// Over-read: the surplus was discarded, so the cursor has to be rebuilt
|
|
469
|
+
// from the last item handed back rather than from LastEvaluatedKey.
|
|
470
|
+
if (take < returned.length) {
|
|
471
|
+
cursor =
|
|
472
|
+
cursorFromItem(returned[take - 1], resumeKeyNames(state, lastEvaluatedKey)) ??
|
|
473
|
+
(lastEvaluatedKey != null ? encodeCursor(lastEvaluatedKey) : null);
|
|
474
|
+
break;
|
|
475
|
+
}
|
|
476
|
+
const exhausted = lastEvaluatedKey == null;
|
|
477
|
+
const limitReached = limitValue !== undefined && items.length >= limitValue;
|
|
478
|
+
const maxPagesReached = state.maxPagesValue != null && pageCount >= state.maxPagesValue;
|
|
479
|
+
if (limitValue === undefined || exhausted || limitReached || maxPagesReached) {
|
|
480
|
+
cursor = lastEvaluatedKey != null ? encodeCursor(lastEvaluatedKey) : null;
|
|
481
|
+
break;
|
|
482
|
+
}
|
|
483
|
+
startKey = lastEvaluatedKey;
|
|
484
|
+
}
|
|
335
485
|
return { items, cursor };
|
|
336
486
|
});
|
|
337
487
|
/**
|
|
338
488
|
* Execute the query and return a Stream of page arrays.
|
|
489
|
+
* A page is one DynamoDB request (of {@link pageSize} rows, when set); the
|
|
490
|
+
* stream ends once {@link limit} items have been emitted in total, the key
|
|
491
|
+
* range is exhausted, or {@link maxPages} requests have been made.
|
|
339
492
|
*/
|
|
340
493
|
export const paginate = (self) => paginateInternal(self);
|
|
341
494
|
const paginateInternal = (self) => Effect.gen(function* () {
|
|
342
495
|
const client = yield* DynamoClient;
|
|
343
496
|
const state = self._state;
|
|
344
497
|
const tableName = state.resolveTableName ? yield* state.resolveTableName : state.tableName;
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
498
|
+
const limitValue = state.limitValue;
|
|
499
|
+
if (limitValue !== undefined && limitValue <= 0) {
|
|
500
|
+
return Stream.empty;
|
|
501
|
+
}
|
|
502
|
+
return Stream.paginate({
|
|
503
|
+
key: state.exclusiveStartKey,
|
|
504
|
+
pageCount: 0,
|
|
505
|
+
emitted: 0,
|
|
506
|
+
}, (pageState) => Effect.gen(function* () {
|
|
507
|
+
const pageCount = pageState.pageCount + 1;
|
|
508
|
+
const remaining = limitValue === undefined ? undefined : limitValue - pageState.emitted;
|
|
509
|
+
const cmd = buildDynamoCommand(state, tableName, {
|
|
510
|
+
ExclusiveStartKey: pageState.key,
|
|
511
|
+
Limit: computeRequestLimit(state, remaining),
|
|
512
|
+
});
|
|
349
513
|
const result = state.isScan ? yield* client.scan(cmd) : yield* client.query(cmd);
|
|
350
|
-
const
|
|
351
|
-
const
|
|
352
|
-
|
|
514
|
+
const returned = (result.Items ?? []);
|
|
515
|
+
const take = remaining === undefined ? returned.length : Math.min(remaining, returned.length);
|
|
516
|
+
const decoded = yield* Effect.forEach(returned.slice(0, take).map((item) => fromAttributeMap(item)), (raw) => state.decoder(raw));
|
|
517
|
+
const emitted = pageState.emitted + decoded.length;
|
|
353
518
|
const hasMorePages = result.LastEvaluatedKey != null;
|
|
354
519
|
const maxPagesReached = state.maxPagesValue != null && pageCount >= state.maxPagesValue;
|
|
355
|
-
const
|
|
356
|
-
|
|
520
|
+
const limitReached = limitValue !== undefined && emitted >= limitValue;
|
|
521
|
+
const nextState = hasMorePages && !maxPagesReached && !limitReached
|
|
522
|
+
? Option.some({
|
|
523
|
+
key: result.LastEvaluatedKey,
|
|
524
|
+
pageCount,
|
|
525
|
+
emitted,
|
|
526
|
+
})
|
|
527
|
+
: Option.none();
|
|
528
|
+
return [[decoded], nextState];
|
|
357
529
|
}));
|
|
358
530
|
});
|
|
359
531
|
/**
|
|
360
532
|
* Execute a count query. Uses `Select: "COUNT"` on DynamoDB — no items are returned.
|
|
361
|
-
* Returns the total count across all
|
|
533
|
+
* Returns the total count across all requests (respects {@link maxPages}).
|
|
534
|
+
*
|
|
535
|
+
* {@link limit} caps the count, keeping `count()` equal to `collect().length`
|
|
536
|
+
* for the same query: `.limit(n).count()` returns `min(matching, n)` and stops
|
|
537
|
+
* counting once `n` is reached — which makes `.limit(1).count()` a cheap
|
|
538
|
+
* existence check. {@link pageSize} sets the rows examined per request.
|
|
362
539
|
*/
|
|
363
540
|
export const count = (self) => Effect.gen(function* () {
|
|
364
541
|
const client = yield* DynamoClient;
|
|
365
542
|
const state = self._state;
|
|
366
543
|
const tableName = state.resolveTableName ? yield* state.resolveTableName : state.tableName;
|
|
544
|
+
const limitValue = state.limitValue;
|
|
545
|
+
if (limitValue !== undefined && limitValue <= 0)
|
|
546
|
+
return 0;
|
|
367
547
|
let total = 0;
|
|
368
548
|
let pageCount = 0;
|
|
369
549
|
let exclusiveStartKey;
|
|
370
550
|
do {
|
|
371
551
|
pageCount++;
|
|
552
|
+
const remaining = limitValue === undefined ? undefined : limitValue - total;
|
|
372
553
|
const cmd = buildDynamoCommand(state, tableName, {
|
|
373
554
|
ExclusiveStartKey: exclusiveStartKey,
|
|
374
555
|
Select: "COUNT",
|
|
556
|
+
Limit: computeRequestLimit(state, remaining),
|
|
375
557
|
});
|
|
376
558
|
const result = state.isScan ? yield* client.scan(cmd) : yield* client.query(cmd);
|
|
377
559
|
total += result.Count ?? 0;
|
|
378
560
|
exclusiveStartKey = result.LastEvaluatedKey;
|
|
561
|
+
if (limitValue !== undefined && total >= limitValue)
|
|
562
|
+
return limitValue;
|
|
379
563
|
if (state.maxPagesValue != null && pageCount >= state.maxPagesValue)
|
|
380
564
|
break;
|
|
381
565
|
} while (exclusiveStartKey != null);
|
package/dist/Query.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Query.js","sourceRoot":"","sources":["../src/Query.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Query.js","sourceRoot":"","sources":["../src/Query.ts"],"names":[],"mappings":"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"}
|
package/dist/Transaction.d.ts
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
* EntityDelete) instead of manual { entity, key/item } objects.
|
|
9
9
|
* transactGet returns a typed tuple inferred per-position.
|
|
10
10
|
*/
|
|
11
|
-
import { TransactionCancelled, type ValidationError } from "@effect-dynamodb/schema/Errors.js";
|
|
11
|
+
import { TransactionCancelled, UniqueConstraintViolation, type ValidationError } from "@effect-dynamodb/schema/Errors.js";
|
|
12
12
|
import { Effect } from "effect";
|
|
13
13
|
import { DynamoClient, type DynamoClientError } from "./DynamoClient.js";
|
|
14
14
|
import type { EntityGet } from "./Entity.js";
|
|
@@ -60,5 +60,5 @@ export declare const transactGet: <const T extends ReadonlyArray<EntityGet<any,
|
|
|
60
60
|
* ])
|
|
61
61
|
* ```
|
|
62
62
|
*/
|
|
63
|
-
export declare const transactWrite: (operations: ReadonlyArray<TransactWriteOp>) => Effect.Effect<void, DynamoClientError | ValidationError | TransactionCancelled, DynamoClient | TableConfig>;
|
|
63
|
+
export declare const transactWrite: (operations: ReadonlyArray<TransactWriteOp>) => Effect.Effect<void, DynamoClientError | ValidationError | TransactionCancelled | UniqueConstraintViolation, DynamoClient | TableConfig>;
|
|
64
64
|
//# sourceMappingURL=Transaction.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Transaction.d.ts","sourceRoot":"","sources":["../src/Transaction.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAIL,oBAAoB,EACpB,KAAK,eAAe,EACrB,MAAM,mCAAmC,CAAA;AAC1C,OAAO,EAAE,MAAM,EAAkB,MAAM,QAAQ,CAAA;AAC/C,OAAO,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AACxE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAE5C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAEvD,OAAO,EAEL,KAAK,gBAAgB,EACrB,oBAAoB,EACpB,KAAK,eAAe,EACrB,MAAM,gCAAgC,CAAA;AAEvC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAS7C,OAAO,EAAE,oBAAoB,EAAE,KAAK,gBAAgB,EAAE,KAAK,eAAe,EAAE,CAAA;AAE5E;;;;;;GAMG;AACH,eAAO,MAAM,KAAK,EAAE;IAClB,CAAC,SAAS,EAAE,gBAAgB,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,gBAAgB,CAAA;IAChG,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,gBAAgB,GAAG,gBAAgB,CAAA;CAe7F,CAAA;AAMD;;;GAGG;AACH,KAAK,iBAAiB,CAAC,CAAC,SAAS,aAAa,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,IAAI;IAC/E,CAAC,UAAU,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,SAAS,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,SAAS,GAAG,KAAK;CACjG,CAAA;AAED;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,WAAW,GAAI,KAAK,CAAC,CAAC,SAAS,aAAa,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,EACtF,OAAO,CAAC,KACP,MAAM,CAAC,MAAM,CACd,iBAAiB,CAAC,CAAC,CAAC,EACpB,iBAAiB,GAAG,eAAe,GAAG,oBAAoB,EAC1D,YAAY,GAAG,WAAW,CAuExB,CAAA;AAMJ;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,aAAa,GACxB,YAAY,aAAa,CAAC,eAAe,CAAC,KACzC,MAAM,CAAC,MAAM,CACd,IAAI,EACJ,iBAAiB,GAAG,eAAe,GAAG,oBAAoB,
|
|
1
|
+
{"version":3,"file":"Transaction.d.ts","sourceRoot":"","sources":["../src/Transaction.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAIL,oBAAoB,EACpB,yBAAyB,EACzB,KAAK,eAAe,EACrB,MAAM,mCAAmC,CAAA;AAC1C,OAAO,EAAE,MAAM,EAAkB,MAAM,QAAQ,CAAA;AAC/C,OAAO,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AACxE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAE5C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAEvD,OAAO,EAEL,KAAK,gBAAgB,EACrB,oBAAoB,EACpB,KAAK,eAAe,EACrB,MAAM,gCAAgC,CAAA;AAEvC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAS7C,OAAO,EAAE,oBAAoB,EAAE,KAAK,gBAAgB,EAAE,KAAK,eAAe,EAAE,CAAA;AAE5E;;;;;;GAMG;AACH,eAAO,MAAM,KAAK,EAAE;IAClB,CAAC,SAAS,EAAE,gBAAgB,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,gBAAgB,CAAA;IAChG,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,gBAAgB,GAAG,gBAAgB,CAAA;CAe7F,CAAA;AAMD;;;GAGG;AACH,KAAK,iBAAiB,CAAC,CAAC,SAAS,aAAa,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,IAAI;IAC/E,CAAC,UAAU,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,SAAS,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,SAAS,GAAG,KAAK;CACjG,CAAA;AAED;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,WAAW,GAAI,KAAK,CAAC,CAAC,SAAS,aAAa,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,EACtF,OAAO,CAAC,KACP,MAAM,CAAC,MAAM,CACd,iBAAiB,CAAC,CAAC,CAAC,EACpB,iBAAiB,GAAG,eAAe,GAAG,oBAAoB,EAC1D,YAAY,GAAG,WAAW,CAuExB,CAAA;AAMJ;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,aAAa,GACxB,YAAY,aAAa,CAAC,eAAe,CAAC,KACzC,MAAM,CAAC,MAAM,CACd,IAAI,EACJ,iBAAiB,GAAG,eAAe,GAAG,oBAAoB,GAAG,yBAAyB,EACtF,YAAY,GAAG,WAAW,CA2DxB,CAAA"}
|
package/dist/Transaction.js
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
* EntityDelete) instead of manual { entity, key/item } objects.
|
|
9
9
|
* transactGet returns a typed tuple inferred per-position.
|
|
10
10
|
*/
|
|
11
|
-
import { DynamoError, isAwsTransactionCancelled, TRANSACT_WRITE_ITEMS_LIMIT, TransactionCancelled, } from "@effect-dynamodb/schema/Errors.js";
|
|
11
|
+
import { DynamoError, isAwsTransactionCancelled, TRANSACT_WRITE_ITEMS_LIMIT, TransactionCancelled, UniqueConstraintViolation, } from "@effect-dynamodb/schema/Errors.js";
|
|
12
12
|
import { Effect, Function as Fn } from "effect";
|
|
13
13
|
import { DynamoClient } from "./DynamoClient.js";
|
|
14
14
|
import { extractTransactable } from "./Entity.js";
|
|
@@ -129,22 +129,42 @@ export const transactGet = (items) => Effect.gen(function* () {
|
|
|
129
129
|
export const transactWrite = (operations) => Effect.gen(function* () {
|
|
130
130
|
if (operations.length === 0)
|
|
131
131
|
return;
|
|
132
|
-
|
|
132
|
+
const client = yield* DynamoClient;
|
|
133
|
+
const { items: transactItems, provenance } = yield* buildTransactWriteItems(operations, "transactWrite");
|
|
134
|
+
// Counted AFTER expansion: one op can emit several items (a `unique` +
|
|
135
|
+
// `retain` put emits the item, a sentinel per constraint, and the snapshot),
|
|
136
|
+
// so `operations.length` would understate the request and let DynamoDB
|
|
137
|
+
// reject it with a far less useful message (#113).
|
|
138
|
+
if (transactItems.length > TRANSACT_WRITE_ITEMS_LIMIT) {
|
|
133
139
|
return yield* Effect.fail(new DynamoError({
|
|
134
140
|
operation: "TransactWriteItems",
|
|
135
|
-
cause: new Error(`TransactWriteItems supports a maximum of ${TRANSACT_WRITE_ITEMS_LIMIT} items`
|
|
141
|
+
cause: new Error(`TransactWriteItems supports a maximum of ${TRANSACT_WRITE_ITEMS_LIMIT} items; ` +
|
|
142
|
+
`${operations.length} operation(s) expanded to ${transactItems.length} items ` +
|
|
143
|
+
"(uniqueness sentinels and version snapshots each occupy one)"),
|
|
136
144
|
}));
|
|
137
145
|
}
|
|
138
|
-
const client = yield* DynamoClient;
|
|
139
|
-
const transactItems = yield* buildTransactWriteItems(operations, "transactWrite");
|
|
140
146
|
yield* client.transactWriteItems({ TransactItems: transactItems }).pipe(Effect.mapError((error) => {
|
|
141
147
|
if (isAwsTransactionCancelled(error.cause)) {
|
|
148
|
+
const rawReasons = error.cause.CancellationReasons ?? [];
|
|
149
|
+
// A failed sentinel is not a generic cancellation — it is precisely
|
|
150
|
+
// "this unique value is taken", which is what `Entity.put` reports for
|
|
151
|
+
// the same item. Attribute it through the provenance map rather than
|
|
152
|
+
// by position, because one op now spans several items.
|
|
153
|
+
for (let i = 0; i < rawReasons.length; i++) {
|
|
154
|
+
const from = provenance[i];
|
|
155
|
+
if (from?.kind === "sentinel" &&
|
|
156
|
+
rawReasons[i]?.Code === "ConditionalCheckFailed" &&
|
|
157
|
+
from.constraintName !== undefined) {
|
|
158
|
+
return new UniqueConstraintViolation({
|
|
159
|
+
entityType: from.entityType,
|
|
160
|
+
constraint: from.constraintName,
|
|
161
|
+
fields: from.fields ?? {},
|
|
162
|
+
});
|
|
163
|
+
}
|
|
164
|
+
}
|
|
142
165
|
return new TransactionCancelled({
|
|
143
166
|
operation: "TransactWriteItems",
|
|
144
|
-
reasons:
|
|
145
|
-
code: r?.Code,
|
|
146
|
-
message: r?.Message,
|
|
147
|
-
})),
|
|
167
|
+
reasons: rawReasons.map((r) => ({ code: r?.Code, message: r?.Message })),
|
|
148
168
|
cause: error.cause,
|
|
149
169
|
});
|
|
150
170
|
}
|
package/dist/Transaction.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Transaction.js","sourceRoot":"","sources":["../src/Transaction.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EACL,WAAW,EACX,yBAAyB,EACzB,0BAA0B,EAC1B,oBAAoB,
|
|
1
|
+
{"version":3,"file":"Transaction.js","sourceRoot":"","sources":["../src/Transaction.ts"],"names":[],"mappings":"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"}
|