@goldstack/template-dynamodb 0.3.16 → 0.3.18
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/dist/src/dynamoDBData.d.ts.map +1 -1
- package/dist/src/dynamoDBData.js +4 -3
- package/dist/src/dynamoDBData.js.map +1 -1
- package/dist/src/dynamoDBMigrations.d.ts.map +1 -1
- package/dist/src/dynamoDBMigrations.js +7 -1
- package/dist/src/dynamoDBMigrations.js.map +1 -1
- package/dist/src/dynamoDBPackageUtils.js +1 -1
- package/dist/src/dynamoDBPackageUtils.js.map +1 -1
- package/dist/src/localDynamoDB.d.ts +1 -3
- package/dist/src/localDynamoDB.d.ts.map +1 -1
- package/dist/src/localDynamoDB.js +33 -22
- package/dist/src/localDynamoDB.js.map +1 -1
- package/dist/src/templateDynamoDBTable.d.ts.map +1 -1
- package/dist/src/templateDynamoDBTable.js +7 -5
- package/dist/src/templateDynamoDBTable.js.map +1 -1
- package/dist/src/testUtils/testMigrations.d.ts +7 -0
- package/dist/src/testUtils/testMigrations.d.ts.map +1 -0
- package/dist/src/testUtils/testMigrations.js +34 -0
- package/dist/src/testUtils/testMigrations.js.map +1 -0
- package/package.json +10 -7
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dynamoDBData.d.ts","sourceRoot":"","sources":["../../src/dynamoDBData.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,0CAA0C,CAAC;AACjF,OAAO,EAIL,cAAc,EAGf,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"dynamoDBData.d.ts","sourceRoot":"","sources":["../../src/dynamoDBData.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,0CAA0C,CAAC;AACjF,OAAO,EAIL,cAAc,EAGf,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AASzE,wBAAsB,iBAAiB,CACrC,aAAa,EAAE,qBAAqB,CAAC,eAAe,EAAE,kBAAkB,CAAC,EACzE,cAAc,EAAE,MAAM,EACtB,MAAM,EAAE,cAAc,GACrB,OAAO,CAAC,IAAI,CAAC,CA2Bf;AAED,eAAO,MAAM,WAAW,kBACP,sBAAsB,eAAe,EAAE,kBAAkB,CAAC,kBACzD,MAAM,UACd,cAAc,KACrB,QAAQ,IAAI,CA4Cd,CAAC;AAEF,eAAO,MAAM,WAAW,kBACP,sBAAsB,eAAe,EAAE,kBAAkB,CAAC,kBACzD,MAAM,UACd,cAAc,KACrB,QAAQ,IAAI,CAqBd,CAAC"}
|
package/dist/src/dynamoDBData.js
CHANGED
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.deleteTable = exports.assertTable = exports.assertTableActive = void 0;
|
|
4
4
|
const client_dynamodb_1 = require("@aws-sdk/client-dynamodb");
|
|
5
5
|
const dynamoDBPackageUtils_1 = require("./dynamoDBPackageUtils");
|
|
6
|
+
const utils_log_1 = require("@goldstack/utils-log");
|
|
6
7
|
function sleep(ms) {
|
|
7
8
|
return new Promise((resolve) => {
|
|
8
9
|
setTimeout(resolve, ms);
|
|
@@ -22,9 +23,9 @@ async function assertTableActive(packageConfig, deploymentName, client) {
|
|
|
22
23
|
tableStatus = (_a = tableInfo.Table) === null || _a === void 0 ? void 0 : _a.TableStatus;
|
|
23
24
|
}
|
|
24
25
|
catch (e) {
|
|
25
|
-
|
|
26
|
+
(0, utils_log_1.warn)(`Error retrieving table information: ${e.code}.\n${e}`);
|
|
26
27
|
}
|
|
27
|
-
|
|
28
|
+
(0, utils_log_1.debug)(`DynamoDB table '${tableName}' created. Current table status: ${tableStatus}. Retries: ${retries}`);
|
|
28
29
|
await sleep(1000);
|
|
29
30
|
retries++;
|
|
30
31
|
}
|
|
@@ -62,7 +63,7 @@ const assertTable = async (packageConfig, deploymentName, client) => {
|
|
|
62
63
|
await new Promise((resolve, reject) => {
|
|
63
64
|
res
|
|
64
65
|
.then(async () => {
|
|
65
|
-
|
|
66
|
+
(0, utils_log_1.debug)(`DynamoDB table '${tableName}' created.`);
|
|
66
67
|
resolve();
|
|
67
68
|
})
|
|
68
69
|
.catch((e) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dynamoDBData.js","sourceRoot":"","sources":["../../src/dynamoDBData.ts"],"names":[],"mappings":";;;AACA,8DAOkC;AAClC,iEAAsD;
|
|
1
|
+
{"version":3,"file":"dynamoDBData.js","sourceRoot":"","sources":["../../src/dynamoDBData.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dynamoDBMigrations.d.ts","sourceRoot":"","sources":["../../src/dynamoDBMigrations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,0CAA0C,CAAC;AACjF,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE1D,OAAO,eAAe,EAAE,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"dynamoDBMigrations.d.ts","sourceRoot":"","sources":["../../src/dynamoDBMigrations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,0CAA0C,CAAC;AACjF,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE1D,OAAO,eAAe,EAAE,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAI9E,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAGlD,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,cAAc,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,eAAO,MAAM,iBAAiB,kBACb,sBAAsB,eAAe,EAAE,kBAAkB,CAAC,kBACzD,MAAM,cACV,gBAAgB,eAAe,CAAC,UACpC,cAAc,KACrB,QAAQ,IAAI,CASd,CAAC;AAEF,eAAO,MAAM,aAAa,kBACT,MAAM,iBACN,sBAAsB,eAAe,EAAE,kBAAkB,CAAC,kBACzD,MAAM,cACV,gBAAgB,eAAe,CAAC,UACpC,cAAc,KACrB,QAAQ,IAAI,CASd,CAAC"}
|
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.migrateDownTo = exports.performMigrations = void 0;
|
|
4
4
|
const dynamoDBPackageUtils_1 = require("./dynamoDBPackageUtils");
|
|
5
5
|
const umzugDynamoDBStorage_1 = require("./umzugDynamoDBStorage");
|
|
6
|
+
const utils_log_1 = require("@goldstack/utils-log");
|
|
6
7
|
const umzug_1 = require("umzug");
|
|
7
8
|
const performMigrations = async (packageConfig, deploymentName, migrations, client) => {
|
|
8
9
|
const umzug = await initUmzug(packageConfig, deploymentName, client, migrations);
|
|
@@ -26,7 +27,12 @@ async function initUmzug(packageConfig, deploymentName, client, migrations) {
|
|
|
26
27
|
client,
|
|
27
28
|
tableName,
|
|
28
29
|
},
|
|
29
|
-
logger:
|
|
30
|
+
logger: {
|
|
31
|
+
debug: (message) => (0, utils_log_1.debug)(JSON.stringify(message)),
|
|
32
|
+
warn: (message) => (0, utils_log_1.debug)(JSON.stringify(message)),
|
|
33
|
+
info: (message) => (0, utils_log_1.info)(`Migrating ${tableName} ${message.name ? message.name : ''}`, message),
|
|
34
|
+
error: (message) => (0, utils_log_1.error)(JSON.stringify(message)),
|
|
35
|
+
},
|
|
30
36
|
storage: storage,
|
|
31
37
|
});
|
|
32
38
|
return umzug;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dynamoDBMigrations.js","sourceRoot":"","sources":["../../src/dynamoDBMigrations.ts"],"names":[],"mappings":";;;AAEA,iEAAsD;AAEtD,iEAAyD;
|
|
1
|
+
{"version":3,"file":"dynamoDBMigrations.js","sourceRoot":"","sources":["../../src/dynamoDBMigrations.ts"],"names":[],"mappings":";;;AAEA,iEAAsD;AAEtD,iEAAyD;AACzD,oDAA0D;AAG1D,iCAA8B;AAOvB,MAAM,iBAAiB,GAAG,KAAK,EACpC,aAAyE,EACzE,cAAsB,EACtB,UAA4C,EAC5C,MAAsB,EACP,EAAE;IACjB,MAAM,KAAK,GAAG,MAAM,SAAS,CAC3B,aAAa,EACb,cAAc,EACd,MAAM,EACN,UAAU,CACX,CAAC;IAEF,MAAM,KAAK,CAAC,EAAE,EAAE,CAAC;AACnB,CAAC,CAAC;AAdW,QAAA,iBAAiB,qBAc5B;AAEK,MAAM,aAAa,GAAG,KAAK,EAChC,aAAqB,EACrB,aAAyE,EACzE,cAAsB,EACtB,UAA4C,EAC5C,MAAsB,EACP,EAAE;IACjB,MAAM,KAAK,GAAG,MAAM,SAAS,CAC3B,aAAa,EACb,cAAc,EACd,MAAM,EACN,UAAU,CACX,CAAC;IAEF,MAAM,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,aAAa,EAAE,CAAC,CAAC;AAC1C,CAAC,CAAC;AAfW,QAAA,aAAa,iBAexB;AAEF,KAAK,UAAU,SAAS,CACtB,aAAyE,EACzE,cAAsB,EACtB,MAAsB,EACtB,UAA4C;IAE5C,MAAM,SAAS,GAAG,MAAM,IAAA,mCAAY,EAAC,aAAa,EAAE,cAAc,CAAC,CAAC;IACpE,MAAM,OAAO,GAAG,IAAI,sCAAe,CAAC;QAClC,QAAQ,EAAE,MAAM;QAChB,SAAS;KACV,CAAC,CAAC;IAEH,MAAM,KAAK,GAAG,IAAI,aAAK,CAAkB;QACvC,UAAU,EAAE,UAAU;QACtB,OAAO,EAAE;YACP,MAAM;YACN,SAAS;SACV;QACD,MAAM,EAAE;YACN,KAAK,EAAE,CAAC,OAAgC,EAAE,EAAE,CAC1C,IAAA,iBAAK,EAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YAChC,IAAI,EAAE,CAAC,OAAgC,EAAE,EAAE,CACzC,IAAA,iBAAK,EAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YAChC,IAAI,EAAE,CAAC,OAAgC,EAAE,EAAE,CACzC,IAAA,gBAAI,EACF,aAAa,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,EAC5D,OAAO,CACR;YACH,KAAK,EAAE,CAAC,OAAgC,EAAE,EAAE,CAC1C,IAAA,iBAAK,EAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;SACjC;QACD,OAAO,EAAE,OAAO;KACjB,CAAC,CAAC;IACH,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -8,7 +8,7 @@ const assert_1 = __importDefault(require("assert"));
|
|
|
8
8
|
const getTableName = async (packageConfig, deploymentName) => {
|
|
9
9
|
deploymentName = (0, exports.getDeploymentName)(deploymentName);
|
|
10
10
|
if (deploymentName === 'local') {
|
|
11
|
-
return
|
|
11
|
+
return `${packageConfig.getConfig().name}`;
|
|
12
12
|
}
|
|
13
13
|
const deployment = packageConfig.getDeployment(deploymentName);
|
|
14
14
|
return deployment.configuration.tableName;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dynamoDBPackageUtils.js","sourceRoot":"","sources":["../../src/dynamoDBPackageUtils.ts"],"names":[],"mappings":";;;;;;AAEA,oDAA4B;AAGrB,MAAM,YAAY,GAAG,KAAK,EAC/B,aAAyE,EACzE,cAAuB,EACN,EAAE;IACnB,cAAc,GAAG,IAAA,yBAAiB,EAAC,cAAc,CAAC,CAAC;IACnD,IAAI,cAAc,KAAK,OAAO,EAAE;QAC9B,OAAO,
|
|
1
|
+
{"version":3,"file":"dynamoDBPackageUtils.js","sourceRoot":"","sources":["../../src/dynamoDBPackageUtils.ts"],"names":[],"mappings":";;;;;;AAEA,oDAA4B;AAGrB,MAAM,YAAY,GAAG,KAAK,EAC/B,aAAyE,EACzE,cAAuB,EACN,EAAE;IACnB,cAAc,GAAG,IAAA,yBAAiB,EAAC,cAAc,CAAC,CAAC;IACnD,IAAI,cAAc,KAAK,OAAO,EAAE;QAC9B,OAAO,GAAG,aAAa,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,CAAC;KAC5C;IACD,MAAM,UAAU,GAAG,aAAa,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;IAC/D,OAAO,UAAU,CAAC,aAAa,CAAC,SAAS,CAAC;AAC5C,CAAC,CAAC;AAVW,QAAA,YAAY,gBAUvB;AAEK,MAAM,iBAAiB,GAAG,CAAC,cAAuB,EAAU,EAAE;IACnE,IAAI,CAAC,cAAc,EAAE;QACnB,IAAA,gBAAM,EACJ,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAChC,mIAAmI,CACpI,CAAC;QACF,OAAO,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC;KACzC;IACD,OAAO,cAAc,CAAC;AACxB,CAAC,CAAC;AATW,QAAA,iBAAiB,qBAS5B"}
|
|
@@ -5,9 +5,7 @@ export interface DynamoDBInstance {
|
|
|
5
5
|
port: number;
|
|
6
6
|
stop: () => Promise<void>;
|
|
7
7
|
}
|
|
8
|
-
export declare type LocalConnectType = (packageConfig: EmbeddedPackageConfig<DynamoDBPackage, DynamoDBDeployment>,
|
|
9
|
-
port: number;
|
|
10
|
-
}, deploymentName?: string) => Promise<DynamoDBClient>;
|
|
8
|
+
export declare type LocalConnectType = (packageConfig: EmbeddedPackageConfig<DynamoDBPackage, DynamoDBDeployment>, deploymentName?: string) => Promise<DynamoDBClient>;
|
|
11
9
|
export declare type StartLocalDynamoDBType = (packageConfig: EmbeddedPackageConfig<DynamoDBPackage, DynamoDBDeployment>, options: {
|
|
12
10
|
port: number;
|
|
13
11
|
}, deploymentName?: string) => Promise<DynamoDBInstance>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"localDynamoDB.d.ts","sourceRoot":"","sources":["../../src/localDynamoDB.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,0CAA0C,CAAC;AACjF,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAK1D,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"localDynamoDB.d.ts","sourceRoot":"","sources":["../../src/localDynamoDB.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,0CAA0C,CAAC;AACjF,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAK1D,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AASzE,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3B;AAGD,oBAAY,gBAAgB,GAAG,CAC7B,aAAa,EAAE,qBAAqB,CAAC,eAAe,EAAE,kBAAkB,CAAC,EACzE,cAAc,CAAC,EAAE,MAAM,KACpB,OAAO,CAAC,cAAc,CAAC,CAAC;AAE7B,oBAAY,sBAAsB,GAAG,CACnC,aAAa,EAAE,qBAAqB,CAAC,eAAe,EAAE,kBAAkB,CAAC,EACzE,OAAO,EAAE;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,EACzB,cAAc,CAAC,EAAE,MAAM,KACpB,OAAO,CAAC,gBAAgB,CAAC,CAAC;AAE/B,oBAAY,qBAAqB,GAAG,CAClC,aAAa,EAAE,qBAAqB,CAAC,eAAe,EAAE,kBAAkB,CAAC,EACzE,cAAc,CAAC,EAAE,MAAM,KACpB,OAAO,CAAC,IAAI,CAAC,CAAC;AASnB,eAAO,MAAM,YAAY,EAAE,gBA0B1B,CAAC;AAEF,eAAO,MAAM,WAAW,qBAAsB,gBAAgB,KAAG,MAIhE,CAAC;AAEF,eAAO,MAAM,YAAY,qBACL,gBAAgB,KACjC,cAWF,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,sBAqBhC,CAAC;AA8HF,eAAO,MAAM,iBAAiB,EAAE,qBAgB/B,CAAC"}
|
|
@@ -34,27 +34,33 @@ const dynamoDBPackageUtils_1 = require("./dynamoDBPackageUtils");
|
|
|
34
34
|
const wait_port_1 = __importDefault(require("wait-port"));
|
|
35
35
|
const tcp_port_used_1 = require("tcp-port-used");
|
|
36
36
|
const child_process_1 = require("child_process");
|
|
37
|
+
const utils_log_1 = require("@goldstack/utils-log");
|
|
37
38
|
function areWeTestingWithJest() {
|
|
38
39
|
return process.env.JEST_WORKER_ID !== undefined;
|
|
39
40
|
}
|
|
40
41
|
const startedContainers = new Map();
|
|
41
|
-
const localConnect = async (packageConfig,
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
42
|
+
const localConnect = async (packageConfig, deploymentName) => {
|
|
43
|
+
const tableName = await (0, dynamoDBPackageUtils_1.getTableName)(packageConfig, deploymentName);
|
|
44
|
+
const startedContainer = startedContainers.get(tableName);
|
|
45
|
+
if (areWeTestingWithJest() && !startedContainer) {
|
|
46
|
+
throw new Error('DynamoDB Local has not been started. When running Jest test, start Local DynamoDB explicitly with `startLocalDynamoDB` and shut the instance down with `stopLocalDynamoDB` when tests are completed.');
|
|
47
|
+
}
|
|
48
|
+
if (startedContainer && startedContainer !== 'stopped') {
|
|
49
|
+
(0, utils_log_1.debug)(`Connecting to local DynamoDB instance on port ${startedContainer.port}`);
|
|
50
|
+
return (0, exports.createClient)(startedContainer);
|
|
48
51
|
}
|
|
49
|
-
|
|
52
|
+
const newContainer = await (0, exports.startLocalDynamoDB)(packageConfig, { port: 8000 }, deploymentName);
|
|
53
|
+
return (0, exports.createClient)(newContainer);
|
|
50
54
|
};
|
|
51
55
|
exports.localConnect = localConnect;
|
|
52
56
|
const endpointUrl = (startedContainer) => {
|
|
53
|
-
|
|
57
|
+
const result = `http://127.0.0.1:${startedContainer.port}`;
|
|
58
|
+
return result;
|
|
54
59
|
};
|
|
55
60
|
exports.endpointUrl = endpointUrl;
|
|
56
61
|
const createClient = (startedContainer) => {
|
|
57
62
|
const endpoint = (0, exports.endpointUrl)(startedContainer);
|
|
63
|
+
(0, utils_log_1.debug)(`Connecting to local DynamoDB instance on endpoint: ${endpoint}`);
|
|
58
64
|
return new client_dynamodb_1.DynamoDBClient({
|
|
59
65
|
endpoint,
|
|
60
66
|
region: 'eu-central-1',
|
|
@@ -112,14 +118,14 @@ function killProcess(childProcess) {
|
|
|
112
118
|
childProcess.on('exit', (code, signal) => {
|
|
113
119
|
clearTimeout(timeout);
|
|
114
120
|
clearTimeout(errorTimeout);
|
|
115
|
-
|
|
121
|
+
(0, utils_log_1.debug)(`DynamoDB child process exited with code ${code} and signal ${signal}`);
|
|
116
122
|
resolve();
|
|
117
123
|
});
|
|
118
124
|
});
|
|
119
125
|
}
|
|
120
126
|
const spawnLocalDynamoDB = async (port) => {
|
|
121
127
|
if (await (0, tcp_port_used_1.check)(port)) {
|
|
122
|
-
|
|
128
|
+
(0, utils_log_1.warn)(`Port ${port} is already in use. Assuming another instance of DynamoDB is already running.`);
|
|
123
129
|
return {
|
|
124
130
|
port,
|
|
125
131
|
stop: async () => {
|
|
@@ -128,29 +134,34 @@ const spawnLocalDynamoDB = async (port) => {
|
|
|
128
134
|
};
|
|
129
135
|
}
|
|
130
136
|
if ((0, utils_sh_1.commandExists)('java')) {
|
|
131
|
-
|
|
137
|
+
(0, utils_log_1.info)('Starting local DynamoDB with Java');
|
|
132
138
|
const pr = dynamoDBLocal.spawn({
|
|
133
139
|
port,
|
|
134
140
|
path: null,
|
|
135
141
|
detached: false,
|
|
136
142
|
});
|
|
137
|
-
await
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
143
|
+
await Promise.all([
|
|
144
|
+
await (0, wait_port_1.default)({
|
|
145
|
+
host: 'localhost',
|
|
146
|
+
port,
|
|
147
|
+
}),
|
|
148
|
+
await new Promise((resolve) => {
|
|
149
|
+
pr.stdout.once('data', () => resolve());
|
|
150
|
+
}),
|
|
151
|
+
]);
|
|
152
|
+
(0, utils_log_1.info)('Started local DynamoDB with Java');
|
|
142
153
|
return {
|
|
143
154
|
port,
|
|
144
155
|
stop: async () => {
|
|
145
|
-
|
|
156
|
+
(0, utils_log_1.info)('Stopping local Java DynamoDB');
|
|
146
157
|
try {
|
|
147
158
|
await killProcess(pr);
|
|
148
159
|
}
|
|
149
160
|
catch (e) {
|
|
150
|
-
|
|
161
|
+
(0, utils_log_1.error)('Stopping local Java DynamoDB process not successful');
|
|
151
162
|
throw e;
|
|
152
163
|
}
|
|
153
|
-
|
|
164
|
+
(0, utils_log_1.info)('Local Java DynamoDB stopped');
|
|
154
165
|
},
|
|
155
166
|
};
|
|
156
167
|
}
|
|
@@ -185,10 +196,10 @@ const spawnLocalDynamoDB = async (port) => {
|
|
|
185
196
|
await (0, utils_sh_1.execAsync)(`docker stop ${containerName}`);
|
|
186
197
|
}
|
|
187
198
|
catch (e) {
|
|
188
|
-
|
|
199
|
+
(0, utils_log_1.error)('Stopping local Docker DynamoDB process not successful');
|
|
189
200
|
throw e;
|
|
190
201
|
}
|
|
191
|
-
|
|
202
|
+
(0, utils_log_1.info)('Local Docker DynamoDB stopped');
|
|
192
203
|
},
|
|
193
204
|
};
|
|
194
205
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"localDynamoDB.js","sourceRoot":"","sources":["../../src/localDynamoDB.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,8DAA0D;AAE1D,+DAAiD;AACjD,kDAA+D;AAC/D,iEAAsD;AAEtD,0DAAiC;AACjC,iDAAsC;AACtC,iDAAoD;
|
|
1
|
+
{"version":3,"file":"localDynamoDB.js","sourceRoot":"","sources":["../../src/localDynamoDB.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"templateDynamoDBTable.d.ts","sourceRoot":"","sources":["../../src/templateDynamoDBTable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE1D,OAAO,EAAE,eAAe,EAAsB,MAAM,yBAAyB,CAAC;AAY9E,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EACL,eAAe,EAGhB,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"templateDynamoDBTable.d.ts","sourceRoot":"","sources":["../../src/templateDynamoDBTable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE1D,OAAO,EAAE,eAAe,EAAsB,MAAM,yBAAyB,CAAC;AAY9E,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EACL,eAAe,EAGhB,MAAM,sBAAsB,CAAC;AAmB9B,eAAO,MAAM,YAAY,oBACN,eAAe,GAAG,GAAG,iBACvB,GAAG,mBACD,MAAM,KACtB,QAAQ,MAAM,CAWhB,CAAC;AAEF,eAAO,MAAM,kBAAkB,oBACZ,eAAe,GAAG,GAAG,iBACvB,GAAG,QACZ,MAAM,mBACK,MAAM,KACtB,QAAQ,IAAI,CAgBd,CAAC;AAEF,eAAO,MAAM,iBAAiB,oBACX,eAAe,GAAG,GAAG,iBACvB,GAAG,mBACD,MAAM,KACtB,QAAQ,IAAI,CAmBd,CAAC;AAkCF,eAAO,MAAM,OAAO;qBAMD,eAAe,GAAG,GAAG;mBACvB,GAAG;gBACN,gBAAgB,eAAe,CAAC;;MAE1C,QAAQ,cAAc,CAsBzB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,WAAW;qBAKL,eAAe,GAAG,GAAG;mBACvB,GAAG;;MAEhB,QAAQ,cAAc,CAczB,CAAC;AAEF,eAAO,MAAM,aAAa;mBAOT,MAAM;qBACJ,eAAe,GAAG,GAAG;mBACvB,GAAG;gBACN,gBAAgB,eAAe,CAAC;;MAE1C,QAAQ,cAAc,CAuBzB,CAAC"}
|
|
@@ -8,6 +8,7 @@ const dynamoDBData_1 = require("./dynamoDBData");
|
|
|
8
8
|
const dynamoDBMigrations_1 = require("./dynamoDBMigrations");
|
|
9
9
|
const utils_esbuild_1 = require("@goldstack/utils-esbuild");
|
|
10
10
|
const credential_providers_1 = require("@aws-sdk/credential-providers");
|
|
11
|
+
const utils_log_1 = require("@goldstack/utils-log");
|
|
11
12
|
/**
|
|
12
13
|
* Map to keep track for which deployment and tables initialisation and migrations have already been performed
|
|
13
14
|
*/
|
|
@@ -43,16 +44,17 @@ const stopLocalDynamoDB = async (goldstackConfig, packageSchema, deploymentName)
|
|
|
43
44
|
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
44
45
|
const lib = require((0, utils_esbuild_1.excludeInBundle)('./localDynamoDB'));
|
|
45
46
|
await lib.stopLocalDynamoDB(packageConfig, deploymentName);
|
|
46
|
-
const coldStartKey = getColdStartKey(packageConfig, deploymentName);
|
|
47
|
+
const coldStartKey = await getColdStartKey(packageConfig, deploymentName);
|
|
47
48
|
coldStart.delete(coldStartKey);
|
|
48
49
|
};
|
|
49
50
|
exports.stopLocalDynamoDB = stopLocalDynamoDB;
|
|
50
51
|
const createClient = async (packageConfig, deploymentName) => {
|
|
51
52
|
if (deploymentName === 'local') {
|
|
53
|
+
(0, utils_log_1.debug)('Connecting to local DynamoDB instance');
|
|
52
54
|
// Suppress ESLint error for dynamic require
|
|
53
55
|
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
54
56
|
const lib = require((0, utils_esbuild_1.excludeInBundle)('./localDynamoDB'));
|
|
55
|
-
return lib.localConnect(packageConfig,
|
|
57
|
+
return lib.localConnect(packageConfig, deploymentName);
|
|
56
58
|
}
|
|
57
59
|
const deployment = packageConfig.getDeployment(deploymentName);
|
|
58
60
|
let awsUser;
|
|
@@ -79,7 +81,7 @@ const connect = async ({ goldstackConfig, packageSchema, migrations, deploymentN
|
|
|
79
81
|
});
|
|
80
82
|
const client = await createClient(packageConfig, deploymentName);
|
|
81
83
|
// ensure table initialisation and migrations are only performed once per cold start
|
|
82
|
-
const coldStartKey = getColdStartKey(packageConfig, deploymentName);
|
|
84
|
+
const coldStartKey = await getColdStartKey(packageConfig, deploymentName);
|
|
83
85
|
if (!coldStart.has(coldStartKey)) {
|
|
84
86
|
await (0, dynamoDBData_1.assertTable)(packageConfig, deploymentName, client);
|
|
85
87
|
await (0, dynamoDBData_1.assertTableActive)(packageConfig, deploymentName, client);
|
|
@@ -116,9 +118,9 @@ const migrateDownTo = async ({ migrationName, goldstackConfig, packageSchema, mi
|
|
|
116
118
|
return client;
|
|
117
119
|
};
|
|
118
120
|
exports.migrateDownTo = migrateDownTo;
|
|
119
|
-
function getColdStartKey(packageConfig, deploymentName) {
|
|
121
|
+
async function getColdStartKey(packageConfig, deploymentName) {
|
|
120
122
|
if (deploymentName === 'local') {
|
|
121
|
-
return `local-${(0, dynamoDBPackageUtils_1.getTableName)(packageConfig, deploymentName)}`;
|
|
123
|
+
return `local-${await (0, dynamoDBPackageUtils_1.getTableName)(packageConfig, deploymentName)}`;
|
|
122
124
|
}
|
|
123
125
|
const deployment = packageConfig.getDeployment(deploymentName);
|
|
124
126
|
const coldStartKey = `${deployment.awsRegion}-${deploymentName}-${deployment.tableName}`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"templateDynamoDBTable.js","sourceRoot":"","sources":["../../src/templateDynamoDBTable.ts"],"names":[],"mappings":";;;AAAA,8DAA0D;AAG1D,iEAGgC;AAEhC,4FAAiF;AACjF,iDAIwB;AAExB,6DAI8B;AAE9B,4DAA2D;AAC3D,wEAAwD;
|
|
1
|
+
{"version":3,"file":"templateDynamoDBTable.js","sourceRoot":"","sources":["../../src/templateDynamoDBTable.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { InputMigrations } from 'umzug/lib/types';
|
|
2
|
+
import { DynamoDBContext } from '@goldstack/template-dynamodb';
|
|
3
|
+
/**
|
|
4
|
+
* Umzug migrations applied during connection see https://github.com/sequelize/umzug#migrations
|
|
5
|
+
*/
|
|
6
|
+
export declare const createTestMigrations: () => InputMigrations<DynamoDBContext>;
|
|
7
|
+
//# sourceMappingURL=testMigrations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"testMigrations.d.ts","sourceRoot":"","sources":["../../../src/testUtils/testMigrations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAI/D;;GAEG;AACH,eAAO,MAAM,oBAAoB,QAAO,gBAAgB,eAAe,CA4BtE,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createTestMigrations = void 0;
|
|
4
|
+
const client_dynamodb_1 = require("@aws-sdk/client-dynamodb");
|
|
5
|
+
/**
|
|
6
|
+
* Umzug migrations applied during connection see https://github.com/sequelize/umzug#migrations
|
|
7
|
+
*/
|
|
8
|
+
const createTestMigrations = () => {
|
|
9
|
+
return [
|
|
10
|
+
{
|
|
11
|
+
name: '00-dummy-migration',
|
|
12
|
+
async up({ context }) {
|
|
13
|
+
await context.client.send(new client_dynamodb_1.PutItemCommand({
|
|
14
|
+
TableName: context.tableName,
|
|
15
|
+
Item: {
|
|
16
|
+
pk: { S: '#DUMMY' },
|
|
17
|
+
sk: { S: 'hello-world' },
|
|
18
|
+
},
|
|
19
|
+
}));
|
|
20
|
+
},
|
|
21
|
+
async down({ context }) {
|
|
22
|
+
await context.client.send(new client_dynamodb_1.DeleteItemCommand({
|
|
23
|
+
TableName: context.tableName,
|
|
24
|
+
Key: {
|
|
25
|
+
pk: { S: '#DUMMY' },
|
|
26
|
+
sk: { S: 'hello-world' },
|
|
27
|
+
},
|
|
28
|
+
}));
|
|
29
|
+
},
|
|
30
|
+
},
|
|
31
|
+
];
|
|
32
|
+
};
|
|
33
|
+
exports.createTestMigrations = createTestMigrations;
|
|
34
|
+
//# sourceMappingURL=testMigrations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"testMigrations.js","sourceRoot":"","sources":["../../../src/testUtils/testMigrations.ts"],"names":[],"mappings":";;;AAGA,8DAA6E;AAE7E;;GAEG;AACI,MAAM,oBAAoB,GAAG,GAAqC,EAAE;IACzE,OAAO;QACL;YACE,IAAI,EAAE,oBAAoB;YAC1B,KAAK,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE;gBAClB,MAAM,OAAO,CAAC,MAAM,CAAC,IAAI,CACvB,IAAI,gCAAc,CAAC;oBACjB,SAAS,EAAE,OAAO,CAAC,SAAS;oBAC5B,IAAI,EAAE;wBACJ,EAAE,EAAE,EAAE,CAAC,EAAE,QAAQ,EAAE;wBACnB,EAAE,EAAE,EAAE,CAAC,EAAE,aAAa,EAAE;qBACzB;iBACF,CAAC,CACH,CAAC;YACJ,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE;gBACpB,MAAM,OAAO,CAAC,MAAM,CAAC,IAAI,CACvB,IAAI,mCAAiB,CAAC;oBACpB,SAAS,EAAE,OAAO,CAAC,SAAS;oBAC5B,GAAG,EAAE;wBACH,EAAE,EAAE,EAAE,CAAC,EAAE,QAAQ,EAAE;wBACnB,EAAE,EAAE,EAAE,CAAC,EAAE,aAAa,EAAE;qBACzB;iBACF,CAAC,CACH,CAAC;YACJ,CAAC;SACF;KACF,CAAC;AACJ,CAAC,CAAC;AA5BW,QAAA,oBAAoB,wBA4B/B"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@goldstack/template-dynamodb",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.18",
|
|
4
4
|
"description": "Utilities for building modules for DynamoDB access.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"goldstack",
|
|
@@ -43,13 +43,14 @@
|
|
|
43
43
|
"@aws-sdk/credential-providers": "3.645.0",
|
|
44
44
|
"@aws-sdk/types": "^3.609.0",
|
|
45
45
|
"@aws-sdk/util-dynamodb": "^3.645.0",
|
|
46
|
-
"@goldstack/infra": "0.4.
|
|
47
|
-
"@goldstack/infra-aws": "0.4.
|
|
46
|
+
"@goldstack/infra": "0.4.13",
|
|
47
|
+
"@goldstack/infra-aws": "0.4.22",
|
|
48
48
|
"@goldstack/utils-esbuild": "0.5.9",
|
|
49
|
-
"@goldstack/utils-
|
|
50
|
-
"@goldstack/utils-package
|
|
51
|
-
"@goldstack/utils-
|
|
52
|
-
"@goldstack/utils-
|
|
49
|
+
"@goldstack/utils-log": "0.3.12",
|
|
50
|
+
"@goldstack/utils-package": "0.4.13",
|
|
51
|
+
"@goldstack/utils-package-config-embedded": "0.5.14",
|
|
52
|
+
"@goldstack/utils-sh": "0.5.12",
|
|
53
|
+
"@goldstack/utils-terraform": "0.4.27",
|
|
53
54
|
"dynamo-db-local": "8.0.0",
|
|
54
55
|
"tcp-port-used": "^1.0.2",
|
|
55
56
|
"umzug": "^3.1.1",
|
|
@@ -65,6 +66,8 @@
|
|
|
65
66
|
"@types/node": "^18.7.13",
|
|
66
67
|
"@types/tcp-port-used": "^1",
|
|
67
68
|
"@types/yargs": "^17.0.10",
|
|
69
|
+
"find-free-port": "^2.0.0",
|
|
70
|
+
"find-free-ports": "^3.1.1",
|
|
68
71
|
"jest": "^29.3.1",
|
|
69
72
|
"rimraf": "^3.0.2",
|
|
70
73
|
"ts-node": "^10.9.1",
|