@kravc/dos-dynamodb 1.0.0-alpha.3 → 1.0.0-alpha.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/bin/table.js CHANGED
@@ -2,11 +2,6 @@
2
2
 
3
3
  'use strict';
4
4
 
5
- // eslint-disable-next-line @typescript-eslint/no-require-imports
6
- const { Table } = require('../dist/src');
7
- // eslint-disable-next-line @typescript-eslint/no-require-imports
8
- const { exec } = require('child_process');
9
-
10
5
  const command = process.argv[2];
11
6
  const isInvalidCommand = ![ 'up', 'create', 'delete', 'reset' ].includes(command);
12
7
 
@@ -28,6 +23,12 @@ if (env) {
28
23
  process.env.NODE_APP_INSTANCE = env;
29
24
  }
30
25
 
26
+ // NOTE: It's important to require Table module after env has been adjusted:
27
+ // eslint-disable-next-line @typescript-eslint/no-require-imports
28
+ const { Table } = require('../dist/src');
29
+ // eslint-disable-next-line @typescript-eslint/no-require-imports
30
+ const { exec } = require('child_process');
31
+
31
32
  /** Runs an action for a table. */
32
33
  const _action = async (methodName) => {
33
34
  const table = new Table({
@@ -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":"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"}
@@ -37,7 +37,7 @@ const getTableOptions = (partitionKey, sortKey) => {
37
37
  tableOptions.indexKeys = indexKeys;
38
38
  tableOptions.primaryKey = primaryKey;
39
39
  tableOptions.isLocalhost = region === exports.LOCAL_REGION;
40
- tableOptions.localSecondaryIndexes = (0, lodash_1.get)(config_1.default, 'localSecondaryIndexes', [
40
+ tableOptions.localSecondaryIndexes = (0, lodash_1.get)(tableConfig, 'localSecondaryIndexes', [
41
41
  {
42
42
  name: 'lsi1',
43
43
  sortKey: '_lsi1SortKey',
@@ -51,7 +51,7 @@ const getTableOptions = (partitionKey, sortKey) => {
51
51
  sortKey: '_lsi3SortKey',
52
52
  },
53
53
  ]);
54
- tableOptions.globalSecondaryIndexes = (0, lodash_1.get)(config_1.default, 'globalSecondaryIndexes', [
54
+ tableOptions.globalSecondaryIndexes = (0, lodash_1.get)(tableConfig, 'globalSecondaryIndexes', [
55
55
  {
56
56
  name: 'gsi1',
57
57
  partitionKey: '_gsi1PartitionKey',
@@ -1 +1 @@
1
- {"version":3,"file":"getTableOptions.js","sourceRoot":"","sources":["../../../../src/Table/helpers/getTableOptions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"getTableOptions.js","sourceRoot":"","sources":["../../../../src/Table/helpers/getTableOptions.ts"],"names":[],"mappings":";;;;;;AAAA,oDAA4B;AAC5B,oCAAiC;AACjC,mCAA6B;AAC7B,yCAAiC;AACjC,qCAAuC;AAE1B,QAAA,YAAY,GAAG,OAAO,CAAC;AACpC,MAAM,eAAe,GAAG,SAAS,CAAC;AAiDlC,kCAAkC;AAClC,MAAM,cAAc,GAAG,GAAW,EAAE;IAClC,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAChC,MAAM,EAAE,iBAAiB,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC;IAE1C,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,CACzB,IAAA,sBAAY,EAAC,IAAA,gBAAI,EAAC,SAAS,EAAE,cAAc,CAAC,EAAE,OAAO,CAAC,CAClC,CAAC;IAEvB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAEvD,OAAO,CAAE,MAAM,EAAE,iBAAiB,CAAE,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC1E,CAAC,CAAC;AAEF,mDAAmD;AACnD,MAAM,eAAe,GAAG,CAAC,YAAoB,EAAE,OAAe,EAAgB,EAAE;IAC9E,MAAM,WAAW,GAAG,gBAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAC3C,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAiB,CAAC;IAE7E,MAAM,IAAI,GAAG,IAAA,YAAG,EAAC,WAAW,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC,CAAC;IACxD,MAAM,SAAS,GAAG,IAAA,YAAG,EAAC,WAAW,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC;IAEpD,MAAM,MAAM,GAAG,IAAA,YAAG,EAAC,gBAAM,EAAE,YAAY,EAAE,oBAAY,CAAC,CAAC;IACvD,MAAM,OAAO,GAAG,IAAA,YAAG,EAAC,gBAAM,EAAE,aAAa,EAAE,eAAe,CAAC,CAAC;IAE5D,MAAM,UAAU,GAAG;QACjB,OAAO;QACP,YAAY;KACb,CAAC;IAEF,YAAY,CAAC,IAAI,GAAG,IAAI,CAAC;IACzB,YAAY,CAAC,MAAM,GAAG,MAAM,CAAC;IAC7B,YAAY,CAAC,OAAO,GAAG,OAAO,CAAC;IAC/B,YAAY,CAAC,SAAS,GAAG,SAAS,CAAC;IACnC,YAAY,CAAC,UAAU,GAAG,UAAU,CAAC;IACrC,YAAY,CAAC,WAAW,GAAG,MAAM,KAAK,oBAAY,CAAC;IAEnD,YAAY,CAAC,qBAAqB,GAAG,IAAA,YAAG,EAAC,WAAW,EAAE,uBAAuB,EAAE;QAC7E;YACE,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,cAAc;SACxB;QACD;YACE,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,cAAc;SACxB;QACD;YACE,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,cAAc;SACxB;KACF,CAAU,CAAC;IAEZ,YAAY,CAAC,sBAAsB,GAAG,IAAA,YAAG,EAAC,WAAW,EAAE,wBAAwB,EAAE;QAC/E;YACE,IAAI,EAAE,MAAM;YACZ,YAAY,EAAE,mBAAmB;YACjC,OAAO,EAAE,cAAc;SACxB;QACD;YACE,IAAI,EAAE,MAAM;YACZ,YAAY,EAAE,mBAAmB;YACjC,OAAO,EAAE,cAAc;SACxB;QACD;YACE,IAAI,EAAE,MAAM;YACZ,YAAY,EAAE,mBAAmB;YACjC,OAAO,EAAE,cAAc;SACxB;KACF,CAAU,CAAC;IAEZ,yDAAyD;IACzD,MAAM,wBAAwB,GAAG,CAAC,SAAiB,EAAU,EAAE;QAC7D,MAAM,EAAE,qBAAqB,EAAE,GAAG,YAAY,CAAC;QAE/C,MAAM,KAAK,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;QAC3E,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,qBAAqB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAEnE,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,0BAA0B,SAAS,oCAAoC,WAAW,EAAE,CAAC,CAAC;QACxG,CAAC;QAED,OAAO,IAAA,SAAG,EAAC,KAAK,EAAE,SAAS,CAAW,CAAC;IACzC,CAAC,CAAC;IAEF,+DAA+D;IAC/D,MAAM,8BAA8B,GAAG,CAAC,SAAiB,EAAU,EAAE;QACnE,MAAM,EAAE,sBAAsB,EAAE,GAAG,YAAY,CAAC;QAEhD,MAAM,KAAK,GAAG,sBAAsB,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;QAC5E,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,sBAAsB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAEpE,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,2BAA2B,SAAS,qCAAqC,WAAW,EAAE,CAAC,CAAC;QAC1G,CAAC;QAED,OAAO,IAAA,SAAG,EAAC,KAAK,EAAE,cAAc,CAAW,CAAC;IAC9C,CAAC,CAAC;IAEF,0DAA0D;IAC1D,MAAM,yBAAyB,GAAG,CAAC,SAAiB,EAAU,EAAE;QAC9D,MAAM,EAAE,sBAAsB,EAAE,GAAG,YAAY,CAAC;QAEhD,MAAM,KAAK,GAAG,sBAAsB,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;QAC5E,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,sBAAsB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAEpE,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,2BAA2B,SAAS,qCAAqC,WAAW,EAAE,CAAC,CAAC;QAC1G,CAAC;QAED,OAAO,IAAA,SAAG,EAAC,KAAK,EAAE,SAAS,CAAW,CAAC;IACzC,CAAC,CAAC;IAEF,mGAAmG;IACnG,MAAM,qBAAqB,GAAG,CAAC,SAAiB,EAAW,EAAE;QAC3D,MAAM,EACJ,qBAAqB,EACrB,sBAAsB,EACvB,GAAG,YAAY,CAAC;QAEjB,MAAM,GAAG,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;QAEzE,IAAI,GAAG,EAAE,CAAC;YACR,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,GAAG,GAAG,sBAAsB,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;QAE1E,IAAI,GAAG,EAAE,CAAC;YACR,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAC/F,MAAM,IAAI,KAAK,CAAC,UAAU,SAAS,8BAA8B,WAAW,EAAE,CAAC,CAAC;IAClF,CAAC,CAAC;IAEF,+CAA+C;IAC/C,MAAM,kBAAkB,GAAG,CAAC,SAAiB,EAAmB,EAAE;QAChE,qBAAqB,CAAC,SAAS,CAAC,CAAC;QAEjC,MAAM,WAAW,GAAG,wBAAwB,CAAC,SAAS,CAAC,CAAC;QAExD,OAAO;YACL,SAAS;YACT,WAAW;SACZ,CAAC;IACJ,CAAC,CAAC;IAEF,gDAAgD;IAChD,MAAM,mBAAmB,GAAG,CAAC,SAAiB,EAAoB,EAAE;QAClE,qBAAqB,CAAC,SAAS,CAAC,CAAC;QAEjC,MAAM,WAAW,GAAG,yBAAyB,CAAC,SAAS,CAAC,CAAC;QACzD,MAAM,gBAAgB,GAAG,8BAA8B,CAAC,SAAS,CAAC,CAAC;QAEnE,OAAO;YACL,SAAS;YACT,WAAW;YACX,gBAAgB;SACjB,CAAC;IACJ,CAAC,CAAC;IAEF,YAAY,CAAC,wBAAwB,GAAG,wBAAwB,CAAC;IACjE,YAAY,CAAC,8BAA8B,GAAG,8BAA8B,CAAC;IAC7E,YAAY,CAAC,yBAAyB,GAAG,yBAAyB,CAAC;IACnE,YAAY,CAAC,qBAAqB,GAAG,qBAAqB,CAAC;IAC3D,YAAY,CAAC,mBAAmB,GAAG,mBAAmB,CAAC;IACvD,YAAY,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;IAErD,OAAO,YAAY,CAAC;AACtB,CAAC,CAAC;AAEF,kBAAe,eAAe,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kravc/dos-dynamodb",
3
- "version": "1.0.0-alpha.3",
3
+ "version": "1.0.0-alpha.5",
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",
@@ -2,18 +2,38 @@ 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 global secondary indexes without a sort key', () => {
6
+ // const tableOptions = getTableOptions('partition', 'id');
7
+
8
+ // tableOptions.globalSecondaryIndexes = [
9
+ // {
10
+ // name: 'gsiTest',
11
+ // partitionKey: 'gsiPartitionKey',
12
+ // }
13
+ // ];
14
+
15
+ // const tableSchema = buildTableSchema(tableOptions);
16
+
17
+ // expect(tableSchema.GlobalSecondaryIndexes).toHaveLength(1);
18
+ // });
19
+
20
+ it('supports no global secondary indexes', () => {
21
+ const tableOptions = getTableOptions('partition', 'id');
22
+
23
+ tableOptions.globalSecondaryIndexes = [];
24
+
25
+ const tableSchema = buildTableSchema(tableOptions);
26
+
27
+ expect(tableSchema.GlobalSecondaryIndexes).toBeUndefined();
28
+ });
29
+
30
+ it('supports no local secondary indexes', () => {
6
31
  const tableOptions = getTableOptions('partition', 'id');
7
32
 
8
- tableOptions.globalSecondaryIndexes = [
9
- {
10
- name: 'gsiTest',
11
- partitionKey: 'gsiPartitionKey',
12
- }
13
- ];
33
+ tableOptions.localSecondaryIndexes = [];
14
34
 
15
35
  const tableSchema = buildTableSchema(tableOptions);
16
36
 
17
- expect(tableSchema.GlobalSecondaryIndexes).toHaveLength(1);
37
+ expect(tableSchema.LocalSecondaryIndexes).toBeUndefined();
18
38
  });
19
39
  });
@@ -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;
@@ -91,7 +91,7 @@ const getTableOptions = (partitionKey: string, sortKey: string): TableOptions =>
91
91
  tableOptions.primaryKey = primaryKey;
92
92
  tableOptions.isLocalhost = region === LOCAL_REGION;
93
93
 
94
- tableOptions.localSecondaryIndexes = get(config, 'localSecondaryIndexes', [
94
+ tableOptions.localSecondaryIndexes = get(tableConfig, 'localSecondaryIndexes', [
95
95
  {
96
96
  name: 'lsi1',
97
97
  sortKey: '_lsi1SortKey',
@@ -106,7 +106,7 @@ const getTableOptions = (partitionKey: string, sortKey: string): TableOptions =>
106
106
  },
107
107
  ]) as LSI[];
108
108
 
109
- tableOptions.globalSecondaryIndexes = get(config, 'globalSecondaryIndexes', [
109
+ tableOptions.globalSecondaryIndexes = get(tableConfig, 'globalSecondaryIndexes', [
110
110
  {
111
111
  name: 'gsi1',
112
112
  partitionKey: '_gsi1PartitionKey',