@goldstack/template-dynamodb 0.3.34 → 0.3.36
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/local/config.d.ts +27 -0
- package/dist/src/local/config.d.ts.map +1 -0
- package/dist/src/local/config.js +29 -0
- package/dist/src/local/config.js.map +1 -0
- package/dist/src/local/instanceManager.d.ts +61 -0
- package/dist/src/local/instanceManager.d.ts.map +1 -0
- package/dist/src/local/instanceManager.js +212 -0
- package/dist/src/local/instanceManager.js.map +1 -0
- package/dist/src/{localDynamoDB.d.ts → local/localDynamoDB.d.ts} +13 -4
- package/dist/src/local/localDynamoDB.d.ts.map +1 -0
- package/dist/src/local/localDynamoDB.js +101 -0
- package/dist/src/local/localDynamoDB.js.map +1 -0
- package/dist/src/{localInstances.d.ts → local/localInstances.d.ts} +3 -20
- package/dist/src/local/localInstances.d.ts.map +1 -0
- package/dist/src/{localInstances.js → local/localInstances.js} +74 -12
- package/dist/src/local/localInstances.js.map +1 -0
- package/dist/src/local/processManager.d.ts +9 -0
- package/dist/src/local/processManager.d.ts.map +1 -0
- package/dist/src/local/processManager.js +85 -0
- package/dist/src/local/processManager.js.map +1 -0
- package/dist/src/local/spawner.d.ts +15 -0
- package/dist/src/local/spawner.d.ts.map +1 -0
- package/dist/src/local/spawner.js +138 -0
- package/dist/src/local/spawner.js.map +1 -0
- package/dist/src/templateDynamoDBTable.js +4 -4
- package/dist/src/templateDynamoDBTable.js.map +1 -1
- package/package.json +7 -7
- package/dist/src/localDynamoDB.d.ts.map +0 -1
- package/dist/src/localDynamoDB.js +0 -294
- package/dist/src/localDynamoDB.js.map +0 -1
- package/dist/src/localInstances.d.ts.map +0 -1
- package/dist/src/localInstances.js.map +0 -1
|
@@ -4,9 +4,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.localInstancesManager = void 0;
|
|
7
|
+
exports.getLocalInstancesManager = getLocalInstancesManager;
|
|
7
8
|
/* eslint-disable @typescript-eslint/explicit-module-boundary-types */
|
|
8
9
|
const utils_log_1 = require("@goldstack/utils-log");
|
|
9
10
|
const fs_1 = __importDefault(require("fs"));
|
|
11
|
+
const tcp_port_used_1 = require("tcp-port-used");
|
|
10
12
|
/**
|
|
11
13
|
* Implementation of LocalInstancesManager for managing DynamoDB local instances
|
|
12
14
|
*/
|
|
@@ -17,9 +19,17 @@ class LocalInstancesManagerImpl {
|
|
|
17
19
|
this.startedInstances = new Map();
|
|
18
20
|
// Track number of active users per port
|
|
19
21
|
this.portUsageCounter = new Map();
|
|
20
|
-
|
|
22
|
+
// Private constructor for factory method pattern
|
|
21
23
|
}
|
|
22
|
-
|
|
24
|
+
/**
|
|
25
|
+
* Creates and initializes a new LocalInstancesManagerImpl instance
|
|
26
|
+
*/
|
|
27
|
+
static async create() {
|
|
28
|
+
const manager = new LocalInstancesManagerImpl();
|
|
29
|
+
await manager.loadState();
|
|
30
|
+
return manager;
|
|
31
|
+
}
|
|
32
|
+
async loadState() {
|
|
23
33
|
try {
|
|
24
34
|
const data = fs_1.default.readFileSync(this.stateFile, 'utf8');
|
|
25
35
|
const state = JSON.parse(data);
|
|
@@ -27,20 +37,28 @@ class LocalInstancesManagerImpl {
|
|
|
27
37
|
this.startedInstances.clear();
|
|
28
38
|
this.portUsageCounter.clear();
|
|
29
39
|
// Restore instances
|
|
30
|
-
Object.entries(state.instances)
|
|
40
|
+
for (const [port, instance] of Object.entries(state.instances)) {
|
|
31
41
|
const portNum = parseInt(port);
|
|
32
42
|
if (instance === 'stopped') {
|
|
33
43
|
this.startedInstances.set(portNum, 'stopped');
|
|
34
44
|
}
|
|
35
45
|
else {
|
|
36
|
-
//
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
}
|
|
46
|
+
// Check if port is actually in use
|
|
47
|
+
const isPortInUse = await (0, tcp_port_used_1.check)(portNum);
|
|
48
|
+
if (!isPortInUse) {
|
|
49
|
+
(0, utils_log_1.debug)(`Port ${portNum} not in use, marking instance as stopped`);
|
|
50
|
+
this.startedInstances.set(portNum, 'stopped');
|
|
51
|
+
}
|
|
52
|
+
else {
|
|
53
|
+
// Restore instance with its process/container info
|
|
54
|
+
this.startedInstances.set(portNum, {
|
|
55
|
+
port: portNum,
|
|
56
|
+
processId: instance.processId,
|
|
57
|
+
dockerContainerId: instance.dockerContainerId,
|
|
58
|
+
});
|
|
59
|
+
}
|
|
42
60
|
}
|
|
43
|
-
}
|
|
61
|
+
}
|
|
44
62
|
// Restore usage counts
|
|
45
63
|
Object.entries(state.usageCounts).forEach(([port, count]) => {
|
|
46
64
|
this.portUsageCounter.set(parseInt(port), count);
|
|
@@ -130,6 +148,50 @@ class LocalInstancesManagerImpl {
|
|
|
130
148
|
this.saveState();
|
|
131
149
|
}
|
|
132
150
|
}
|
|
133
|
-
//
|
|
134
|
-
|
|
151
|
+
// Initialize singleton instance
|
|
152
|
+
let localInstancesManagerInstance;
|
|
153
|
+
/**
|
|
154
|
+
* Gets the singleton instance of LocalInstancesManager, initializing it if necessary
|
|
155
|
+
*/
|
|
156
|
+
async function getLocalInstancesManager() {
|
|
157
|
+
if (!localInstancesManagerInstance) {
|
|
158
|
+
localInstancesManagerInstance = await LocalInstancesManagerImpl.create();
|
|
159
|
+
}
|
|
160
|
+
return localInstancesManagerInstance;
|
|
161
|
+
}
|
|
162
|
+
// For backward compatibility, initialize immediately but without waiting
|
|
163
|
+
// This maintains the existing behavior while allowing proper async initialization when needed
|
|
164
|
+
LocalInstancesManagerImpl.create().then((instance) => {
|
|
165
|
+
localInstancesManagerInstance = instance;
|
|
166
|
+
});
|
|
167
|
+
exports.localInstancesManager = {};
|
|
168
|
+
Object.defineProperties(exports.localInstancesManager, {
|
|
169
|
+
getInstance: {
|
|
170
|
+
get: () => localInstancesManagerInstance === null || localInstancesManagerInstance === void 0 ? void 0 : localInstancesManagerInstance.getInstance.bind(localInstancesManagerInstance),
|
|
171
|
+
},
|
|
172
|
+
getFirstRunningInstance: {
|
|
173
|
+
get: () => localInstancesManagerInstance === null || localInstancesManagerInstance === void 0 ? void 0 : localInstancesManagerInstance.getFirstRunningInstance.bind(localInstancesManagerInstance),
|
|
174
|
+
},
|
|
175
|
+
setInstance: {
|
|
176
|
+
get: () => localInstancesManagerInstance === null || localInstancesManagerInstance === void 0 ? void 0 : localInstancesManagerInstance.setInstance.bind(localInstancesManagerInstance),
|
|
177
|
+
},
|
|
178
|
+
getAllInstances: {
|
|
179
|
+
get: () => localInstancesManagerInstance === null || localInstancesManagerInstance === void 0 ? void 0 : localInstancesManagerInstance.getAllInstances.bind(localInstancesManagerInstance),
|
|
180
|
+
},
|
|
181
|
+
getInstanceCount: {
|
|
182
|
+
get: () => localInstancesManagerInstance === null || localInstancesManagerInstance === void 0 ? void 0 : localInstancesManagerInstance.getInstanceCount.bind(localInstancesManagerInstance),
|
|
183
|
+
},
|
|
184
|
+
incrementUsageCounter: {
|
|
185
|
+
get: () => localInstancesManagerInstance === null || localInstancesManagerInstance === void 0 ? void 0 : localInstancesManagerInstance.incrementUsageCounter.bind(localInstancesManagerInstance),
|
|
186
|
+
},
|
|
187
|
+
decrementUsageCounter: {
|
|
188
|
+
get: () => localInstancesManagerInstance === null || localInstancesManagerInstance === void 0 ? void 0 : localInstancesManagerInstance.decrementUsageCounter.bind(localInstancesManagerInstance),
|
|
189
|
+
},
|
|
190
|
+
getUsageCount: {
|
|
191
|
+
get: () => localInstancesManagerInstance === null || localInstancesManagerInstance === void 0 ? void 0 : localInstancesManagerInstance.getUsageCount.bind(localInstancesManagerInstance),
|
|
192
|
+
},
|
|
193
|
+
removeUsageCounter: {
|
|
194
|
+
get: () => localInstancesManagerInstance === null || localInstancesManagerInstance === void 0 ? void 0 : localInstancesManagerInstance.removeUsageCounter.bind(localInstancesManagerInstance),
|
|
195
|
+
},
|
|
196
|
+
});
|
|
135
197
|
//# sourceMappingURL=localInstances.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"localInstances.js","sourceRoot":"","sources":["../../../src/local/localInstances.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Handles process termination for both Windows and Unix systems
|
|
3
|
+
*/
|
|
4
|
+
export declare function terminateProcess(processId: number): Promise<void>;
|
|
5
|
+
/**
|
|
6
|
+
* Stops a Docker container by its ID
|
|
7
|
+
*/
|
|
8
|
+
export declare function stopContainer(containerId: string): Promise<void>;
|
|
9
|
+
//# sourceMappingURL=processManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"processManager.d.ts","sourceRoot":"","sources":["../../../src/local/processManager.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAMvE;AAiED;;GAEG;AACH,wBAAsB,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAEtE"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.terminateProcess = terminateProcess;
|
|
4
|
+
exports.stopContainer = stopContainer;
|
|
5
|
+
const child_process_1 = require("child_process");
|
|
6
|
+
const utils_sh_1 = require("@goldstack/utils-sh");
|
|
7
|
+
const utils_log_1 = require("@goldstack/utils-log");
|
|
8
|
+
/**
|
|
9
|
+
* Handles process termination for both Windows and Unix systems
|
|
10
|
+
*/
|
|
11
|
+
async function terminateProcess(processId) {
|
|
12
|
+
if (process.platform === 'win32') {
|
|
13
|
+
await terminateWindowsProcess(processId);
|
|
14
|
+
}
|
|
15
|
+
else {
|
|
16
|
+
await terminateUnixProcess(processId);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
async function terminateWindowsProcess(processId) {
|
|
20
|
+
// Try graceful termination first
|
|
21
|
+
const result = (0, child_process_1.spawnSync)('taskkill', ['/pid', processId.toString(), '/t']);
|
|
22
|
+
if (result.status !== 0) {
|
|
23
|
+
(0, utils_log_1.warn)(`Failed to terminate process ${processId} gracefully: ${result.stderr}`);
|
|
24
|
+
}
|
|
25
|
+
// Give it some time before force kill
|
|
26
|
+
await new Promise((resolve) => setTimeout(resolve, 5000));
|
|
27
|
+
// Force kill
|
|
28
|
+
const forceResult = (0, child_process_1.spawnSync)('taskkill', [
|
|
29
|
+
'/pid',
|
|
30
|
+
processId.toString(),
|
|
31
|
+
'/f',
|
|
32
|
+
'/t',
|
|
33
|
+
]);
|
|
34
|
+
if (forceResult.status !== 0) {
|
|
35
|
+
(0, utils_log_1.error)(`Failed to force kill process ${processId}: ${forceResult.stderr}`);
|
|
36
|
+
throw new Error(`Failed to terminate process ${processId}`);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
async function terminateUnixProcess(processId) {
|
|
40
|
+
try {
|
|
41
|
+
// Try graceful termination first
|
|
42
|
+
process.kill(processId, 'SIGTERM');
|
|
43
|
+
await new Promise((resolve) => setTimeout(resolve, 5000));
|
|
44
|
+
// Check if process still exists
|
|
45
|
+
try {
|
|
46
|
+
process.kill(processId, 0); // Signal 0 is used to check existence
|
|
47
|
+
// Process still exists, try force kill
|
|
48
|
+
process.kill(processId, 'SIGKILL');
|
|
49
|
+
// Wait and verify process is gone
|
|
50
|
+
await new Promise((resolve) => setTimeout(resolve, 1000));
|
|
51
|
+
try {
|
|
52
|
+
process.kill(processId, 0);
|
|
53
|
+
(0, utils_log_1.error)(`Failed to terminate process ${processId} after SIGKILL`);
|
|
54
|
+
throw new Error(`Process ${processId} could not be terminated`);
|
|
55
|
+
}
|
|
56
|
+
catch (e) {
|
|
57
|
+
if (e.code === 'ESRCH') {
|
|
58
|
+
(0, utils_log_1.debug)(`Process ${processId} successfully terminated`);
|
|
59
|
+
}
|
|
60
|
+
else {
|
|
61
|
+
throw e;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
catch (e) {
|
|
66
|
+
if (e.code === 'ESRCH') {
|
|
67
|
+
(0, utils_log_1.debug)(`Process ${processId} terminated gracefully`);
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
throw e;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
catch (e) {
|
|
75
|
+
(0, utils_log_1.error)(`Failed to terminate process ${processId}: ${e}`);
|
|
76
|
+
throw e;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Stops a Docker container by its ID
|
|
81
|
+
*/
|
|
82
|
+
async function stopContainer(containerId) {
|
|
83
|
+
await (0, utils_sh_1.execAsync)(`docker stop ${containerId}`);
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=processManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"processManager.js","sourceRoot":"","sources":["../../../src/local/processManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { DynamoDBInstance } from './localDynamoDB';
|
|
2
|
+
/**
|
|
3
|
+
* Options for spawning a DynamoDB instance
|
|
4
|
+
*/
|
|
5
|
+
interface SpawnOptions {
|
|
6
|
+
port: number;
|
|
7
|
+
path?: string | null;
|
|
8
|
+
detached?: boolean;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Spawns a new DynamoDB instance using either Java or Docker
|
|
12
|
+
*/
|
|
13
|
+
export declare function spawnInstance(options: SpawnOptions): Promise<DynamoDBInstance>;
|
|
14
|
+
export {};
|
|
15
|
+
//# sourceMappingURL=spawner.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spawner.d.ts","sourceRoot":"","sources":["../../../src/local/spawner.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAEnD;;GAEG;AACH,UAAU,YAAY;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,wBAAsB,aAAa,CACjC,OAAO,EAAE,YAAY,GACpB,OAAO,CAAC,gBAAgB,CAAC,CAyB3B"}
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.spawnInstance = spawnInstance;
|
|
40
|
+
const utils_sh_1 = require("@goldstack/utils-sh");
|
|
41
|
+
const utils_log_1 = require("@goldstack/utils-log");
|
|
42
|
+
const tcp_port_used_1 = require("tcp-port-used");
|
|
43
|
+
const wait_port_1 = __importDefault(require("wait-port"));
|
|
44
|
+
const dynamoDBLocal = __importStar(require("dynamo-db-local"));
|
|
45
|
+
/**
|
|
46
|
+
* Spawns a new DynamoDB instance using either Java or Docker
|
|
47
|
+
*/
|
|
48
|
+
async function spawnInstance(options) {
|
|
49
|
+
if (await (0, tcp_port_used_1.check)(options.port)) {
|
|
50
|
+
(0, utils_log_1.warn)(`Port ${options.port} is already in use. Assuming another instance of DynamoDB is already running.`);
|
|
51
|
+
return {
|
|
52
|
+
port: options.port,
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
// Try Java first
|
|
56
|
+
const javaInstance = await tryJavaSpawn(options);
|
|
57
|
+
if (javaInstance) {
|
|
58
|
+
return javaInstance;
|
|
59
|
+
}
|
|
60
|
+
// Fallback to Docker
|
|
61
|
+
const dockerInstance = await tryDockerSpawn(options);
|
|
62
|
+
if (dockerInstance) {
|
|
63
|
+
return dockerInstance;
|
|
64
|
+
}
|
|
65
|
+
throw new Error('Either Docker or Java needs to be installed to run local DynamoDB');
|
|
66
|
+
}
|
|
67
|
+
async function tryJavaSpawn(options) {
|
|
68
|
+
let javaViable = (0, utils_sh_1.commandExists)('java');
|
|
69
|
+
if (javaViable) {
|
|
70
|
+
try {
|
|
71
|
+
await (0, utils_sh_1.execAsync)('java -version');
|
|
72
|
+
}
|
|
73
|
+
catch (e) {
|
|
74
|
+
(0, utils_log_1.warn)("'java' command is available but it does not work. This is common on never versions of Mac OS X without Java installed.\n" +
|
|
75
|
+
'To use Java, please install it.');
|
|
76
|
+
javaViable = false;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
if (!javaViable) {
|
|
80
|
+
return null;
|
|
81
|
+
}
|
|
82
|
+
(0, utils_log_1.info)(`Starting local DynamoDB with Java on port ${options.port}`);
|
|
83
|
+
const pr = dynamoDBLocal.spawn({
|
|
84
|
+
port: options.port,
|
|
85
|
+
path: options.path,
|
|
86
|
+
detached: options.detached,
|
|
87
|
+
});
|
|
88
|
+
if (!pr.pid) {
|
|
89
|
+
throw new Error('Process id cannot be identified.');
|
|
90
|
+
}
|
|
91
|
+
await Promise.all([
|
|
92
|
+
await (0, wait_port_1.default)({
|
|
93
|
+
host: 'localhost',
|
|
94
|
+
port: options.port,
|
|
95
|
+
output: 'silent',
|
|
96
|
+
}),
|
|
97
|
+
await new Promise((resolve) => {
|
|
98
|
+
pr.stdout.once('data', () => resolve());
|
|
99
|
+
}),
|
|
100
|
+
]);
|
|
101
|
+
(0, utils_log_1.info)(`Started local DynamoDB with Java on port ${options.port}`);
|
|
102
|
+
return {
|
|
103
|
+
port: options.port,
|
|
104
|
+
processId: pr.pid,
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
async function tryDockerSpawn(options) {
|
|
108
|
+
if (!(0, utils_sh_1.commandExists)('docker')) {
|
|
109
|
+
return null;
|
|
110
|
+
}
|
|
111
|
+
(0, utils_log_1.info)('Starting local DynamoDB with Docker');
|
|
112
|
+
const detached = global['CI'] ? true : false;
|
|
113
|
+
const hash = new Date().getTime();
|
|
114
|
+
const containerName = 'goldstack-local-dynamodb-' + hash;
|
|
115
|
+
const pr = dynamoDBLocal.spawn({
|
|
116
|
+
port: options.port,
|
|
117
|
+
command: 'docker',
|
|
118
|
+
name: containerName,
|
|
119
|
+
path: options.path,
|
|
120
|
+
detached,
|
|
121
|
+
});
|
|
122
|
+
if (detached) {
|
|
123
|
+
pr.unref();
|
|
124
|
+
}
|
|
125
|
+
await (0, wait_port_1.default)({
|
|
126
|
+
host: 'localhost',
|
|
127
|
+
port: options.port,
|
|
128
|
+
output: 'silent',
|
|
129
|
+
});
|
|
130
|
+
await new Promise((resolve) => {
|
|
131
|
+
setTimeout(resolve, 5000);
|
|
132
|
+
});
|
|
133
|
+
return {
|
|
134
|
+
port: options.port,
|
|
135
|
+
dockerContainerId: containerName,
|
|
136
|
+
};
|
|
137
|
+
}
|
|
138
|
+
//# sourceMappingURL=spawner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spawner.js","sourceRoot":"","sources":["../../../src/local/spawner.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmBA,sCA2BC;AA9CD,kDAA+D;AAC/D,oDAAkD;AAClD,iDAAsC;AACtC,0DAAiC;AACjC,+DAAiD;AAYjD;;GAEG;AACI,KAAK,UAAU,aAAa,CACjC,OAAqB;IAErB,IAAI,MAAM,IAAA,qBAAK,EAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9B,IAAA,gBAAI,EACF,QAAQ,OAAO,CAAC,IAAI,+EAA+E,CACpG,CAAC;QACF,OAAO;YACL,IAAI,EAAE,OAAO,CAAC,IAAI;SACnB,CAAC;IACJ,CAAC;IAED,iBAAiB;IACjB,MAAM,YAAY,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,CAAC;IACjD,IAAI,YAAY,EAAE,CAAC;QACjB,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,qBAAqB;IACrB,MAAM,cAAc,GAAG,MAAM,cAAc,CAAC,OAAO,CAAC,CAAC;IACrD,IAAI,cAAc,EAAE,CAAC;QACnB,OAAO,cAAc,CAAC;IACxB,CAAC;IAED,MAAM,IAAI,KAAK,CACb,mEAAmE,CACpE,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,YAAY,CACzB,OAAqB;IAErB,IAAI,UAAU,GAAG,IAAA,wBAAa,EAAC,MAAM,CAAC,CAAC;IAEvC,IAAI,UAAU,EAAE,CAAC;QACf,IAAI,CAAC;YACH,MAAM,IAAA,oBAAS,EAAC,eAAe,CAAC,CAAC;QACnC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAA,gBAAI,EACF,0HAA0H;gBACxH,iCAAiC,CACpC,CAAC;YACF,UAAU,GAAG,KAAK,CAAC;QACrB,CAAC;IACH,CAAC;IAED,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAA,gBAAI,EAAC,6CAA6C,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IAClE,MAAM,EAAE,GAAG,aAAa,CAAC,KAAK,CAAC;QAC7B,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,QAAQ,EAAE,OAAO,CAAC,QAAQ;KAC3B,CAAC,CAAC;IAEH,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;IACtD,CAAC;IAED,MAAM,OAAO,CAAC,GAAG,CAAC;QAChB,MAAM,IAAA,mBAAQ,EAAC;YACb,IAAI,EAAE,WAAW;YACjB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,MAAM,EAAE,QAAQ;SACjB,CAAC;QACF,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;YAClC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;QAC1C,CAAC,CAAC;KACH,CAAC,CAAC;IAEH,IAAA,gBAAI,EAAC,4CAA4C,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IACjE,OAAO;QACL,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,SAAS,EAAE,EAAE,CAAC,GAAG;KAClB,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,cAAc,CAC3B,OAAqB;IAErB,IAAI,CAAC,IAAA,wBAAa,EAAC,QAAQ,CAAC,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAA,gBAAI,EAAC,qCAAqC,CAAC,CAAC;IAC5C,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;IAC7C,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;IAClC,MAAM,aAAa,GAAG,2BAA2B,GAAG,IAAI,CAAC;IAEzD,MAAM,EAAE,GAAG,aAAa,CAAC,KAAK,CAAC;QAC7B,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,OAAO,EAAE,QAAQ;QACjB,IAAI,EAAE,aAAa;QACnB,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,QAAQ;KACT,CAAC,CAAC;IAEH,IAAI,QAAQ,EAAE,CAAC;QACb,EAAE,CAAC,KAAK,EAAE,CAAC;IACb,CAAC;IAED,MAAM,IAAA,mBAAQ,EAAC;QACb,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,MAAM,EAAE,QAAQ;KACjB,CAAC,CAAC;IAEH,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;QAClC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC5B,CAAC,CAAC,CAAC;IAEH,OAAO;QACL,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,iBAAiB,EAAE,aAAa;KACjC,CAAC;AACJ,CAAC"}
|
|
@@ -30,7 +30,7 @@ const startLocalDynamoDB = async (goldstackConfig, packageSchema, port, deployme
|
|
|
30
30
|
});
|
|
31
31
|
// Suppress ESLint error for dynamic require
|
|
32
32
|
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
33
|
-
const lib = require((0, utils_esbuild_1.excludeInBundle)('./localDynamoDB'));
|
|
33
|
+
const lib = require((0, utils_esbuild_1.excludeInBundle)('./local/localDynamoDB'));
|
|
34
34
|
const portToUse = port ||
|
|
35
35
|
(process.env.DYNAMODB_LOCAL_PORT &&
|
|
36
36
|
parseInt(process.env.DYNAMODB_LOCAL_PORT)) ||
|
|
@@ -46,7 +46,7 @@ const stopAllLocalDynamoDB = async (goldstackConfig, packageSchema, deploymentNa
|
|
|
46
46
|
});
|
|
47
47
|
// Suppress ESLint error for dynamic require
|
|
48
48
|
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
49
|
-
const lib = require((0, utils_esbuild_1.excludeInBundle)('./localDynamoDB'));
|
|
49
|
+
const lib = require((0, utils_esbuild_1.excludeInBundle)('./local/localDynamoDB'));
|
|
50
50
|
await lib.stopAllLocalDynamoDB(packageConfig, deploymentName);
|
|
51
51
|
const coldStartKey = await getColdStartKey(packageConfig, deploymentName);
|
|
52
52
|
coldStart.delete(coldStartKey);
|
|
@@ -70,7 +70,7 @@ const stopLocalDynamoDB = async (goldstackConfig, packageSchema, portOrDeploymen
|
|
|
70
70
|
});
|
|
71
71
|
// Suppress ESLint error for dynamic require
|
|
72
72
|
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
73
|
-
const lib = require((0, utils_esbuild_1.excludeInBundle)('./localDynamoDB'));
|
|
73
|
+
const lib = require((0, utils_esbuild_1.excludeInBundle)('./local/localDynamoDB'));
|
|
74
74
|
await lib.stopLocalDynamoDB(packageConfig, port ? { port } : {}, resolvedDeploymentName);
|
|
75
75
|
const coldStartKey = await getColdStartKey(packageConfig, resolvedDeploymentName);
|
|
76
76
|
coldStart.delete(coldStartKey);
|
|
@@ -81,7 +81,7 @@ const createClient = async (packageConfig, deploymentName) => {
|
|
|
81
81
|
(0, utils_log_1.debug)('Connecting to local DynamoDB instance');
|
|
82
82
|
// Suppress ESLint error for dynamic require
|
|
83
83
|
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
84
|
-
const lib = require((0, utils_esbuild_1.excludeInBundle)('./localDynamoDB'));
|
|
84
|
+
const lib = require((0, utils_esbuild_1.excludeInBundle)('./local/localDynamoDB'));
|
|
85
85
|
return lib.localConnect(packageConfig, deploymentName);
|
|
86
86
|
}
|
|
87
87
|
const deployment = packageConfig.getDeployment(deploymentName);
|
|
@@ -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;AAUxD,oDAA6C;AAE7C;;GAEG;AACH,MAAM,SAAS,GAAyB,IAAI,GAAG,EAAE,CAAC;AAE3C,MAAM,YAAY,GAAG,KAAK,EAC/B,eAAsC,EACtC,aAAkB,EAClB,cAAuB,EACN,EAAE;IACnB,cAAc,GAAG,IAAA,wCAAiB,EAAC,cAAc,CAAC,CAAC;IACnD,MAAM,aAAa,GAAG,IAAI,qDAAqB,CAG7C;QACA,aAAa,EAAE,eAAe;QAC9B,aAAa;KACd,CAAC,CAAC;IAEH,OAAO,IAAA,mCAAiB,EAAC,aAAa,EAAE,cAAc,CAAC,CAAC;AAC1D,CAAC,CAAC;AAfW,QAAA,YAAY,gBAevB;AAEK,MAAM,kBAAkB,GAAG,KAAK,EACrC,eAAsC,EACtC,aAAkB,EAClB,IAAa,EACb,cAAuB,EACR,EAAE;IACjB,cAAc,GAAG,IAAA,wCAAiB,EAAC,cAAc,CAAC,CAAC;IACnD,MAAM,aAAa,GAAG,IAAI,qDAAqB,CAG7C;QACA,aAAa,EAAE,eAAe;QAC9B,aAAa;KACd,CAAC,CAAC;IAEH,4CAA4C;IAC5C,8DAA8D;IAC9D,MAAM,GAAG,GAAG,OAAO,CAAC,IAAA,+BAAe,EAAC,
|
|
1
|
+
{"version":3,"file":"templateDynamoDBTable.js","sourceRoot":"","sources":["../../src/templateDynamoDBTable.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@goldstack/template-dynamodb",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.36",
|
|
4
4
|
"description": "Utilities for building modules for DynamoDB access.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"goldstack",
|
|
@@ -43,14 +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.22",
|
|
47
|
+
"@goldstack/infra-aws": "0.4.32",
|
|
48
48
|
"@goldstack/utils-esbuild": "0.5.12",
|
|
49
49
|
"@goldstack/utils-log": "0.3.18",
|
|
50
|
-
"@goldstack/utils-package": "0.4.
|
|
51
|
-
"@goldstack/utils-package-config-embedded": "0.5.
|
|
52
|
-
"@goldstack/utils-sh": "0.5.
|
|
53
|
-
"@goldstack/utils-terraform": "0.4.
|
|
50
|
+
"@goldstack/utils-package": "0.4.22",
|
|
51
|
+
"@goldstack/utils-package-config-embedded": "0.5.23",
|
|
52
|
+
"@goldstack/utils-sh": "0.5.21",
|
|
53
|
+
"@goldstack/utils-terraform": "0.4.42",
|
|
54
54
|
"dynamo-db-local": "8.0.0",
|
|
55
55
|
"tcp-port-used": "^1.0.2",
|
|
56
56
|
"umzug": "^3.8.2",
|
|
@@ -1 +0,0 @@
|
|
|
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;AAQzE,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,wBAAsB,YAAY,CAAC,QAAQ,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CA6E5E;AAGD,MAAM,MAAM,gBAAgB,GAAG,CAC7B,aAAa,EAAE,qBAAqB,CAAC,eAAe,EAAE,kBAAkB,CAAC,EACzE,cAAc,CAAC,EAAE,MAAM,KACpB,OAAO,CAAC,cAAc,CAAC,CAAC;AAE7B,MAAM,MAAM,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,MAAM,WAAW,wBAAwB;IACvC,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,MAAM,qBAAqB,GAAG,CAClC,aAAa,EAAE,qBAAqB,CAAC,eAAe,EAAE,kBAAkB,CAAC,EACzE,OAAO,CAAC,EAAE,wBAAwB,EAClC,cAAc,CAAC,EAAE,MAAM,KACpB,OAAO,CAAC,IAAI,CAAC,CAAC;AAEnB,MAAM,MAAM,wBAAwB,GAAG,CACrC,aAAa,EAAE,qBAAqB,CAAC,eAAe,EAAE,kBAAkB,CAAC,EACzE,cAAc,CAAC,EAAE,MAAM,KACpB,OAAO,CAAC,IAAI,CAAC,CAAC;AAMnB,eAAO,MAAM,YAAY,EAAE,gBA2B1B,CAAC;AAEF,eAAO,MAAM,WAAW,qBAAsB,gBAAgB,KAAG,MAIhE,CAAC;AAEF,eAAO,MAAM,YAAY,qBACL,gBAAgB,KACjC,cAWF,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,sBA8BhC,CAAC;AAyFF,eAAO,MAAM,oBAAoB,EAAE,wBAkBlC,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,qBAuB/B,CAAC"}
|