@kravc/dos-dynamodb 1.0.0-alpha.4 → 1.0.0-alpha.6

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.
@@ -3,7 +3,7 @@ import { type QueryMap, type Context } from '@kravc/dos';
3
3
  /** Document class that uses hash ID as id key. */
4
4
  declare class DocumentWithHashId<T> extends Document<T> {
5
5
  /** Returns salt for hash ID method. */
6
- static getSalt<T>(_context: Context, _attributes: T): string;
6
+ static getSalt(_context: Context, _attributes: unknown): string;
7
7
  /** Returns number key. */
8
8
  static get numberKey(): string;
9
9
  /** Ensures index query without index name uses lsi1 to sort documents. */
@@ -1 +1 @@
1
- {"version":3,"file":"DocumentWithHashId.d.ts","sourceRoot":"","sources":["../../../src/Document/DocumentWithHashId.ts"],"names":[],"mappings":"AACA,OAAO,QAAQ,MAAM,YAAY,CAAC;AAElC,OAAO,EAA6B,KAAK,QAAQ,EAAE,KAAK,OAAO,EAAE,MAAM,YAAY,CAAC;AAMpF,kDAAkD;AAClD,cAAM,kBAAkB,CAAC,CAAC,CAAE,SAAQ,QAAQ,CAAC,CAAC,CAAC;IAC7C,uCAAuC;IAEvC,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,GAAG,MAAM;IAI5D,0BAA0B;IAC1B,MAAM,KAAK,SAAS,WAEnB;IAED,0EAA0E;IAC1E,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,SAAS,EAAE,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE;;;;IAM5E,4CAA4C;WAC/B,sBAAsB,CAAC,OAAO,EAAE,OAAO;IAgBpD,wDAAwD;WAC3C,OAAO,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;CAmCxE;AAED,eAAe,kBAAkB,CAAC"}
1
+ {"version":3,"file":"DocumentWithHashId.d.ts","sourceRoot":"","sources":["../../../src/Document/DocumentWithHashId.ts"],"names":[],"mappings":"AACA,OAAO,QAAQ,MAAM,YAAY,CAAC;AAElC,OAAO,EAA6B,KAAK,QAAQ,EAAE,KAAK,OAAO,EAAE,MAAM,YAAY,CAAC;AAMpF,kDAAkD;AAClD,cAAM,kBAAkB,CAAC,CAAC,CAAE,SAAQ,QAAQ,CAAC,CAAC,CAAC;IAC7C,uCAAuC;IAEvC,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,GAAG,MAAM;IAI/D,0BAA0B;IAC1B,MAAM,KAAK,SAAS,WAEnB;IAED,0EAA0E;IAC1E,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,SAAS,EAAE,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE;;;;IAM5E,4CAA4C;WAC/B,sBAAsB,CAAC,OAAO,EAAE,OAAO;IAgBpD,wDAAwD;WAC3C,OAAO,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;CAmCxE;AAED,eAAe,kBAAkB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"DocumentWithHashId.js","sourceRoot":"","sources":["../../../src/Document/DocumentWithHashId.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DocumentWithHashId.js","sourceRoot":"","sources":["../../../src/Document/DocumentWithHashId.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"buildTableSchema.d.ts","sourceRoot":"","sources":["../../../../src/Table/helpers/buildTableSchema.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAwB,MAAM,mBAAmB,CAAC;AAC5E,OAAO,EACL,KAAK,gBAAgB,EAGtB,MAAM,0BAA0B,CAAC;AAyGlC,qDAAqD;AACrD,QAAA,MAAM,gBAAgB,GAAI,8FAMvB,YAAY,KAAG,gBA8BjB,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
1
+ {"version":3,"file":"buildTableSchema.d.ts","sourceRoot":"","sources":["../../../../src/Table/helpers/buildTableSchema.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAwB,MAAM,mBAAmB,CAAC;AAC5E,OAAO,EACL,KAAK,gBAAgB,EAGtB,MAAM,0BAA0B,CAAC;AAmGlC,qDAAqD;AACrD,QAAA,MAAM,gBAAgB,GAAI,8FAMvB,YAAY,KAAG,gBAwCjB,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
@@ -19,9 +19,7 @@ const getAttributeDefinitions = (primaryKey, localSecondaryIndexes, globalSecond
19
19
  for (const globalIndexKey in globalSecondaryIndexes) {
20
20
  const { partitionKey, sortKey } = globalSecondaryIndexes[globalIndexKey];
21
21
  attributes.push(partitionKey);
22
- if (sortKey) {
23
- attributes.push(sortKey);
24
- }
22
+ attributes.push(sortKey);
25
23
  }
26
24
  attributes = (0, lodash_1.uniq)(attributes);
27
25
  const AttributeDefinitions = attributes
@@ -39,13 +37,11 @@ const getSecondaryIndex = (IndexName, partitionKey, sortKey) => {
39
37
  KeyType: 'HASH',
40
38
  AttributeName: partitionKey
41
39
  },
42
- ];
43
- if (sortKey) {
44
- KeySchema.push({
40
+ {
45
41
  KeyType: 'RANGE',
46
42
  AttributeName: sortKey
47
- });
48
- }
43
+ },
44
+ ];
49
45
  const index = {
50
46
  IndexName,
51
47
  KeySchema,
@@ -84,9 +80,15 @@ const buildTableSchema = ({ name: TableName, primaryKey, isLocalhost, localSecon
84
80
  TableName,
85
81
  KeySchema,
86
82
  AttributeDefinitions,
87
- LocalSecondaryIndexes,
88
- GlobalSecondaryIndexes,
89
83
  };
84
+ const hasLocalSecondaryIndexes = LocalSecondaryIndexes.length > 0;
85
+ if (hasLocalSecondaryIndexes) {
86
+ schema.LocalSecondaryIndexes = LocalSecondaryIndexes;
87
+ }
88
+ const hasGlobalSecondaryIndexes = GlobalSecondaryIndexes.length > 0;
89
+ if (hasGlobalSecondaryIndexes) {
90
+ schema.GlobalSecondaryIndexes = GlobalSecondaryIndexes;
91
+ }
90
92
  /* istanbul ignore else */
91
93
  if (isLocalhost) {
92
94
  schema.ProvisionedThroughput = ProvisionedThroughput;
@@ -1 +1 @@
1
- {"version":3,"file":"buildTableSchema.js","sourceRoot":"","sources":["../../../../src/Table/helpers/buildTableSchema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"buildTableSchema.js","sourceRoot":"","sources":["../../../../src/Table/helpers/buildTableSchema.ts"],"names":[],"mappings":";;AAAA,mCAA8B;AAQ9B,MAAM,qBAAqB,GAAG;IAC5B,iBAAiB,EAAE,CAAC;IACpB,kBAAkB,EAAE,CAAC;CACtB,CAAC;AAEF,MAAM,UAAU,GAAG;IACjB,cAAc,EAAE,KAAK;CACtB,CAAC;AAEF,sDAAsD;AACtD,MAAM,uBAAuB,GAAG,CAC9B,UAAsB,EACtB,qBAA4B,EAC5B,sBAA6B,EAC7B,EAAE;IACF,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,GAAG,UAAU,CAAC;IAE7C,IAAI,UAAU,GAAG,CAAE,YAAY,EAAE,OAAO,CAAE,CAAC;IAE3C,KAAK,MAAM,aAAa,IAAI,qBAAqB,EAAE,CAAC;QAClD,MAAM,EAAE,OAAO,EAAE,GAAG,qBAAqB,CAAC,aAAa,CAAC,CAAC;QAEzD,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC3B,CAAC;IAED,KAAK,MAAM,cAAc,IAAI,sBAAsB,EAAE,CAAC;QACpD,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,GAAG,sBAAsB,CAAC,cAAc,CAAC,CAAC;QAEzE,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC9B,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC3B,CAAC;IAED,UAAU,GAAG,IAAA,aAAI,EAAC,UAAU,CAAC,CAAC;IAE9B,MAAM,oBAAoB,GAAG,UAAU;SACpC,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;QACrB,uDAAuD;QACvD,aAAa,EAAE,GAAG;QAClB,aAAa;KACd,CAAC,CAAC,CAAC;IAEN,OAAO,oBAAoB,CAAC;AAC9B,CAAC,CAAC;AAEF,+BAA+B;AAC/B,MAAM,iBAAiB,GAAG,CACxB,SAAiB,EACjB,YAAoB,EACpB,OAAgB,EAChB,EAAE;IACF,MAAM,SAAS,GAAG;QAChB;YACE,OAAO,EAAE,MAAM;YACf,aAAa,EAAE,YAAY;SAC5B;QACD;YACE,OAAO,EAAE,OAAO;YAChB,aAAa,EAAE,OAAO;SACvB;KACF,CAAC;IAEF,MAAM,KAAK,GAAG;QACZ,SAAS;QACT,SAAS;QACT,UAAU;KACmC,CAAC;IAEhD,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEF,mDAAmD;AACnD,MAAM,wBAAwB,GAAG,CAC/B,YAAoB,EACpB,qBAA4B,EACL,EAAE;IACzB,MAAM,OAAO,GAAG,qBAAqB;SAClC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC,CAAC;IAE9E,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAEF,oDAAoD;AACpD,MAAM,yBAAyB,GAAG,CAAC,sBAA6B,EAAE,WAAoB,EAAE,EAAE;IACxF,MAAM,OAAO,GAAG,sBAAsB;SACnC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,EAAE,EAAE,CACvC,iBAAiB,CAAC,IAAI,EAAE,YAAY,EAAE,OAAO,CAAC,CACrB,CAAC;IAE9B,0BAA0B;IAC1B,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,qBAAqB,GAAG,qBAAqB,CAAC,CAAC;IAC9E,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAEF,qDAAqD;AACrD,MAAM,gBAAgB,GAAG,CAAC,EACxB,IAAI,EAAE,SAAS,EACf,UAAU,EACV,WAAW,EACX,qBAAqB,EACrB,sBAAsB,GACT,EAAoB,EAAE;IACnC,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,GAAG,UAAU,CAAC;IAE7C,MAAM,oBAAoB,GAAG,uBAAuB,CAAC,UAAU,EAAE,qBAAqB,EAAE,sBAAsB,CAAC,CAAC;IAChH,MAAM,qBAAqB,GAAG,wBAAwB,CAAC,YAAY,EAAE,qBAAqB,CAAC,CAAC;IAC5F,MAAM,sBAAsB,GAAG,yBAAyB,CAAC,sBAAsB,EAAE,WAAW,CAAC,CAAC;IAE9F,MAAM,SAAS,GAAG;QAChB,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,YAAY,EAAE;QAChD,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE;KAC7C,CAAC;IAEF,MAAM,MAAM,GAAG;QACb,SAAS;QACT,SAAS;QACT,oBAAoB;KACD,CAAC;IAEtB,MAAM,wBAAwB,GAAG,qBAAqB,CAAC,MAAM,GAAG,CAAC,CAAC;IAElE,IAAI,wBAAwB,EAAE,CAAC;QAC7B,MAAM,CAAC,qBAAqB,GAAG,qBAAqB,CAAC;IACvD,CAAC;IAED,MAAM,yBAAyB,GAAG,sBAAsB,CAAC,MAAM,GAAG,CAAC,CAAC;IAEpE,IAAI,yBAAyB,EAAE,CAAC;QAC9B,MAAM,CAAC,sBAAsB,GAAG,sBAAsB,CAAC;IACzD,CAAC;IAED,0BAA0B;IAC1B,IAAI,WAAW,EAAE,CAAC;QAChB,MAAM,CAAC,qBAAqB,GAAG,qBAAqB,CAAC;IAEvD,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,WAAW,GAAG,iBAAiB,CAAC;IAEzC,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF,kBAAe,gBAAgB,CAAC"}
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@kravc/dos-dynamodb",
3
- "version": "1.0.0-alpha.4",
3
+ "version": "1.0.0-alpha.6",
4
4
  "description": "CRUD interface for DynamoDB table to be used with @kravc/dos service.",
5
5
  "main": "dist/src/index.js",
6
6
  "types": "dist/src/index.d.ts",
7
7
  "repository": {
8
8
  "type": "git",
9
- "url": "git+ssh://git@github.com/alexkravets/dos-dynamodb.git"
9
+ "url": "git+ssh://git@github.com/slatstudio/dos-dynamodb.git"
10
10
  },
11
11
  "directories": {
12
12
  "src": "src"
@@ -11,7 +11,7 @@ const DEFAULT_NUMBER_KEY = 'number';
11
11
  class DocumentWithHashId<T> extends Document<T> {
12
12
  /** Returns salt for hash ID method. */
13
13
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
14
- static getSalt<T>(_context: Context, _attributes: T): string {
14
+ static getSalt(_context: Context, _attributes: unknown): string {
15
15
  return this.name;
16
16
  };
17
17
 
@@ -2,18 +2,23 @@ import getTableOptions from '../getTableOptions';
2
2
  import buildTableSchema from '../buildTableSchema';
3
3
 
4
4
  describe('buildTableSchema(tableOptions)', () => {
5
- it('supports global secondary indexes without a sort key', () => {
5
+ it('supports no global secondary indexes', () => {
6
6
  const tableOptions = getTableOptions('partition', 'id');
7
7
 
8
- tableOptions.globalSecondaryIndexes = [
9
- {
10
- name: 'gsiTest',
11
- partitionKey: 'gsiPartitionKey',
12
- }
13
- ];
8
+ tableOptions.globalSecondaryIndexes = [];
14
9
 
15
10
  const tableSchema = buildTableSchema(tableOptions);
16
11
 
17
- expect(tableSchema.GlobalSecondaryIndexes).toHaveLength(1);
12
+ expect(tableSchema.GlobalSecondaryIndexes).toBeUndefined();
13
+ });
14
+
15
+ it('supports no local secondary indexes', () => {
16
+ const tableOptions = getTableOptions('partition', 'id');
17
+
18
+ tableOptions.localSecondaryIndexes = [];
19
+
20
+ const tableSchema = buildTableSchema(tableOptions);
21
+
22
+ expect(tableSchema.LocalSecondaryIndexes).toBeUndefined();
18
23
  });
19
24
  });
@@ -35,10 +35,7 @@ const getAttributeDefinitions = (
35
35
  const { partitionKey, sortKey } = globalSecondaryIndexes[globalIndexKey];
36
36
 
37
37
  attributes.push(partitionKey);
38
-
39
- if (sortKey) {
40
- attributes.push(sortKey);
41
- }
38
+ attributes.push(sortKey);
42
39
  }
43
40
 
44
41
  attributes = uniq(attributes);
@@ -64,14 +61,11 @@ const getSecondaryIndex = (
64
61
  KeyType: 'HASH',
65
62
  AttributeName: partitionKey
66
63
  },
67
- ];
68
-
69
- if (sortKey) {
70
- KeySchema.push({
64
+ {
71
65
  KeyType: 'RANGE',
72
66
  AttributeName: sortKey
73
- });
74
- }
67
+ },
68
+ ];
75
69
 
76
70
  const index = {
77
71
  IndexName,
@@ -132,10 +126,20 @@ const buildTableSchema = ({
132
126
  TableName,
133
127
  KeySchema,
134
128
  AttributeDefinitions,
135
- LocalSecondaryIndexes,
136
- GlobalSecondaryIndexes,
137
129
  } as CreateTableInput;
138
130
 
131
+ const hasLocalSecondaryIndexes = LocalSecondaryIndexes.length > 0;
132
+
133
+ if (hasLocalSecondaryIndexes) {
134
+ schema.LocalSecondaryIndexes = LocalSecondaryIndexes;
135
+ }
136
+
137
+ const hasGlobalSecondaryIndexes = GlobalSecondaryIndexes.length > 0;
138
+
139
+ if (hasGlobalSecondaryIndexes) {
140
+ schema.GlobalSecondaryIndexes = GlobalSecondaryIndexes;
141
+ }
142
+
139
143
  /* istanbul ignore else */
140
144
  if (isLocalhost) {
141
145
  schema.ProvisionedThroughput = ProvisionedThroughput;