@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 +6 -5
- package/dist/src/Table/helpers/buildTableSchema.d.ts.map +1 -1
- package/dist/src/Table/helpers/buildTableSchema.js +12 -10
- package/dist/src/Table/helpers/buildTableSchema.js.map +1 -1
- package/dist/src/Table/helpers/getTableOptions.js +2 -2
- package/dist/src/Table/helpers/getTableOptions.js.map +1 -1
- package/package.json +1 -1
- package/src/Table/helpers/__tests__/buildTableSchema.test.ts +28 -8
- package/src/Table/helpers/buildTableSchema.ts +16 -12
- package/src/Table/helpers/getTableOptions.ts +2 -2
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;
|
|
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
|
-
|
|
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":";;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;
|
|
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)(
|
|
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)(
|
|
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":";;;;;;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,
|
|
1
|
+
{"version":3,"file":"getTableOptions.js","sourceRoot":"","sources":["../../../../src/Table/helpers/getTableOptions.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -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.
|
|
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.
|
|
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(
|
|
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(
|
|
109
|
+
tableOptions.globalSecondaryIndexes = get(tableConfig, 'globalSecondaryIndexes', [
|
|
110
110
|
{
|
|
111
111
|
name: 'gsi1',
|
|
112
112
|
partitionKey: '_gsi1PartitionKey',
|