betterddb 0.8.2 → 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.
Files changed (56) hide show
  1. package/API_REFERENCE.md +306 -122
  2. package/README.md +69 -16
  3. package/package.json +30 -6
  4. package/dist/src/betterddb.d.ts +0 -137
  5. package/dist/src/betterddb.d.ts.map +0 -1
  6. package/dist/src/betterddb.js +0 -165
  7. package/dist/src/betterddb.js.map +0 -1
  8. package/dist/src/builders/batch-get-builder.d.ts +0 -16
  9. package/dist/src/builders/batch-get-builder.d.ts.map +0 -1
  10. package/dist/src/builders/batch-get-builder.js +0 -54
  11. package/dist/src/builders/batch-get-builder.js.map +0 -1
  12. package/dist/src/builders/create-builder.d.ts +0 -12
  13. package/dist/src/builders/create-builder.d.ts.map +0 -1
  14. package/dist/src/builders/create-builder.js +0 -84
  15. package/dist/src/builders/create-builder.js.map +0 -1
  16. package/dist/src/builders/delete-builder.d.ts +0 -18
  17. package/dist/src/builders/delete-builder.d.ts.map +0 -1
  18. package/dist/src/builders/delete-builder.js +0 -75
  19. package/dist/src/builders/delete-builder.js.map +0 -1
  20. package/dist/src/builders/get-builder.d.ts +0 -18
  21. package/dist/src/builders/get-builder.d.ts.map +0 -1
  22. package/dist/src/builders/get-builder.js +0 -76
  23. package/dist/src/builders/get-builder.js.map +0 -1
  24. package/dist/src/builders/index.d.ts +0 -8
  25. package/dist/src/builders/index.d.ts.map +0 -1
  26. package/dist/src/builders/index.js +0 -8
  27. package/dist/src/builders/index.js.map +0 -1
  28. package/dist/src/builders/query-builder.d.ts +0 -29
  29. package/dist/src/builders/query-builder.d.ts.map +0 -1
  30. package/dist/src/builders/query-builder.js +0 -171
  31. package/dist/src/builders/query-builder.js.map +0 -1
  32. package/dist/src/builders/scan-builder.d.ts +0 -21
  33. package/dist/src/builders/scan-builder.d.ts.map +0 -1
  34. package/dist/src/builders/scan-builder.js +0 -76
  35. package/dist/src/builders/scan-builder.js.map +0 -1
  36. package/dist/src/builders/update-builder.d.ts +0 -37
  37. package/dist/src/builders/update-builder.d.ts.map +0 -1
  38. package/dist/src/builders/update-builder.js +0 -301
  39. package/dist/src/builders/update-builder.js.map +0 -1
  40. package/dist/src/index.d.ts +0 -5
  41. package/dist/src/index.d.ts.map +0 -1
  42. package/dist/src/index.js +0 -5
  43. package/dist/src/index.js.map +0 -1
  44. package/dist/src/operator.d.ts +0 -3
  45. package/dist/src/operator.d.ts.map +0 -1
  46. package/dist/src/operator.js +0 -28
  47. package/dist/src/operator.js.map +0 -1
  48. package/dist/src/types/index.d.ts +0 -2
  49. package/dist/src/types/index.d.ts.map +0 -1
  50. package/dist/src/types/index.js +0 -2
  51. package/dist/src/types/index.js.map +0 -1
  52. package/dist/src/types/paginated-result.d.ts +0 -6
  53. package/dist/src/types/paginated-result.d.ts.map +0 -1
  54. package/dist/src/types/paginated-result.js +0 -2
  55. package/dist/src/types/paginated-result.js.map +0 -1
  56. package/dist/tsconfig.tsbuildinfo +0 -1
@@ -1,84 +0,0 @@
1
- /* eslint-disable no-unused-vars */
2
- import {} from "@aws-sdk/client-dynamodb";
3
- import {} from "../betterddb.js";
4
- import { PutCommand, TransactWriteCommand } from "@aws-sdk/lib-dynamodb";
5
- export class CreateBuilder {
6
- parent;
7
- item;
8
- extraTransactItems = [];
9
- constructor(parent, item) {
10
- this.parent = parent;
11
- this.item = item;
12
- }
13
- async execute() {
14
- const validated = this.parent.getSchema().parse(this.item);
15
- if (this.extraTransactItems.length > 0) {
16
- // Build our update transaction item.
17
- const myTransactItem = this.toTransactPut();
18
- // Combine with extra transaction items.
19
- const allItems = [...this.extraTransactItems, myTransactItem];
20
- await this.parent.getClient().send(new TransactWriteCommand({
21
- TransactItems: allItems,
22
- }));
23
- // After transaction, retrieve the updated item.
24
- const result = await this.parent.get(this.item).execute();
25
- if (result === null) {
26
- throw new Error("Item not found after transaction create");
27
- }
28
- return result;
29
- }
30
- else {
31
- let finalItem = {
32
- ...this.item,
33
- entityType: this.parent.getEntityType(),
34
- };
35
- if (this.parent.getTimestamps()) {
36
- const now = new Date().toISOString();
37
- finalItem = { ...finalItem, createdAt: now, updatedAt: now };
38
- }
39
- // Compute and merge primary key.
40
- const computedKeys = this.parent.buildKey(validated);
41
- finalItem = { ...finalItem, ...computedKeys };
42
- // Compute and merge index attributes.
43
- const indexAttributes = this.parent.buildIndexes(validated);
44
- finalItem = { ...finalItem, ...indexAttributes };
45
- await this.parent.getClient().send(new PutCommand({
46
- TableName: this.parent.getTableName(),
47
- Item: finalItem,
48
- }));
49
- return validated;
50
- }
51
- }
52
- transactWrite(ops) {
53
- if (Array.isArray(ops)) {
54
- this.extraTransactItems.push(...ops);
55
- }
56
- else {
57
- this.extraTransactItems.push(ops);
58
- }
59
- return this;
60
- }
61
- toTransactPut() {
62
- const validated = this.parent.getSchema().parse(this.item);
63
- let finalItem = {
64
- ...this.item,
65
- entityType: this.parent.getEntityType(),
66
- };
67
- if (this.parent.getTimestamps()) {
68
- const now = new Date().toISOString();
69
- finalItem = { ...finalItem, createdAt: now, updatedAt: now };
70
- }
71
- // Compute and merge primary key.
72
- const computedKeys = this.parent.buildKey(validated);
73
- finalItem = { ...finalItem, ...computedKeys };
74
- // Compute and merge index attributes.
75
- const indexAttributes = this.parent.buildIndexes(validated);
76
- finalItem = { ...finalItem, ...indexAttributes };
77
- const putItem = {
78
- TableName: this.parent.getTableName(),
79
- Item: finalItem,
80
- };
81
- return { Put: putItem };
82
- }
83
- }
84
- //# sourceMappingURL=create-builder.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"create-builder.js","sourceRoot":"","sources":["../../../src/builders/create-builder.ts"],"names":[],"mappings":"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"}
@@ -1,18 +0,0 @@
1
- import { type BetterDDB } from "../betterddb.js";
2
- import { type TransactWriteItem } from "@aws-sdk/client-dynamodb";
3
- import { type NativeAttributeValue } from "@aws-sdk/lib-dynamodb";
4
- export declare class DeleteBuilder<T> {
5
- private parent;
6
- private key;
7
- private condition?;
8
- private extraTransactItems;
9
- constructor(parent: BetterDDB<T>, key: Partial<T>);
10
- /**
11
- * Specify a condition expression for the delete operation.
12
- */
13
- withCondition(expression: string, attributeValues: Record<string, NativeAttributeValue>): this;
14
- execute(): Promise<void>;
15
- transactWrite(ops: TransactWriteItem[] | TransactWriteItem): this;
16
- toTransactDelete(): TransactWriteItem;
17
- }
18
- //# sourceMappingURL=delete-builder.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"delete-builder.d.ts","sourceRoot":"","sources":["../../../src/builders/delete-builder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EACL,KAAK,iBAAiB,EAEvB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,KAAK,oBAAoB,EAG1B,MAAM,uBAAuB,CAAC;AAC/B,qBAAa,aAAa,CAAC,CAAC;IAOxB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,GAAG;IAPb,OAAO,CAAC,SAAS,CAAC,CAGhB;IACF,OAAO,CAAC,kBAAkB,CAA2B;gBAE3C,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,EACpB,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC;IAGzB;;OAEG;IACI,aAAa,CAClB,UAAU,EAAE,MAAM,EAClB,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,GACpD,IAAI;IAUM,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IA6B9B,aAAa,CAAC,GAAG,EAAE,iBAAiB,EAAE,GAAG,iBAAiB,GAAG,IAAI;IASjE,gBAAgB,IAAI,iBAAiB;CAW7C"}
@@ -1,75 +0,0 @@
1
- /* eslint-disable no-unused-vars */
2
- import {} from "../betterddb.js";
3
- import {} from "@aws-sdk/client-dynamodb";
4
- import { TransactWriteCommand, DeleteCommand, } from "@aws-sdk/lib-dynamodb";
5
- export class DeleteBuilder {
6
- parent;
7
- key;
8
- condition;
9
- extraTransactItems = [];
10
- constructor(parent, key) {
11
- this.parent = parent;
12
- this.key = key;
13
- }
14
- /**
15
- * Specify a condition expression for the delete operation.
16
- */
17
- withCondition(expression, attributeValues) {
18
- if (this.condition) {
19
- this.condition.expression += ` AND ${expression}`;
20
- Object.assign(this.condition.attributeValues, attributeValues);
21
- }
22
- else {
23
- this.condition = { expression, attributeValues };
24
- }
25
- return this;
26
- }
27
- async execute() {
28
- if (this.extraTransactItems.length > 0) {
29
- // Build our update transaction item.
30
- const myTransactItem = this.toTransactDelete();
31
- // Combine with extra transaction items.
32
- const allItems = [...this.extraTransactItems, myTransactItem];
33
- await this.parent.getClient().send(new TransactWriteCommand({
34
- TransactItems: allItems,
35
- }));
36
- // After transaction, retrieve the updated item.
37
- const result = await this.parent.get(this.key).execute();
38
- if (result === null) {
39
- throw new Error("Item not found after transaction delete");
40
- }
41
- }
42
- else {
43
- const params = {
44
- TableName: this.parent.getTableName(),
45
- Key: this.parent.buildKey(this.key),
46
- };
47
- if (this.condition) {
48
- params.ConditionExpression = this.condition.expression;
49
- params.ExpressionAttributeValues = this.condition.attributeValues;
50
- }
51
- await this.parent.getClient().send(new DeleteCommand(params));
52
- }
53
- }
54
- transactWrite(ops) {
55
- if (Array.isArray(ops)) {
56
- this.extraTransactItems.push(...ops);
57
- }
58
- else {
59
- this.extraTransactItems.push(ops);
60
- }
61
- return this;
62
- }
63
- toTransactDelete() {
64
- const deleteItem = {
65
- TableName: this.parent.getTableName(),
66
- Key: this.parent.buildKey(this.key),
67
- };
68
- if (this.condition) {
69
- deleteItem.ConditionExpression = this.condition.expression;
70
- deleteItem.ExpressionAttributeValues = this.condition.attributeValues;
71
- }
72
- return { Delete: deleteItem };
73
- }
74
- }
75
- //# sourceMappingURL=delete-builder.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"delete-builder.js","sourceRoot":"","sources":["../../../src/builders/delete-builder.ts"],"names":[],"mappings":"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"}
@@ -1,18 +0,0 @@
1
- import { type BetterDDB } from "../betterddb.js";
2
- import { type TransactGetItem } from "@aws-sdk/client-dynamodb";
3
- export declare class GetBuilder<T> {
4
- private parent;
5
- private key;
6
- private projectionExpression?;
7
- private expressionAttributeNames;
8
- private extraTransactItems;
9
- constructor(parent: BetterDDB<T>, key: Partial<T>);
10
- /**
11
- * Specify a projection by providing an array of attribute names.
12
- */
13
- withProjection(attributes: (keyof T)[]): this;
14
- execute(): Promise<T | null>;
15
- transactGet(ops: TransactGetItem[] | TransactGetItem): this;
16
- toTransactGet(): TransactGetItem;
17
- }
18
- //# sourceMappingURL=get-builder.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"get-builder.d.ts","sourceRoot":"","sources":["../../../src/builders/get-builder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD,OAAO,EAEL,KAAK,eAAe,EACrB,MAAM,0BAA0B,CAAC;AAClC,qBAAa,UAAU,CAAC,CAAC;IAKrB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,GAAG;IALb,OAAO,CAAC,oBAAoB,CAAC,CAAS;IACtC,OAAO,CAAC,wBAAwB,CAA8B;IAC9D,OAAO,CAAC,kBAAkB,CAAyB;gBAEzC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,EACpB,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC;IAGzB;;OAEG;IACI,cAAc,CAAC,UAAU,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,IAAI;IAUvC,OAAO,IAAI,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IA6BlC,WAAW,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,eAAe,GAAG,IAAI;IAS3D,aAAa,IAAI,eAAe;CAWxC"}
@@ -1,76 +0,0 @@
1
- /* eslint-disable no-unused-vars */
2
- import {} from "../betterddb.js";
3
- import { TransactGetCommand, GetCommand } from "@aws-sdk/lib-dynamodb";
4
- import {} from "@aws-sdk/client-dynamodb";
5
- export class GetBuilder {
6
- parent;
7
- key;
8
- projectionExpression;
9
- expressionAttributeNames = {};
10
- extraTransactItems = [];
11
- constructor(parent, key) {
12
- this.parent = parent;
13
- this.key = key;
14
- }
15
- /**
16
- * Specify a projection by providing an array of attribute names.
17
- */
18
- withProjection(attributes) {
19
- this.projectionExpression = attributes
20
- .map((attr) => `#${String(attr)}`)
21
- .join(", ");
22
- for (const attr of attributes) {
23
- this.expressionAttributeNames[`#${String(attr)}`] = String(attr);
24
- }
25
- return this;
26
- }
27
- async execute() {
28
- if (this.extraTransactItems.length > 0) {
29
- // Build our update transaction item.
30
- const myTransactItem = this.toTransactGet();
31
- // Combine with extra transaction items.
32
- const allItems = [...this.extraTransactItems, myTransactItem];
33
- await this.parent.getClient().send(new TransactGetCommand({
34
- TransactItems: allItems,
35
- }));
36
- // After transaction, retrieve the updated item.
37
- const result = await this.parent.get(this.key).execute();
38
- return result;
39
- }
40
- else {
41
- const params = {
42
- TableName: this.parent.getTableName(),
43
- Key: this.parent.buildKey(this.key),
44
- };
45
- if (this.projectionExpression) {
46
- params.ProjectionExpression = this.projectionExpression;
47
- params.ExpressionAttributeNames = this.expressionAttributeNames;
48
- }
49
- const result = await this.parent.getClient().send(new GetCommand(params));
50
- if (!result.Item)
51
- return null;
52
- return this.parent.getSchema().parse(result.Item);
53
- }
54
- }
55
- transactGet(ops) {
56
- if (Array.isArray(ops)) {
57
- this.extraTransactItems.push(...ops);
58
- }
59
- else {
60
- this.extraTransactItems.push(ops);
61
- }
62
- return this;
63
- }
64
- toTransactGet() {
65
- const getItem = {
66
- TableName: this.parent.getTableName(),
67
- Key: this.parent.buildKey(this.key),
68
- };
69
- if (this.projectionExpression) {
70
- getItem.ProjectionExpression = this.projectionExpression;
71
- getItem.ExpressionAttributeNames = this.expressionAttributeNames;
72
- }
73
- return { Get: getItem };
74
- }
75
- }
76
- //# sourceMappingURL=get-builder.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"get-builder.js","sourceRoot":"","sources":["../../../src/builders/get-builder.ts"],"names":[],"mappings":"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"}
@@ -1,8 +0,0 @@
1
- export * from "./batch-get-builder.js";
2
- export * from "./create-builder.js";
3
- export * from "./delete-builder.js";
4
- export * from "./get-builder.js";
5
- export * from "./query-builder.js";
6
- export * from "./scan-builder.js";
7
- export * from "./update-builder.js";
8
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/builders/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC"}
@@ -1,8 +0,0 @@
1
- export * from "./batch-get-builder.js";
2
- export * from "./create-builder.js";
3
- export * from "./delete-builder.js";
4
- export * from "./get-builder.js";
5
- export * from "./query-builder.js";
6
- export * from "./scan-builder.js";
7
- export * from "./update-builder.js";
8
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/builders/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC"}
@@ -1,29 +0,0 @@
1
- import { type NativeAttributeValue } from "@aws-sdk/lib-dynamodb";
2
- import { type BetterDDB } from "../betterddb.js";
3
- import { type Operator } from "../operator.js";
4
- import { type PaginatedResult } from "../types/paginated-result.js";
5
- export declare class QueryBuilder<T> {
6
- private parent;
7
- private key;
8
- private keyConditions;
9
- private filterConditions;
10
- private expressionAttributeNames;
11
- private expressionAttributeValues;
12
- private index?;
13
- private limit?;
14
- private lastKey?;
15
- private ascending;
16
- constructor(parent: BetterDDB<T>, key: Partial<T>);
17
- usingIndex(indexName: string): this;
18
- sortAscending(): this;
19
- sortDescending(): this;
20
- where(operator: Operator, values: Partial<T> | [Partial<T>, Partial<T>]): this;
21
- filter(attribute: keyof T, operator: Operator, values: unknown): this;
22
- limitResults(limit: number): this;
23
- startFrom(lastKey: Record<string, NativeAttributeValue>): this;
24
- /**
25
- * Executes the query and returns a Promise that resolves with an array of items.
26
- */
27
- execute(): Promise<PaginatedResult<T>>;
28
- }
29
- //# sourceMappingURL=query-builder.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"query-builder.d.ts","sourceRoot":"","sources":["../../../src/builders/query-builder.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,oBAAoB,EAG1B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,KAAK,SAAS,EAAkB,MAAM,iBAAiB,CAAC;AACjE,OAAO,EAAyB,KAAK,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACtE,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAEpE,qBAAa,YAAY,CAAC,CAAC;IAWvB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,GAAG;IAXb,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,gBAAgB,CAAgB;IACxC,OAAO,CAAC,wBAAwB,CAA8B;IAC9D,OAAO,CAAC,yBAAyB,CAAuC;IACxE,OAAO,CAAC,KAAK,CAAC,CAAe;IAC7B,OAAO,CAAC,KAAK,CAAC,CAAS;IACvB,OAAO,CAAC,OAAO,CAAC,CAAuC;IACvD,OAAO,CAAC,SAAS,CAAQ;gBAGf,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,EACpB,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC;IAclB,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAyBnC,aAAa,IAAI,IAAI;IAKrB,cAAc,IAAI,IAAI;IAKtB,KAAK,CACV,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,GAC5C,IAAI;IA2EA,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,GAAG,IAAI;IAgDrE,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAKjC,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,GAAG,IAAI;IAKrE;;OAEG;IACU,OAAO,IAAI,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;CAgCpD"}
@@ -1,171 +0,0 @@
1
- /* eslint-disable no-unused-vars */
2
- import { QueryCommand, } from "@aws-sdk/lib-dynamodb";
3
- import {} from "../betterddb.js";
4
- import { getOperatorExpression } from "../operator.js";
5
- import {} from "../types/paginated-result.js";
6
- export class QueryBuilder {
7
- parent;
8
- key;
9
- keyConditions = [];
10
- filterConditions = [];
11
- expressionAttributeNames = {};
12
- expressionAttributeValues;
13
- index;
14
- limit;
15
- lastKey;
16
- ascending = true;
17
- constructor(parent, key) {
18
- this.parent = parent;
19
- this.key = key;
20
- const keys = this.parent.getKeys();
21
- const pkName = keys.primary.name;
22
- const builtKey = this.parent.buildKey(this.key);
23
- this.expressionAttributeNames = {
24
- "#pk": pkName,
25
- };
26
- this.expressionAttributeValues = {
27
- ":pk_value": builtKey[pkName],
28
- };
29
- }
30
- usingIndex(indexName) {
31
- if (!this.parent.getKeys().gsis) {
32
- throw new Error("No global secondary indexes defined for this table");
33
- }
34
- if (!(indexName in this.parent.getKeys().gsis)) {
35
- throw new Error("index does not exist");
36
- }
37
- this.index = this.parent.getKeys().gsis[indexName];
38
- if (!this.index) {
39
- throw new Error("Failed to get index configuration");
40
- }
41
- const pkName = this.index.primary.name;
42
- const builtKey = this.parent.buildIndexes(this.key);
43
- this.expressionAttributeNames["#pk"] = pkName;
44
- this.expressionAttributeValues[":pk_value"] = builtKey[pkName];
45
- return this;
46
- }
47
- sortAscending() {
48
- this.ascending = true;
49
- return this;
50
- }
51
- sortDescending() {
52
- this.ascending = false;
53
- return this;
54
- }
55
- where(operator, values) {
56
- const keys = this.parent.getKeys();
57
- // Determine the sort key name from either the index or the primary keys.
58
- const sortKeyName = this.index ? this.index.sort?.name : keys.sort?.name;
59
- if (!sortKeyName) {
60
- throw new Error("Sort key is not defined for this table/index.");
61
- }
62
- const nameKey = "#sk";
63
- this.expressionAttributeNames[nameKey] = sortKeyName;
64
- // Enforce that a complex sort key requires an object input.
65
- if (typeof values !== "object" || values === null) {
66
- throw new Error(`For complex sort keys, please provide an object with all necessary properties.`);
67
- }
68
- if (operator === "between") {
69
- if (!Array.isArray(values) || values.length !== 2) {
70
- throw new Error(`For 'between' operator, values must be a tuple of two objects`);
71
- }
72
- const valueKeyStart = ":sk_start";
73
- const valueKeyEnd = ":sk_end";
74
- // Use the key definition's build function to build the key from the full object.
75
- this.expressionAttributeValues[valueKeyStart] = this.index
76
- ? this.parent.buildIndexes(values[0])[sortKeyName]
77
- : this.parent.buildKey(values[0])[sortKeyName];
78
- this.expressionAttributeValues[valueKeyEnd] = this.index
79
- ? this.parent.buildIndexes(values[1])[sortKeyName]
80
- : this.parent.buildKey(values[1])[sortKeyName];
81
- this.keyConditions.push(`${nameKey} BETWEEN ${valueKeyStart} AND ${valueKeyEnd}`);
82
- }
83
- else if (operator === "begins_with") {
84
- const valueKey = ":sk_value";
85
- this.expressionAttributeValues[valueKey] = this.index
86
- ? this.parent.buildIndexes(values)[sortKeyName]
87
- : this.parent.buildKey(values)[sortKeyName];
88
- this.keyConditions.push(`begins_with(${nameKey}, ${valueKey})`);
89
- }
90
- else {
91
- // For eq, lt, lte, gt, gte:
92
- const valueKey = ":sk_value";
93
- this.expressionAttributeValues[valueKey] = this.index
94
- ? this.parent.buildIndexes(values)[sortKeyName]
95
- : this.parent.buildKey(values)[sortKeyName];
96
- const condition = getOperatorExpression(operator, nameKey, valueKey);
97
- this.keyConditions.push(condition);
98
- }
99
- return this;
100
- }
101
- filter(attribute, operator, values) {
102
- const attrStr = String(attribute);
103
- const randomString = Math.random().toString(36).substring(2, 15);
104
- const placeholderName = `#attr_${attrStr}_${randomString}`;
105
- this.expressionAttributeNames[placeholderName] = attrStr;
106
- if (operator === "between") {
107
- if (!Array.isArray(values) || values.length !== 2) {
108
- throw new Error("For 'between' operator, values must be a tuple of two items");
109
- }
110
- const placeholderValueStart = `:val_start_${attrStr}_${randomString}`;
111
- const placeholderValueEnd = `:val_end_${attrStr}_${randomString}`;
112
- this.expressionAttributeValues[placeholderValueStart] =
113
- values[0];
114
- this.expressionAttributeValues[placeholderValueEnd] = values[1];
115
- this.filterConditions.push(`${placeholderName} BETWEEN ${placeholderValueStart} AND ${placeholderValueEnd}`);
116
- }
117
- else if (operator === "begins_with" || operator === "contains") {
118
- const placeholderValue = `:val_${attrStr}_${randomString}`;
119
- this.expressionAttributeValues[placeholderValue] = values;
120
- this.filterConditions.push(`${operator}(${placeholderName}, ${placeholderValue})`);
121
- }
122
- else {
123
- const placeholderValue = `:val_${attrStr}_${randomString}`;
124
- this.expressionAttributeValues[placeholderValue] = values;
125
- const condition = getOperatorExpression(operator, placeholderName, placeholderValue);
126
- this.filterConditions.push(condition);
127
- }
128
- return this;
129
- }
130
- limitResults(limit) {
131
- this.limit = limit;
132
- return this;
133
- }
134
- startFrom(lastKey) {
135
- this.lastKey = lastKey;
136
- return this;
137
- }
138
- /**
139
- * Executes the query and returns a Promise that resolves with an array of items.
140
- */
141
- async execute() {
142
- this.keyConditions.unshift(`#pk = :pk_value`);
143
- const keyConditionExpression = this.keyConditions.join(" AND ");
144
- const params = {
145
- TableName: this.parent.getTableName(),
146
- KeyConditionExpression: keyConditionExpression,
147
- ExpressionAttributeNames: this.expressionAttributeNames,
148
- ExpressionAttributeValues: this.expressionAttributeValues,
149
- ScanIndexForward: this.ascending,
150
- Limit: this.limit,
151
- ExclusiveStartKey: this.lastKey,
152
- IndexName: this.index?.name ?? undefined,
153
- };
154
- if (this.parent.getEntityType()) {
155
- this.filterConditions.push(`#entity = :entity_value`);
156
- this.expressionAttributeNames["#entity"] = "entityType";
157
- this.expressionAttributeValues[":entity_value"] =
158
- this.parent.getEntityType();
159
- }
160
- params.FilterExpression =
161
- this.filterConditions.length > 0
162
- ? this.filterConditions.join(" AND ")
163
- : undefined;
164
- const result = await this.parent.getClient().send(new QueryCommand(params));
165
- return {
166
- items: this.parent.getSchema().array().parse(result.Items),
167
- lastKey: result.LastEvaluatedKey ?? undefined,
168
- };
169
- }
170
- }
171
- //# sourceMappingURL=query-builder.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"query-builder.js","sourceRoot":"","sources":["../../../src/builders/query-builder.ts"],"names":[],"mappings":"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"}
@@ -1,21 +0,0 @@
1
- import { type NativeAttributeValue } from "@aws-sdk/lib-dynamodb";
2
- import { type BetterDDB } from "../betterddb.js";
3
- import { type Operator } from "../operator.js";
4
- import { type PaginatedResult } from "../types/paginated-result.js";
5
- export declare class ScanBuilder<T> {
6
- private parent;
7
- private filters;
8
- private expressionAttributeNames;
9
- private expressionAttributeValues;
10
- private limit?;
11
- private lastKey?;
12
- constructor(parent: BetterDDB<T>);
13
- where(attribute: keyof T, operator: Operator, values: unknown): this;
14
- limitResults(limit: number): this;
15
- startFrom(lastKey: Record<string, NativeAttributeValue>): this;
16
- /**
17
- * Executes the scan and returns a Promise that resolves with an array of items.
18
- */
19
- execute(): Promise<PaginatedResult<T>>;
20
- }
21
- //# sourceMappingURL=scan-builder.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"scan-builder.d.ts","sourceRoot":"","sources":["../../../src/builders/scan-builder.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,KAAK,oBAAoB,EAC1B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAyB,KAAK,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACtE,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAEpE,qBAAa,WAAW,CAAC,CAAC;IAOZ,OAAO,CAAC,MAAM;IAN1B,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,wBAAwB,CAA8B;IAC9D,OAAO,CAAC,yBAAyB,CAA4C;IAC7E,OAAO,CAAC,KAAK,CAAC,CAAS;IACvB,OAAO,CAAC,OAAO,CAAC,CAAuC;gBAEnC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;IAEjC,KAAK,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,GAAG,IAAI;IA0CpE,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAKjC,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,GAAG,IAAI;IAKrE;;OAEG;IACU,OAAO,IAAI,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;CAwBpD"}