@infra-blocks/aws-dynamodb 0.19.0 → 0.20.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. package/lib/cjs/commands/attributes/values.d.ts +13 -5
  2. package/lib/cjs/commands/attributes/values.js +13 -5
  3. package/lib/cjs/commands/attributes/values.js.map +1 -1
  4. package/lib/cjs/commands/expressions/condition.d.ts +1 -1
  5. package/lib/cjs/commands/expressions/condition.js +2 -2
  6. package/lib/cjs/commands/expressions/condition.js.map +1 -1
  7. package/lib/cjs/commands/expressions/index.d.ts +1 -1
  8. package/lib/cjs/commands/expressions/index.js +1 -1
  9. package/lib/cjs/commands/expressions/index.js.map +1 -1
  10. package/lib/cjs/commands/expressions/operands/index.d.ts +3 -0
  11. package/lib/cjs/commands/expressions/operands/index.js +20 -0
  12. package/lib/cjs/commands/expressions/operands/index.js.map +1 -0
  13. package/lib/cjs/commands/expressions/operands/name.d.ts +27 -0
  14. package/lib/cjs/commands/expressions/operands/name.js +33 -0
  15. package/lib/cjs/commands/expressions/operands/name.js.map +1 -0
  16. package/lib/cjs/commands/expressions/operands/type.d.ts +12 -0
  17. package/lib/cjs/commands/expressions/operands/type.js +3 -0
  18. package/lib/cjs/commands/expressions/operands/type.js.map +1 -0
  19. package/lib/cjs/commands/expressions/operands/value.d.ts +27 -0
  20. package/lib/cjs/commands/expressions/operands/value.js +33 -0
  21. package/lib/cjs/commands/expressions/operands/value.js.map +1 -0
  22. package/lib/cjs/commands/expressions/update.d.ts +35 -13
  23. package/lib/cjs/commands/expressions/update.js +54 -16
  24. package/lib/cjs/commands/expressions/update.js.map +1 -1
  25. package/lib/cjs/types.d.ts +11 -1
  26. package/lib/esm/commands/attributes/values.d.ts +13 -5
  27. package/lib/esm/commands/attributes/values.js +13 -5
  28. package/lib/esm/commands/attributes/values.js.map +1 -1
  29. package/lib/esm/commands/expressions/condition.d.ts +1 -1
  30. package/lib/esm/commands/expressions/condition.js +1 -1
  31. package/lib/esm/commands/expressions/condition.js.map +1 -1
  32. package/lib/esm/commands/expressions/index.d.ts +1 -1
  33. package/lib/esm/commands/expressions/index.js +1 -1
  34. package/lib/esm/commands/expressions/index.js.map +1 -1
  35. package/lib/esm/commands/expressions/operands/index.d.ts +3 -0
  36. package/lib/esm/commands/expressions/operands/index.js +4 -0
  37. package/lib/esm/commands/expressions/operands/index.js.map +1 -0
  38. package/lib/esm/commands/expressions/operands/name.d.ts +27 -0
  39. package/lib/esm/commands/expressions/operands/name.js +28 -0
  40. package/lib/esm/commands/expressions/operands/name.js.map +1 -0
  41. package/lib/esm/commands/expressions/operands/type.d.ts +12 -0
  42. package/lib/esm/commands/expressions/operands/type.js +2 -0
  43. package/lib/esm/commands/expressions/operands/type.js.map +1 -0
  44. package/lib/esm/commands/expressions/operands/value.d.ts +27 -0
  45. package/lib/esm/commands/expressions/operands/value.js +28 -0
  46. package/lib/esm/commands/expressions/operands/value.js.map +1 -0
  47. package/lib/esm/commands/expressions/update.d.ts +35 -13
  48. package/lib/esm/commands/expressions/update.js +48 -12
  49. package/lib/esm/commands/expressions/update.js.map +1 -1
  50. package/lib/esm/types.d.ts +11 -1
  51. package/package.json +1 -1
  52. package/lib/cjs/commands/expressions/operands.d.ts +0 -28
  53. package/lib/cjs/commands/expressions/operands.js +0 -34
  54. package/lib/cjs/commands/expressions/operands.js.map +0 -1
  55. package/lib/esm/commands/expressions/operands.d.ts +0 -28
  56. package/lib/esm/commands/expressions/operands.js +0 -27
  57. package/lib/esm/commands/expressions/operands.js.map +0 -1
@@ -3,15 +3,23 @@ export type ValueReference = `:${string}`;
3
3
  /**
4
4
  * Represents a set of attribute values used in an expression.
5
5
  *
6
- * This class provides an automated way to generate value reference variables
7
- * so that every value in an expression can be treated the same: systematically replaced
8
- * with an automatically generated variable.
6
+ * This class provides an automated way to generate value reference variables,
7
+ * or substitutions, so that every value in an expression can be treated
8
+ * the same: systematically replaced with an automatically generated variable.
9
9
  *
10
- * The class keeps track of the references generated for each value, such that when
11
- * the user requests a reference for a known value, that reference is returned.
10
+ * The class keeps track of the substitutions generated for each value, such that when
11
+ * the user requests a substitute for a known value, that previous one is returned.
12
+ *
13
+ * Values are compared using the SameValueZero algorithm(it uses a Map internally).
14
+ * This means that:
15
+ * ```ts
16
+ * assert(values.substitute(new Set([1,2,3])) !== values.substitute(new Set([1,2,3])));
17
+ * ```
12
18
  *
13
19
  * When the user requests a reference for an unknown value, then one is generated and
14
20
  * stored for future use.
21
+ *
22
+ * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Equality_comparisons_and_sameness#same-value-zero_equality
15
23
  */
16
24
  export declare class AttributeValues {
17
25
  private readonly values;
@@ -1,15 +1,23 @@
1
1
  /**
2
2
  * Represents a set of attribute values used in an expression.
3
3
  *
4
- * This class provides an automated way to generate value reference variables
5
- * so that every value in an expression can be treated the same: systematically replaced
6
- * with an automatically generated variable.
4
+ * This class provides an automated way to generate value reference variables,
5
+ * or substitutions, so that every value in an expression can be treated
6
+ * the same: systematically replaced with an automatically generated variable.
7
7
  *
8
- * The class keeps track of the references generated for each value, such that when
9
- * the user requests a reference for a known value, that reference is returned.
8
+ * The class keeps track of the substitutions generated for each value, such that when
9
+ * the user requests a substitute for a known value, that previous one is returned.
10
+ *
11
+ * Values are compared using the SameValueZero algorithm(it uses a Map internally).
12
+ * This means that:
13
+ * ```ts
14
+ * assert(values.substitute(new Set([1,2,3])) !== values.substitute(new Set([1,2,3])));
15
+ * ```
10
16
  *
11
17
  * When the user requests a reference for an unknown value, then one is generated and
12
18
  * stored for future use.
19
+ *
20
+ * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Equality_comparisons_and_sameness#same-value-zero_equality
13
21
  */
14
22
  export class AttributeValues {
15
23
  values;
@@ -1 +1 @@
1
- {"version":3,"file":"values.js","sourceRoot":"","sources":["../../../../src/commands/attributes/values.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;GAYG;AACH,MAAM,OAAO,eAAe;IACT,MAAM,CAAsC;IAE7D;QACE,IAAI,CAAC,MAAM,GAAG,IAAI,GAAG,EAAkC,CAAC;IAC1D,CAAC;IAED;;;;;;;;;;;OAWG;IACH,UAAU,CAAC,KAAqB;QAC9B,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,4BAA4B,CAAC,KAAK,CAAC,CAAC;IAC5E,CAAC;IAED;;;;;OAKG;IACH,gBAAgB;QACd,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YAC3B,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,MAAM,MAAM,GAA2C,EAAE,CAAC;QAC1D,KAAK,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC;YACvD,MAAM,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC;QAC5B,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,4BAA4B,CAAC,KAAqB;QACxD,MAAM,SAAS,GAAG,SAAS,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,EAAoB,CAAC;QACpE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QAClC,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,CAAC,MAAM;QACX,OAAO,IAAI,eAAe,EAAE,CAAC;IAC/B,CAAC;CACF"}
1
+ {"version":3,"file":"values.js","sourceRoot":"","sources":["../../../../src/commands/attributes/values.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,OAAO,eAAe;IACT,MAAM,CAAsC;IAE7D;QACE,IAAI,CAAC,MAAM,GAAG,IAAI,GAAG,EAAkC,CAAC;IAC1D,CAAC;IAED;;;;;;;;;;;OAWG;IACH,UAAU,CAAC,KAAqB;QAC9B,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,4BAA4B,CAAC,KAAK,CAAC,CAAC;IAC5E,CAAC;IAED;;;;;OAKG;IACH,gBAAgB;QACd,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YAC3B,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,MAAM,MAAM,GAA2C,EAAE,CAAC;QAC1D,KAAK,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC;YACvD,MAAM,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC;QAC5B,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,4BAA4B,CAAC,KAAqB;QACxD,MAAM,SAAS,GAAG,SAAS,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,EAAoB,CAAC;QACpE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QAClC,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,CAAC,MAAM;QACX,OAAO,IAAI,eAAe,EAAE,CAAC;IAC/B,CAAC;CACF"}
@@ -2,7 +2,7 @@ import type { AttributeType } from "../../types.js";
2
2
  import type { AttributeNames } from "../attributes/names.js";
3
3
  import type { AttributeValues } from "../attributes/values.js";
4
4
  import type { IExpression } from "./expression.js";
5
- import { AttributeOperand, type IOperand, type Operand, type ValueOperand } from "./operands.js";
5
+ import { AttributeOperand, type IOperand, type Operand, type ValueOperand } from "./operands/index.js";
6
6
  export type ConditionOperand = Operand | SizeOperand;
7
7
  export type Stringifier = (params: {
8
8
  names: AttributeNames;
@@ -1,4 +1,4 @@
1
- import { AttributeOperand, } from "./operands.js";
1
+ import { AttributeOperand, } from "./operands/index.js";
2
2
  export class Condition {
3
3
  stringifier;
4
4
  constructor(params) {
@@ -1 +1 @@
1
- {"version":3,"file":"condition.js","sourceRoot":"","sources":["../../../../src/commands/expressions/condition.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"condition.js","sourceRoot":"","sources":["../../../../src/commands/expressions/condition.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
1
  export * from "./condition.js";
2
2
  export * from "./key-condition.js";
3
- export * from "./operands.js";
3
+ export * from "./operands/index.js";
4
4
  export * from "./update.js";
@@ -1,6 +1,6 @@
1
1
  export * from "./condition.js";
2
2
  export * from "./key-condition.js";
3
- export * from "./operands.js";
3
+ export * from "./operands/index.js";
4
4
  export * from "./update.js";
5
5
  /*
6
6
  TODO: In the expression interfaces, a slight QoL improvement would be to assume that
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/commands/expressions/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAE5B;;;;;GAKG"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/commands/expressions/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,aAAa,CAAC;AAE5B;;;;;GAKG"}
@@ -0,0 +1,3 @@
1
+ export * from "./name.js";
2
+ export * from "./type.js";
3
+ export * from "./value.js";
@@ -0,0 +1,4 @@
1
+ export * from "./name.js";
2
+ export * from "./type.js";
3
+ export * from "./value.js";
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/commands/expressions/operands/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC"}
@@ -0,0 +1,27 @@
1
+ import type { AttributePath } from "../../../types.js";
2
+ import type { AttributeNames } from "../../attributes/names.js";
3
+ import type { AttributeValues } from "../../attributes/values.js";
4
+ import type { IOperand } from "./type.js";
5
+ /**
6
+ * Represents an attribute by name operand in an expression.
7
+ *
8
+ * When this operand is stringified, it first registers the
9
+ * attribute name in the {@link AttributeNames} registry and substitutes
10
+ * it with the returned value.
11
+ */
12
+ export declare class AttributeOperand implements IOperand {
13
+ private readonly path;
14
+ constructor(path: AttributePath);
15
+ substitute(params: {
16
+ names: AttributeNames;
17
+ values: AttributeValues;
18
+ }): string;
19
+ }
20
+ /**
21
+ * Factory function to create an `AttributeOperand` with fewer characters.
22
+ *
23
+ * @param path - The path of the attribute this operand represents.
24
+ *
25
+ * @returns A new {@link AttributeOperand} instance for the provided path.
26
+ */
27
+ export declare function attribute(path: AttributePath): AttributeOperand;
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Represents an attribute by name operand in an expression.
3
+ *
4
+ * When this operand is stringified, it first registers the
5
+ * attribute name in the {@link AttributeNames} registry and substitutes
6
+ * it with the returned value.
7
+ */
8
+ export class AttributeOperand {
9
+ path;
10
+ constructor(path) {
11
+ this.path = path;
12
+ }
13
+ substitute(params) {
14
+ const { names } = params;
15
+ return names.substitute(this.path);
16
+ }
17
+ }
18
+ /**
19
+ * Factory function to create an `AttributeOperand` with fewer characters.
20
+ *
21
+ * @param path - The path of the attribute this operand represents.
22
+ *
23
+ * @returns A new {@link AttributeOperand} instance for the provided path.
24
+ */
25
+ export function attribute(path) {
26
+ return new AttributeOperand(path);
27
+ }
28
+ //# sourceMappingURL=name.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"name.js","sourceRoot":"","sources":["../../../../../src/commands/expressions/operands/name.ts"],"names":[],"mappings":"AAKA;;;;;;GAMG;AACH,MAAM,OAAO,gBAAgB;IACV,IAAI,CAAgB;IAErC,YAAY,IAAmB;QAC7B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED,UAAU,CAAC,MAGV;QACC,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC;QACzB,OAAO,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrC,CAAC;CACF;AAED;;;;;;GAMG;AACH,MAAM,UAAU,SAAS,CAAC,IAAmB;IAC3C,OAAO,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC;AACpC,CAAC"}
@@ -0,0 +1,12 @@
1
+ import type { AttributeValue } from "../../../types.js";
2
+ import type { AttributeNames } from "../../attributes/names.js";
3
+ import type { AttributeValues } from "../../attributes/values.js";
4
+ import type { AttributeOperand } from "./name.js";
5
+ import type { ValueOperand } from "./value.js";
6
+ export type Operand<T extends AttributeValue = AttributeValue> = AttributeOperand | ValueOperand<T>;
7
+ export interface IOperand {
8
+ substitute(params: {
9
+ names: AttributeNames;
10
+ values: AttributeValues;
11
+ }): string;
12
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"type.js","sourceRoot":"","sources":["../../../../../src/commands/expressions/operands/type.ts"],"names":[],"mappings":""}
@@ -0,0 +1,27 @@
1
+ import type { AttributeValue } from "../../../types.js";
2
+ import type { AttributeNames } from "../../attributes/names.js";
3
+ import type { AttributeValues } from "../../attributes/values.js";
4
+ import type { IOperand } from "./type.js";
5
+ /**
6
+ * Represents a value operand in an expression.
7
+ *
8
+ * When this operand is stringified, it first registers the
9
+ * value in the {@link AttributeValues} registry and substitutes
10
+ * it with the returned value.
11
+ */
12
+ export declare class ValueOperand<T extends AttributeValue = AttributeValue> implements IOperand {
13
+ private readonly value;
14
+ constructor(value: T);
15
+ substitute(params: {
16
+ names: AttributeNames;
17
+ values: AttributeValues;
18
+ }): string;
19
+ }
20
+ /**
21
+ * Factory function to create a `ValueOperand` with fewer characters.
22
+ *
23
+ * @param value - The value this operand represents.
24
+ *
25
+ * @returns A new {@link ValueOperand} instance for the provided value.
26
+ */
27
+ export declare function value<T extends AttributeValue = AttributeValue>(value: T): ValueOperand<T>;
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Represents a value operand in an expression.
3
+ *
4
+ * When this operand is stringified, it first registers the
5
+ * value in the {@link AttributeValues} registry and substitutes
6
+ * it with the returned value.
7
+ */
8
+ export class ValueOperand {
9
+ value;
10
+ constructor(value) {
11
+ this.value = value;
12
+ }
13
+ substitute(params) {
14
+ const { values } = params;
15
+ return values.substitute(this.value);
16
+ }
17
+ }
18
+ /**
19
+ * Factory function to create a `ValueOperand` with fewer characters.
20
+ *
21
+ * @param value - The value this operand represents.
22
+ *
23
+ * @returns A new {@link ValueOperand} instance for the provided value.
24
+ */
25
+ export function value(value) {
26
+ return new ValueOperand(value);
27
+ }
28
+ //# sourceMappingURL=value.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"value.js","sourceRoot":"","sources":["../../../../../src/commands/expressions/operands/value.ts"],"names":[],"mappings":"AAKA;;;;;;GAMG;AACH,MAAM,OAAO,YAAY;IAGN,KAAK,CAAI;IAE1B,YAAY,KAAQ;QAClB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,UAAU,CAAC,MAGV;QACC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;QAC1B,OAAO,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACvC,CAAC;CACF;AAED;;;;;;GAMG;AACH,MAAM,UAAU,KAAK,CACnB,KAAQ;IAER,OAAO,IAAI,YAAY,CAAC,KAAK,CAAC,CAAC;AACjC,CAAC"}
@@ -1,8 +1,15 @@
1
+ import type { AttributeValueNumber, AttributeValueSet } from "../../types.js";
1
2
  import type { AttributeNames } from "../attributes/names.js";
2
3
  import type { AttributeValues } from "../attributes/values.js";
3
4
  import type { IExpression } from "./expression.js";
4
- import type { AttributeOperand, IOperand, Operand } from "./operands.js";
5
+ import type { AttributeOperand } from "./operands/name.js";
6
+ import type { IOperand, Operand } from "./operands/type.js";
7
+ import type { ValueOperand } from "./operands/value.js";
5
8
  export type UpdateExpressionParams = ReadonlyArray<UpdateAction>;
9
+ /**
10
+ *
11
+ * @see https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.UpdateExpressions.html
12
+ */
6
13
  export declare class UpdateExpression implements IExpression {
7
14
  private readonly clauses;
8
15
  private constructor();
@@ -18,28 +25,28 @@ export interface IUpdateAction {
18
25
  values: AttributeValues;
19
26
  }): string;
20
27
  }
21
- export type UpdateAction = SetAction | RemoveAction;
22
- export type SetAction = Assignment | PlusAssignment | MinusAssignment;
28
+ export type UpdateAction = SetAction | RemoveAction | AddAction;
29
+ export type SetAction = SetTo | SetToPlus | SetToMinus;
23
30
  export type SetOperand = Operand | IfNotExistsOperand;
24
- declare class Assignment implements IUpdateAction {
31
+ declare class SetTo implements IUpdateAction {
25
32
  private readonly path;
26
33
  private readonly operand;
27
34
  constructor(params: {
28
35
  path: AttributeOperand;
29
36
  operand: SetOperand;
30
37
  });
31
- plus(operand: SetOperand): PlusAssignment;
32
- minus(operand: SetOperand): MinusAssignment;
38
+ plus(operand: SetOperand): SetToPlus;
39
+ minus(operand: SetOperand): SetToMinus;
33
40
  stringify(params: {
34
41
  names: AttributeNames;
35
42
  values: AttributeValues;
36
43
  }): string;
37
44
  }
38
- export declare class PlusAssignment implements IUpdateAction {
45
+ export declare class SetToPlus implements IUpdateAction {
39
46
  private readonly inner;
40
47
  private readonly operand;
41
48
  constructor(params: {
42
- inner: Assignment;
49
+ inner: SetTo;
43
50
  operand: SetOperand;
44
51
  });
45
52
  stringify(params: {
@@ -47,11 +54,11 @@ export declare class PlusAssignment implements IUpdateAction {
47
54
  values: AttributeValues;
48
55
  }): string;
49
56
  }
50
- export declare class MinusAssignment implements IUpdateAction {
57
+ export declare class SetToMinus implements IUpdateAction {
51
58
  private readonly inner;
52
59
  private readonly operand;
53
60
  constructor(params: {
54
- inner: Assignment;
61
+ inner: SetTo;
55
62
  operand: SetOperand;
56
63
  });
57
64
  stringify(params: {
@@ -59,12 +66,12 @@ export declare class MinusAssignment implements IUpdateAction {
59
66
  values: AttributeValues;
60
67
  }): string;
61
68
  }
62
- declare class AssignmentBuilder {
69
+ declare class SetToBuilder {
63
70
  private readonly path;
64
71
  constructor(path: AttributeOperand);
65
- to(operand: SetOperand): Assignment;
72
+ to(operand: SetOperand): SetTo;
66
73
  }
67
- export declare function assign(path: AttributeOperand): AssignmentBuilder;
74
+ export declare function set(path: AttributeOperand): SetToBuilder;
68
75
  export declare class RemoveAction implements IUpdateAction {
69
76
  private readonly path;
70
77
  private constructor();
@@ -82,6 +89,21 @@ export declare class RemoveAction implements IUpdateAction {
82
89
  * @returns A {@link RemoveAction} corresponding to the path provided.
83
90
  */
84
91
  export declare function remove(path: AttributeOperand): RemoveAction;
92
+ type NumberOrSet = AttributeValueNumber | AttributeValueSet;
93
+ export declare class AddAction implements IUpdateAction {
94
+ private readonly path;
95
+ private readonly value;
96
+ private constructor();
97
+ stringify(params: {
98
+ names: AttributeNames;
99
+ values: AttributeValues;
100
+ }): string;
101
+ static from(params: {
102
+ path: AttributeOperand;
103
+ value: ValueOperand<NumberOrSet>;
104
+ }): AddAction;
105
+ }
106
+ export declare function add(path: AttributeOperand, value: ValueOperand<NumberOrSet>): AddAction;
85
107
  export declare class IfNotExistsOperand implements IOperand {
86
108
  private readonly path;
87
109
  private readonly defaultValue;
@@ -1,3 +1,7 @@
1
+ /**
2
+ *
3
+ * @see https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.UpdateExpressions.html
4
+ */
1
5
  export class UpdateExpression {
2
6
  clauses;
3
7
  constructor(clauses) {
@@ -16,14 +20,19 @@ export class UpdateExpression {
16
20
  .map((action) => action.stringify({ names, values }))
17
21
  .join(",")}`);
18
22
  }
23
+ if (this.clauses.add != null) {
24
+ parts.push(`ADD ${this.clauses.add
25
+ .map((action) => action.stringify({ names, values }))
26
+ .join(",")}`);
27
+ }
19
28
  return parts.join("\n");
20
29
  }
21
30
  static from(params) {
22
31
  const clauses = {};
23
32
  for (const action of params) {
24
- if (action instanceof Assignment ||
25
- action instanceof PlusAssignment ||
26
- action instanceof MinusAssignment) {
33
+ if (action instanceof SetTo ||
34
+ action instanceof SetToPlus ||
35
+ action instanceof SetToMinus) {
27
36
  clauses.set ??= [];
28
37
  clauses.set.push(action);
29
38
  }
@@ -31,6 +40,10 @@ export class UpdateExpression {
31
40
  clauses.remove ??= [];
32
41
  clauses.remove.push(action);
33
42
  }
43
+ else if (action instanceof AddAction) {
44
+ clauses.add ??= [];
45
+ clauses.add.push(action);
46
+ }
34
47
  else {
35
48
  throw new Error("unknown action type in update expression");
36
49
  }
@@ -38,7 +51,7 @@ export class UpdateExpression {
38
51
  return new UpdateExpression(clauses);
39
52
  }
40
53
  }
41
- class Assignment {
54
+ class SetTo {
42
55
  path;
43
56
  operand;
44
57
  constructor(params) {
@@ -47,10 +60,10 @@ class Assignment {
47
60
  this.operand = operand;
48
61
  }
49
62
  plus(operand) {
50
- return new PlusAssignment({ inner: this, operand });
63
+ return new SetToPlus({ inner: this, operand });
51
64
  }
52
65
  minus(operand) {
53
- return new MinusAssignment({ inner: this, operand });
66
+ return new SetToMinus({ inner: this, operand });
54
67
  }
55
68
  stringify(params) {
56
69
  const { names, values } = params;
@@ -60,7 +73,7 @@ class Assignment {
60
73
  })}`;
61
74
  }
62
75
  }
63
- export class PlusAssignment {
76
+ export class SetToPlus {
64
77
  inner;
65
78
  operand;
66
79
  constructor(params) {
@@ -76,7 +89,7 @@ export class PlusAssignment {
76
89
  })}`;
77
90
  }
78
91
  }
79
- export class MinusAssignment {
92
+ export class SetToMinus {
80
93
  inner;
81
94
  operand;
82
95
  constructor(params) {
@@ -92,18 +105,20 @@ export class MinusAssignment {
92
105
  })}`;
93
106
  }
94
107
  }
95
- class AssignmentBuilder {
108
+ class SetToBuilder {
96
109
  path;
97
110
  constructor(path) {
98
111
  this.path = path;
99
112
  }
100
113
  to(operand) {
101
- return new Assignment({ path: this.path, operand });
114
+ return new SetTo({ path: this.path, operand });
102
115
  }
103
116
  }
104
117
  // TODO: increment/decrement utilities built on top of the assignments.
105
- export function assign(path) {
106
- return new AssignmentBuilder(path);
118
+ // TODO: review API for something more streamlined.... Imagine something like:
119
+ // set(attribute(<name>), value(<value>)) or set(attribute(<name>), value(<first>), "+", value(<second>))
120
+ export function set(path) {
121
+ return new SetToBuilder(path);
107
122
  }
108
123
  export class RemoveAction {
109
124
  path;
@@ -128,6 +143,27 @@ export class RemoveAction {
128
143
  export function remove(path) {
129
144
  return RemoveAction.from(path);
130
145
  }
146
+ // Note: the first operand *must* be an attribute name, and the second operand *must* be a value.
147
+ // This action only makes sense for sets and numbers.
148
+ export class AddAction {
149
+ path;
150
+ value;
151
+ constructor(params) {
152
+ const { path, value } = params;
153
+ this.path = path;
154
+ this.value = value;
155
+ }
156
+ stringify(params) {
157
+ const { names, values } = params;
158
+ return `${this.path.substitute({ names, values })} ${this.value.substitute({ names, values })}`;
159
+ }
160
+ static from(params) {
161
+ return new AddAction(params);
162
+ }
163
+ }
164
+ export function add(path, value) {
165
+ return AddAction.from({ path, value });
166
+ }
131
167
  export class IfNotExistsOperand {
132
168
  path;
133
169
  defaultValue;
@@ -1 +1 @@
1
- {"version":3,"file":"update.js","sourceRoot":"","sources":["../../../../src/commands/expressions/update.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"update.js","sourceRoot":"","sources":["../../../../src/commands/expressions/update.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,17 @@
1
1
  import type { ScalarAttributeType } from "@aws-sdk/client-dynamodb";
2
- import type { NativeAttributeValue } from "@aws-sdk/lib-dynamodb";
2
+ import type { NativeAttributeBinary, NativeAttributeValue, NumberValue } from "@aws-sdk/lib-dynamodb";
3
3
  export type AttributeName = string;
4
4
  export type AttributeValue = NativeAttributeValue;
5
+ /**
6
+ * A type regrouping all javascript native types that correspond to a valid DynamoDB
7
+ * number attribute.
8
+ */
9
+ export type AttributeValueNumber = number | NumberValue | bigint;
10
+ /**
11
+ * A type regrouping all javascript native types that corerspond to a valid DynamoDB
12
+ * set attribute.
13
+ */
14
+ export type AttributeValueSet = Set<AttributeValueNumber | string | NativeAttributeBinary | undefined>;
5
15
  export type AttributePath = AttributeName;
6
16
  export type AttributeType = "S" | "N" | "B" | "BOOL" | "NULL" | "M" | "L" | "SS" | "NS" | "BS";
7
17
  export interface Attribute {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@infra-blocks/aws-dynamodb",
3
- "version": "0.19.0",
3
+ "version": "0.20.0-alpha.0",
4
4
  "description": "A convenience wrapper over @aws-sdk/client-dynamodb and @aws-sdk/lib-dynamodb.",
5
5
  "keywords": [
6
6
  "aws",
@@ -1,28 +0,0 @@
1
- import type { AttributePath, AttributeValue } from "../../types.js";
2
- import type { AttributeNames } from "../attributes/names.js";
3
- import type { AttributeValues } from "../attributes/values.js";
4
- export type Operand<T extends AttributeValue = AttributeValue> = AttributeOperand | ValueOperand<T>;
5
- export interface IOperand {
6
- substitute(params: {
7
- names: AttributeNames;
8
- values: AttributeValues;
9
- }): string;
10
- }
11
- export declare class ValueOperand<T extends AttributeValue> implements IOperand {
12
- private readonly value;
13
- constructor(value: T);
14
- substitute(params: {
15
- names: AttributeNames;
16
- values: AttributeValues;
17
- }): string;
18
- }
19
- export declare function value<T extends AttributeValue = AttributeValue>(value: AttributeValue): ValueOperand<T>;
20
- export declare class AttributeOperand implements IOperand {
21
- private readonly path;
22
- constructor(path: AttributePath);
23
- substitute(params: {
24
- names: AttributeNames;
25
- values: AttributeValues;
26
- }): string;
27
- }
28
- export declare function attribute(path: AttributePath): AttributeOperand;