@squiz/db-lib 1.73.0 → 1.74.0

Sign up to get free protection for your applications and to get access to all the features.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # Change Log
2
2
 
3
+ ## 1.74.0
4
+
5
+ ### Minor Changes
6
+
7
+ - 45c2de0: update gsi attributes on item update
8
+
3
9
  ## 1.73.0
4
10
 
5
11
  ### Minor Changes
@@ -198,12 +198,6 @@ export declare abstract class AbstractDynamoDbRepository<SHAPE extends object, D
198
198
  * @throw MissingKeyValuesError
199
199
  */
200
200
  protected getKey(item: Partial<SHAPE>, attributeName: keyof KeysFormat): string;
201
- /**
202
- * Whether the given property name is part of the entity's pk/sk string
203
- * @param propertyName
204
- * @returns boolean
205
- */
206
- private isPropertyPartOfKeys;
207
201
  /**
208
202
  * Validate the data matches with "DATA_MODEL"
209
203
  * @param value
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractDynamoDbRepository.d.ts","sourceRoot":"","sources":["../../src/dynamodb/AbstractDynamoDbRepository.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AbstractDynamoDbRepository.d.ts","sourceRoot":"","sources":["../../src/dynamodb/AbstractDynamoDbRepository.ts"],"names":[],"mappings":"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"}
@@ -229,9 +229,11 @@ class AbstractDynamoDbRepository {
229
229
  const value = { ...oldValue, ...newValue };
230
230
  this.assertValueMatchesModel(value);
231
231
  this.convertSelectedValuesToJsonString(newValue);
232
+ this.convertSelectedValuesToJsonString(oldValue);
232
233
  const updateExpression = [];
233
234
  const expressionAttributeNames = {};
234
235
  const expressionAttributeValues = {};
236
+ const updatedAttributes = [];
235
237
  for (const modelProperty of Object.keys(newValue)) {
236
238
  const propValue = (_a = newValue[modelProperty]) !== null && _a !== void 0 ? _a : null;
237
239
  if (propValue === oldValue[modelProperty]) {
@@ -243,18 +245,33 @@ class AbstractDynamoDbRepository {
243
245
  updateExpression.push(`${propName} = ${propValuePlaceHolder}`);
244
246
  expressionAttributeNames[propName] = modelProperty;
245
247
  expressionAttributeValues[propValuePlaceHolder] = propValue;
248
+ updatedAttributes.push(modelProperty);
246
249
  }
247
- if (!updateExpression.length) {
250
+ if (!updatedAttributes.length) {
248
251
  // nothing to update
249
252
  return value;
250
253
  }
254
+ // also update the gsi attributes if needed
255
+ Object.keys(this.indexes).forEach((key) => {
256
+ const index = this.indexes[key];
257
+ [index.pk.attributeName, index.sk.attributeName].forEach((keyAttributeName) => {
258
+ const keyFormat = this.keysFormat[keyAttributeName];
259
+ if (updatedAttributes.find((attr) => keyFormat.search(`{${attr}}`) !== -1)) {
260
+ const propName = `#${keyAttributeName}`;
261
+ const propValuePlaceHolder = `:${keyAttributeName}`;
262
+ updateExpression.push(`${propName} = ${propValuePlaceHolder}`);
263
+ expressionAttributeNames[propName] = keyAttributeName;
264
+ expressionAttributeValues[propValuePlaceHolder] = this.getKey(value, keyAttributeName);
265
+ }
266
+ });
267
+ });
251
268
  const updateCommandInput = {
252
269
  TableName: this.tableName,
253
270
  Key: {
254
271
  [this.keys.pk.attributeName]: this.getPk(newValue),
255
272
  [this.keys.sk.attributeName]: this.getSk(newValue),
256
273
  },
257
- UpdateExpression: 'SET ' + updateExpression.join(','),
274
+ UpdateExpression: 'SET ' + updateExpression.join(', '),
258
275
  ExpressionAttributeValues: expressionAttributeValues,
259
276
  ExpressionAttributeNames: expressionAttributeNames,
260
277
  ConditionExpression: `attribute_exists(${this.keys.pk.attributeName})`,
@@ -477,18 +494,6 @@ class AbstractDynamoDbRepository {
477
494
  }
478
495
  return keyFormat;
479
496
  }
480
- /**
481
- * Whether the given property name is part of the entity's pk/sk string
482
- * @param propertyName
483
- * @returns boolean
484
- */
485
- isPropertyPartOfKeys(propertyName) {
486
- if (this.keysFormat[this.keys.pk.attributeName].search(`{${propertyName}}`) !== -1)
487
- return true;
488
- if (this.keysFormat[this.keys.sk.attributeName].search(`{${propertyName}}`) !== -1)
489
- return true;
490
- return false;
491
- }
492
497
  /**
493
498
  * Validate the data matches with "DATA_MODEL"
494
499
  * @param value
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractDynamoDbRepository.js","sourceRoot":"","sources":["../../src/dynamodb/AbstractDynamoDbRepository.ts"],"names":[],"mappings":";;;AAYA,0BAA+F;AAC/F,4EAAyE;AA2DzE,MAAM,cAAc,GAAG,CAAC,CAAC;AAEzB,MAAsB,0BAA0B;IAY9C,YACY,SAAiB,EACjB,SAAwC,EACxC,UAAkB,EAClB,gBAAkC,EAClC,QAA8D;QAJ9D,cAAS,GAAT,SAAS,CAAQ;QACjB,cAAS,GAAT,SAAS,CAA+B;QACxC,eAAU,GAAV,UAAU,CAAQ;QAClB,qBAAgB,GAAhB,gBAAgB,CAAkB;QAClC,aAAQ,GAAR,QAAQ,CAAsD;QAExE,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC;QAE/B,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC,IAAI,CAAC;QAClC,IAAI,CAAC,OAAO,GAAG,gBAAgB,CAAC,OAAO,CAAC;QACxC,IAAI,CAAC,kBAAkB,GAAG,gBAAgB,CAAC,kBAAkB,CAAC;QAE9D,IAAI,CAAC,UAAU,GAAG;YAChB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM;YACjD,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM;SAClD,CAAC;QACF,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YACxC,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAChC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC;YAC1D,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC;QAC5D,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;OAQG;IACI,KAAK,CAAC,OAAO,CAAC,IAAoB;QACvC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;YACnC,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,GAAG,EAAE;gBACH,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;gBAC9C,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;aAC/C;SACF,CAAC,CAAC;QACH,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE;YAC7B,OAAO,SAAS,CAAC;SAClB;QACD,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC;IAED;;;;;;;;;OASG;IACI,KAAK,CAAC,QAAQ,CAAC,KAAuB;QAC3C,sDAAsD;QACtD,MAAM,SAAS,GAAG,GAAG,CAAC;QAEtB,IAAI,MAAM,GAAiB,EAAE,CAAC;QAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,SAAS,EAAE;YAChD,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;YAC5E,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;SACrC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;;OAKG;IACK,KAAK,CAAC,aAAa,CAAC,KAAuB;QACjD,IAAI,WAAW,GAAiB,EAAE,CAAC;QAEnC,IAAI,WAAW,GAAyC;YACtD,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;gBAChB,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC;aAC/B;SACF,CAAC;QACF,IAAI,eAAe,GAAG,CAAC,CAAC;QACxB,OAAO,WAAW,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,EAAE;YACrD,IAAI,eAAe,EAAE,GAAG,cAAc,EAAE;gBACtC,MAAM,KAAK,CAAC,wDAAwD,CAAC,CAAC;aACvE;YACD,MAAM,MAAM,GAA0B,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;gBAC/D,YAAY,EAAE,WAAW;aAC1B,CAAC,CAAC;YACH,WAAW,GAAG,MAAM,CAAC,eAAe,CAAC;YACrC,IAAI,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE;gBACnG,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aACpG;SACF;QAED,OAAO,WAAW,CAAC;IACrB,CAAC;IAED;;;;;;;OAOG;IACI,KAAK,CAAC,WAAW,CAAC,KAAuB;QAC9C,wDAAwD;QACxD,MAAM,SAAS,GAAG,EAAE,CAAC;QAErB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,SAAS,EAAE;YAChD,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;YAC9D,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;SACnC;IACH,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAAC,IAAiC;QAC9D,IAAI,YAAY,GAA2C;YACzD,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;gBAChD,OAAO;oBACL,aAAa,EAAE;wBACb,GAAG,EAAE,GAAG;qBACT;iBACF,CAAC;YACJ,CAAC,CAAC;SACH,CAAC;QACF,IAAI,eAAe,GAAG,CAAC,CAAC;QACxB,OAAO,YAAY,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,EAAE;YACvD,IAAI,eAAe,EAAE,GAAG,cAAc,EAAE;gBACtC,MAAM,KAAK,CAAC,wDAAwD,CAAC,CAAC;aACvE;YACD,MAAM,QAAQ,GAA4B,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;gBACrE,YAAY,EAAE,YAAY;aAC3B,CAAC,CAAC;YACH,YAAY,GAAG,QAAQ,CAAC,gBAAgB,CAAC;SAC1C;IACH,CAAC;IAEO,YAAY,CAAC,KAAuB;QAC1C,MAAM,IAAI,GAAgC,EAAE,CAAC;QAC7C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;YACxB,IAAI,CAAC,IAAI,CAAC;gBACR,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;gBAC9C,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;aAC/C,CAAC,CAAC;SACJ;QACD,cAAc;QACd,0CAA0C;QAC1C,0CAA0C;QAC1C,MAAM;QAEN,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;OAOG;IACI,KAAK,CAAC,UAAU,CAAC,IAAoB,EAAE,OAAsB;;QAClE,MAAM,UAAU,GAAG,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,UAAU,MAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,CAAA,CAAC;QAC1D,MAAM,KAAK,GAAG,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,CAAC;QAE7B,IAAI,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC;QACxC,IAAI,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC;QACxC,IAAI,SAAS,GAAG,IAAI,CAAC;QAErB,IAAI,KAAK,EAAE;YACT,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,SAAS,EAAE;gBACrC,MAAM,IAAI,yBAAqB,CAAC,gBAAgB,KAAK,2BAA2B,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;aACpG;YACD,SAAS,GAAG,KAAK,CAAC;YAClB,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC;YAC9C,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC;SAC/C;QAED,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACrC,MAAM,sBAAsB,GAAG,CAAC,oBAAoB,CAAC,CAAC;QACtD,MAAM,wBAAwB,GAA2B,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC;QAC/E,MAAM,yBAAyB,GAA4B,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;QAC9E,IAAI,UAAU,EAAE;YACd,MAAM,EAAE,GAAG,MAAA,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,0CAAE,OAAO,mCAAI,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YACjE,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,+BAA+B,CAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,CAAC,CAAC,CAAC;YACnF,wBAAwB,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC;YAC7C,yBAAyB,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC;SAC5C;QAED,MAAM,iBAAiB,GAAsB;YAC3C,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,sBAAsB,EAAE,sBAAsB,CAAC,IAAI,CAAC,OAAO,CAAC;YAC5D,wBAAwB,EAAE,wBAAwB;YAClD,yBAAyB,EAAE,yBAAyB;SACrD,CAAC;QACF,IAAI,SAAS,EAAE;YACb,iBAAiB,CAAC,WAAW,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;SACpD;QAED,IAAI,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,MAAK,SAAS,EAAE;YAChC,iBAAiB,CAAC,gBAAgB,GAAG,OAAO,CAAC,KAAK,KAAK,KAAK,CAAC;SAC9D;QACD,IAAI,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,MAAK,SAAS,EAAE;YAChC,iBAAiB,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;SACzC;QAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;QAC1D,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;IACjF,CAAC;IAED;;;;OAIG;IACK,+BAA+B,CAAC,MAA8B;QACpE,IAAI,MAAM,KAAK,SAAS,EAAE;YACxB,OAAO,oBAAoB,CAAC;SAC7B;aAAM,IAAI,MAAM,CAAC,IAAI,KAAK,aAAa,EAAE;YACxC,OAAO,gCAAgC,CAAC;SACzC;QACD,MAAM,IAAI,KAAK,CAAC,8BAA+B,MAAc,aAAd,MAAM,uBAAN,MAAM,CAAU,IAAI,EAAE,CAAC,CAAC;IACzE,CAAC;IAED;;;;;;;;OAQG;IACI,KAAK,CAAC,UAAU,CAAC,QAAwB,EAAE,cAA2B,EAAE;;QAC7E,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC9C,IAAI,QAAQ,KAAK,SAAS,EAAE;YAC1B,OAAO,SAAS,CAAC;SAClB;QAED,MAAM,KAAK,GAAG,EAAE,GAAG,QAAQ,EAAE,GAAG,QAAQ,EAAE,CAAC;QAC3C,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;QAEpC,IAAI,CAAC,iCAAiC,CAAC,QAAQ,CAAC,CAAC;QAEjD,MAAM,gBAAgB,GAAG,EAAE,CAAC;QAC5B,MAAM,wBAAwB,GAA2B,EAAE,CAAC;QAC5D,MAAM,yBAAyB,GAA4B,EAAE,CAAC;QAC9D,KAAK,MAAM,aAAa,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;YACjD,MAAM,SAAS,GAAG,MAAA,QAAQ,CAAC,aAA4B,CAAC,mCAAI,IAAI,CAAC;YACjE,IAAI,SAAS,KAAK,QAAQ,CAAC,aAA4B,CAAC,EAAE;gBACxD,yDAAyD;gBACzD,SAAS;aACV;YAED,MAAM,QAAQ,GAAG,IAAI,aAAa,EAAE,CAAC;YACrC,MAAM,oBAAoB,GAAG,IAAI,aAAa,EAAE,CAAC;YAEjD,gBAAgB,CAAC,IAAI,CAAC,GAAG,QAAQ,MAAM,oBAAoB,EAAE,CAAC,CAAC;YAC/D,wBAAwB,CAAC,QAAQ,CAAC,GAAG,aAAa,CAAC;YACnD,yBAAyB,CAAC,oBAAoB,CAAC,GAAG,SAAS,CAAC;SAC7D;QACD,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE;YAC5B,oBAAoB;YACpB,OAAO,KAAK,CAAC;SACd;QAED,MAAM,kBAAkB,GAAG;YACzB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,GAAG,EAAE;gBACH,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;gBAClD,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;aACnD;YACD,gBAAgB,EAAE,MAAM,GAAG,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC;YACrD,yBAAyB,EAAE,yBAAyB;YACpD,wBAAwB,EAAE,wBAAwB;YAClD,mBAAmB,EAAE,oBAAoB,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,GAAG;SACvE,CAAC;QAEF,IAAI,MAAA,WAAW,CAAC,EAAE,0CAAE,MAAM,EAAE;YAC1B,8CAA8C;YAC9C,qDAAqD;YACrD,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,WAAW,CAAC,EAAE,EAAE;gBACrD,MAAM,EAAE,kBAAkB;aAC3B,CAAC,CAAC;YACH,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;SACjC;QAED,IAAI,MAA2B,CAAC;QAChC,IAAI;YACF,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;gBAChC,GAAG,kBAAkB;gBACrB,YAAY,EAAE,SAAS;aACxB,CAAC,CAAC;SACJ;QAAC,OAAO,CAAM,EAAE;YACf,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,iCAAiC,EAAE;gBACrD,OAAO,SAAS,CAAC;aAClB;YACD,MAAM,CAAC,CAAC;SACT;QAED,IAAI,IAAI,GAA2B,SAAS,CAAC;QAC7C,IAAI,MAAM,CAAC,UAAU,EAAE;YACrB,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;SAC5C;QACD,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;IACjC,CAAC;IAED;;;;;;;;;;OAUG;IACI,KAAK,CAAC,UAAU,CACrB,KAAiB,EACjB,cAA2B,EAAE,EAC7B,kBAAkC,EAAE;;QAEpC,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;QAEpC,MAAM,OAAO,GAAQ,EAAE,CAAC;QACxB,KAAK,MAAM,aAAa,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;YAC9C,OAAO,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC,aAAiC,CAAC,CAAC;SACnE;QACD,IAAI,CAAC,iCAAiC,CAAC,OAAO,CAAC,CAAC;QAEhD,MAAM,SAAS,GAA4B;YACzC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,KAAK,EAAE,GAAG,eAAe,EAAE,CAAC;YAC1E,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,KAAK,EAAE,GAAG,eAAe,EAAE,CAAC;SAC3E,CAAC;QAEF,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YACxC,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAChC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,KAAK,EAAE,GAAG,eAAe,EAAE,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC;YAC1G,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,KAAK,EAAE,GAAG,eAAe,EAAE,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC;QAC5G,CAAC,CAAC,CAAC;QAEH,MAAM,eAAe,GAAoB;YACvC,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,IAAI,EAAE;gBACJ,GAAG,SAAS;gBACZ,GAAG,OAAO;aACX;YACD,mBAAmB,EAAE,wBAAwB,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,GAAG;SAC3E,CAAC;QAEF,IAAI,MAAA,WAAW,CAAC,EAAE,0CAAE,MAAM,EAAE;YAC1B,8CAA8C;YAC9C,qDAAqD;YACrD,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,WAAW,CAAC,EAAE,EAAE;gBACrD,GAAG,EAAE,eAAe;aACrB,CAAC,CAAC;YACH,OAAO,KAAK,CAAC;SACd;QAED,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QAEvC,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;;;;OAOG;IACI,KAAK,CAAC,UAAU,CAAC,WAA2B,EAAE,cAA2B,EAAE;;QAChF,MAAM,kBAAkB,GAAuB;YAC7C,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,GAAG,EAAE;gBACH,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;gBACrD,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;aACtD;YACD,mBAAmB,EAAE,oBAAoB,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,GAAG;SACvE,CAAC;QAEF,IAAI,MAAA,WAAW,CAAC,EAAE,0CAAE,MAAM,EAAE;YAC1B,8EAA8E;YAC9E,OAAO,kBAAkB,CAAC,mBAAmB,CAAC;YAC9C,8CAA8C;YAC9C,qDAAqD;YACrD,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,WAAW,CAAC,EAAE,EAAE;gBACrD,MAAM,EAAE,kBAAkB;aAC3B,CAAC,CAAC;YACH,OAAO,CAAC,CAAC;SACV;QAED,IAAI;YACF,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;SAC9C;QAAC,OAAO,CAAM,EAAE;YACf,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,iCAAiC,EAAE;gBACrD,OAAO,CAAC,CAAC;aACV;YACD,MAAM,CAAC,CAAC;SACT;QACD,OAAO,CAAC,CAAC;IACX,CAAC;IAED;;;;OAIG;IACO,WAAW,CAAC,IAA6B;QACjD,KAAK,MAAM,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YACzC,IAAI,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;gBAC/C,IAAI,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,QAAQ,EAAE;oBACvC,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAW,CAAC,CAAC;iBACzD;qBAAM;oBACL,MAAM,IAAI,+CAAsB,CAAC,UAAU,SAAS,gDAAgD,CAAC,CAAC;iBACvG;aACF;SACF;QACD,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IAES,iCAAiC,CAAC,IAA6B;QACvE,KAAK,MAAM,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YACzC,IAAI,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;gBAC/C,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;aACnD;SACF;IACH,CAAC;IAED;;;;;OAKG;IACO,KAAK,CAAC,IAAoB;QAClC,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC;IACvD,CAAC;IAED;;;;;;OAMG;IACO,KAAK,CAAC,IAAoB;QAClC,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC;IACvD,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAgCG;IACO,MAAM,CAAC,IAAoB,EAAE,aAA+B;;QACpE,IAAI,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;QAC/C,IAAI,SAAS,IAAI,SAAS,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE;YAC/C,MAAM,IAAI,yBAAqB,CAC7B,sDAAsD,aAAa,eAAe,IAAI,CAAC,UAAU,EAAE,CACpG,CAAC;SACH;QAED,MAAM,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;QACjD,MAAM,YAAY,GAAqD,CAAC,OAAO;YAC7E,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;gBACpB,OAAO;oBACL,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAgB;oBAC3C,WAAW,EAAE,KAAK;iBACnB,CAAC;YACJ,CAAC,CAAC,CAAC;QAEP,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC5C,MAAM,KAAK,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;YACvC,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,SAAS,EAAE;gBAC7B,MAAM,IAAI,yBAAqB,CAC7B,cAAc,MAAM,CAAC,KAAK,CAAC,mDAAmD,IAAI,CAAC,UAAU,EAAE,CAChG,CAAC;aACH;YACD,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,MAAM,CAAC,MAAA,IAAI,CAAC,KAAK,CAAC,mCAAI,EAAE,CAAC,CAAC,CAAC;SACvF;QAED,MAAM,WAAW,GAAG,SAAS,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;QACrD,IAAI,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,MAAM,EAAE;YACvB,MAAM,IAAI,yBAAqB,CAC7B,+DAA+D,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,cAC3F,IAAI,CAAC,UACP,MAAM,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CACjC,CAAC;SACH;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;;;OAIG;IACK,oBAAoB,CAAC,YAAoB;QAC/C,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,IAAI,YAAY,GAAG,CAAC,KAAK,CAAC,CAAC;YAAE,OAAO,IAAI,CAAC;QAChG,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,IAAI,YAAY,GAAG,CAAC,KAAK,CAAC,CAAC;YAAE,OAAO,IAAI,CAAC;QAChG,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;OAIG;IACK,uBAAuB,CAAC,KAAc;QAC5C,sDAAsD;QACtD,iCAAiC;QACjC,MAAM,GAAG,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,KAA4B,CAAC,CAAC;QAC5D,MAAM,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,KAAe,CAAC,CAAC;QACrD,MAAM,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACzC,MAAM,gBAAgB,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;QAC3F,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE;YAC/B,MAAM,IAAI,wBAAoB,CAAC,+BAA+B,IAAI,CAAC,UAAU,KAAK,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;SAClH;IACH,CAAC;CACF;AAtjBD,gEAsjBC"}
1
+ {"version":3,"file":"AbstractDynamoDbRepository.js","sourceRoot":"","sources":["../../src/dynamodb/AbstractDynamoDbRepository.ts"],"names":[],"mappings":"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"}
@@ -177,6 +177,8 @@ describe('AbstractRepository', () => {
177
177
  Attributes: {
178
178
  name: 'foo',
179
179
  age: 99,
180
+ // country attribute is part of gsi key
181
+ // hence updating this will also update gsi key value
180
182
  country: 'au-updated',
181
183
  data: {},
182
184
  },
@@ -184,12 +186,14 @@ describe('AbstractRepository', () => {
184
186
  const input = {
185
187
  TableName: TABLE_NAME,
186
188
  Key: { pk: 'test_item#foo', sk: '#meta' },
187
- UpdateExpression: 'SET #country = :country',
189
+ UpdateExpression: 'SET #country = :country, #gsi1_pk = :gsi1_pk',
188
190
  ExpressionAttributeNames: {
189
191
  '#country': 'country',
192
+ '#gsi1_pk': 'gsi1_pk',
190
193
  },
191
194
  ExpressionAttributeValues: {
192
195
  ':country': 'au-updated',
196
+ ':gsi1_pk': 'country#au-updated',
193
197
  },
194
198
  ConditionExpression: `attribute_exists(pk)`,
195
199
  };
@@ -206,6 +210,56 @@ describe('AbstractRepository', () => {
206
210
  data: {},
207
211
  }));
208
212
  });
213
+ it('should only update the changed attributes', async () => {
214
+ ddbClientMock.on(lib_dynamodb_1.GetCommand).resolves({
215
+ $metadata: {
216
+ httpStatusCode: 200,
217
+ },
218
+ Item: {
219
+ name: 'foo',
220
+ age: 99,
221
+ country: 'au',
222
+ data: {},
223
+ },
224
+ });
225
+ ddbClientMock.on(lib_dynamodb_1.UpdateCommand).resolves({
226
+ $metadata: {
227
+ httpStatusCode: 200,
228
+ },
229
+ Attributes: {
230
+ name: 'foo',
231
+ age: 99,
232
+ country: 'au',
233
+ data: { active: true },
234
+ },
235
+ });
236
+ const input = {
237
+ TableName: TABLE_NAME,
238
+ Key: { pk: 'test_item#foo', sk: '#meta' },
239
+ UpdateExpression: 'SET #data = :data',
240
+ ExpressionAttributeNames: {
241
+ '#data': 'data',
242
+ },
243
+ ExpressionAttributeValues: {
244
+ ':data': { active: true },
245
+ },
246
+ ConditionExpression: `attribute_exists(pk)`,
247
+ };
248
+ const updateItem = {
249
+ name: 'foo',
250
+ age: 99,
251
+ // this is the only change attribute value
252
+ data: { active: true },
253
+ };
254
+ const result = await repository.updateItem(updateItem);
255
+ expect(ddbClientMock).toHaveReceivedNthCommandWith(2, lib_dynamodb_1.UpdateCommand, input);
256
+ expect(result).toEqual(new TestItem({
257
+ name: 'foo',
258
+ age: 99,
259
+ country: 'au',
260
+ data: { active: true },
261
+ }));
262
+ });
209
263
  it('should not trigger update request if the input attributes are same as in the existing item', async () => {
210
264
  ddbClientMock.on(lib_dynamodb_1.GetCommand).resolves({
211
265
  $metadata: {
@@ -1205,16 +1259,18 @@ describe('AbstractRepository', () => {
1205
1259
  ConditionExpression: 'attribute_exists(pk)',
1206
1260
  ExpressionAttributeNames: {
1207
1261
  '#age': 'age',
1262
+ '#gsi1_sk': 'gsi1_sk',
1208
1263
  },
1209
1264
  ExpressionAttributeValues: {
1210
1265
  ':age': 55,
1266
+ ':gsi1_sk': 'age#55',
1211
1267
  },
1212
1268
  Key: {
1213
1269
  pk: 'test_item#foo2',
1214
1270
  sk: '#meta',
1215
1271
  },
1216
1272
  TableName: 'test-table',
1217
- UpdateExpression: 'SET #age = :age',
1273
+ UpdateExpression: 'SET #age = :age, #gsi1_sk = :gsi1_sk',
1218
1274
  },
1219
1275
  },
1220
1276
  {
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractDynamoDbRepository.spec.js","sourceRoot":"","sources":["../../src/dynamodb/AbstractDynamoDbRepository.spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AbstractDynamoDbRepository.spec.js","sourceRoot":"","sources":["../../src/dynamodb/AbstractDynamoDbRepository.spec.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@squiz/db-lib",
3
- "version": "1.73.0",
3
+ "version": "1.74.0",
4
4
  "description": "",
5
5
  "main": "lib/index.js",
6
6
  "private": false,
@@ -232,6 +232,8 @@ describe('AbstractRepository', () => {
232
232
  Attributes: {
233
233
  name: 'foo',
234
234
  age: 99,
235
+ // country attribute is part of gsi key
236
+ // hence updating this will also update gsi key value
235
237
  country: 'au-updated',
236
238
  data: {},
237
239
  },
@@ -239,12 +241,14 @@ describe('AbstractRepository', () => {
239
241
  const input: UpdateCommandInput = {
240
242
  TableName: TABLE_NAME,
241
243
  Key: { pk: 'test_item#foo', sk: '#meta' },
242
- UpdateExpression: 'SET #country = :country',
244
+ UpdateExpression: 'SET #country = :country, #gsi1_pk = :gsi1_pk',
243
245
  ExpressionAttributeNames: {
244
246
  '#country': 'country',
247
+ '#gsi1_pk': 'gsi1_pk',
245
248
  },
246
249
  ExpressionAttributeValues: {
247
250
  ':country': 'au-updated',
251
+ ':gsi1_pk': 'country#au-updated',
248
252
  },
249
253
  ConditionExpression: `attribute_exists(pk)`,
250
254
  };
@@ -265,6 +269,60 @@ describe('AbstractRepository', () => {
265
269
  );
266
270
  });
267
271
 
272
+ it('should only update the changed attributes', async () => {
273
+ ddbClientMock.on(GetCommand).resolves({
274
+ $metadata: {
275
+ httpStatusCode: 200,
276
+ },
277
+ Item: {
278
+ name: 'foo',
279
+ age: 99,
280
+ country: 'au',
281
+ data: {},
282
+ },
283
+ });
284
+ ddbClientMock.on(UpdateCommand).resolves({
285
+ $metadata: {
286
+ httpStatusCode: 200,
287
+ },
288
+ Attributes: {
289
+ name: 'foo',
290
+ age: 99,
291
+ country: 'au',
292
+ data: { active: true },
293
+ },
294
+ });
295
+ const input: UpdateCommandInput = {
296
+ TableName: TABLE_NAME,
297
+ Key: { pk: 'test_item#foo', sk: '#meta' },
298
+ UpdateExpression: 'SET #data = :data',
299
+ ExpressionAttributeNames: {
300
+ '#data': 'data',
301
+ },
302
+ ExpressionAttributeValues: {
303
+ ':data': { active: true },
304
+ },
305
+ ConditionExpression: `attribute_exists(pk)`,
306
+ };
307
+
308
+ const updateItem = {
309
+ name: 'foo',
310
+ age: 99,
311
+ // this is the only change attribute value
312
+ data: { active: true },
313
+ };
314
+ const result = await repository.updateItem(updateItem);
315
+ expect(ddbClientMock).toHaveReceivedNthCommandWith(2, UpdateCommand, input);
316
+ expect(result).toEqual(
317
+ new TestItem({
318
+ name: 'foo',
319
+ age: 99,
320
+ country: 'au',
321
+ data: { active: true },
322
+ }),
323
+ );
324
+ });
325
+
268
326
  it('should not trigger update request if the input attributes are same as in the existing item', async () => {
269
327
  ddbClientMock.on(GetCommand).resolves({
270
328
  $metadata: {
@@ -1391,16 +1449,18 @@ describe('AbstractRepository', () => {
1391
1449
  ConditionExpression: 'attribute_exists(pk)',
1392
1450
  ExpressionAttributeNames: {
1393
1451
  '#age': 'age',
1452
+ '#gsi1_sk': 'gsi1_sk',
1394
1453
  },
1395
1454
  ExpressionAttributeValues: {
1396
1455
  ':age': 55,
1456
+ ':gsi1_sk': 'age#55',
1397
1457
  },
1398
1458
  Key: {
1399
1459
  pk: 'test_item#foo2',
1400
1460
  sk: '#meta',
1401
1461
  },
1402
1462
  TableName: 'test-table',
1403
- UpdateExpression: 'SET #age = :age',
1463
+ UpdateExpression: 'SET #age = :age, #gsi1_sk = :gsi1_sk',
1404
1464
  },
1405
1465
  },
1406
1466
  {
@@ -330,12 +330,15 @@ export abstract class AbstractDynamoDbRepository<SHAPE extends object, DATA_CLAS
330
330
  this.assertValueMatchesModel(value);
331
331
 
332
332
  this.convertSelectedValuesToJsonString(newValue);
333
+ this.convertSelectedValuesToJsonString(oldValue as Record<string, unknown>);
333
334
 
334
335
  const updateExpression = [];
335
336
  const expressionAttributeNames: Record<string, string> = {};
336
337
  const expressionAttributeValues: Record<string, unknown> = {};
338
+ const updatedAttributes: string[] = [];
337
339
  for (const modelProperty of Object.keys(newValue)) {
338
340
  const propValue = newValue[modelProperty as keyof SHAPE] ?? null;
341
+
339
342
  if (propValue === oldValue[modelProperty as keyof SHAPE]) {
340
343
  // don't need to update the properties that are unchanged
341
344
  continue;
@@ -347,19 +350,35 @@ export abstract class AbstractDynamoDbRepository<SHAPE extends object, DATA_CLAS
347
350
  updateExpression.push(`${propName} = ${propValuePlaceHolder}`);
348
351
  expressionAttributeNames[propName] = modelProperty;
349
352
  expressionAttributeValues[propValuePlaceHolder] = propValue;
353
+ updatedAttributes.push(modelProperty);
350
354
  }
351
- if (!updateExpression.length) {
355
+ if (!updatedAttributes.length) {
352
356
  // nothing to update
353
357
  return value;
354
358
  }
355
359
 
360
+ // also update the gsi attributes if needed
361
+ Object.keys(this.indexes).forEach((key) => {
362
+ const index = this.indexes[key];
363
+ [index.pk.attributeName, index.sk.attributeName].forEach((keyAttributeName) => {
364
+ const keyFormat = this.keysFormat[keyAttributeName];
365
+ if (updatedAttributes.find((attr) => keyFormat.search(`{${attr}}`) !== -1)) {
366
+ const propName = `#${keyAttributeName}`;
367
+ const propValuePlaceHolder = `:${keyAttributeName}`;
368
+ updateExpression.push(`${propName} = ${propValuePlaceHolder}`);
369
+ expressionAttributeNames[propName] = keyAttributeName;
370
+ expressionAttributeValues[propValuePlaceHolder] = this.getKey(value, keyAttributeName);
371
+ }
372
+ });
373
+ });
374
+
356
375
  const updateCommandInput = {
357
376
  TableName: this.tableName,
358
377
  Key: {
359
378
  [this.keys.pk.attributeName]: this.getPk(newValue),
360
379
  [this.keys.sk.attributeName]: this.getSk(newValue),
361
380
  },
362
- UpdateExpression: 'SET ' + updateExpression.join(','),
381
+ UpdateExpression: 'SET ' + updateExpression.join(', '),
363
382
  ExpressionAttributeValues: expressionAttributeValues,
364
383
  ExpressionAttributeNames: expressionAttributeNames,
365
384
  ConditionExpression: `attribute_exists(${this.keys.pk.attributeName})`,
@@ -611,17 +630,6 @@ export abstract class AbstractDynamoDbRepository<SHAPE extends object, DATA_CLAS
611
630
  return keyFormat;
612
631
  }
613
632
 
614
- /**
615
- * Whether the given property name is part of the entity's pk/sk string
616
- * @param propertyName
617
- * @returns boolean
618
- */
619
- private isPropertyPartOfKeys(propertyName: string) {
620
- if (this.keysFormat[this.keys.pk.attributeName].search(`{${propertyName}}`) !== -1) return true;
621
- if (this.keysFormat[this.keys.sk.attributeName].search(`{${propertyName}}`) !== -1) return true;
622
- return false;
623
- }
624
-
625
633
  /**
626
634
  * Validate the data matches with "DATA_MODEL"
627
635
  * @param value