UNPKG

1.81 kBJavaScriptView Raw
1'use strict';
2
3var spawn = require('child_process').spawn,
4 utils = require('./utils');
5
6var starter = {
7 start: function (options, config) {
8 /* Dynamodb local documentation http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DynamoDBLocal.html */
9 var additionalArgs = [],
10 port = options.port || config.start.port,
11 db_dir = utils.absPath(config.setup.install_path),
12 jar = config.setup.jar;
13
14 if (options.dbPath) {
15 additionalArgs.push('-dbPath', options.dbPath);
16 } else {
17 additionalArgs.push('-inMemory');
18 }
19 if (options.sharedDb) {
20 additionalArgs.push('-sharedDb');
21 }
22 if (options.cors) {
23 additionalArgs.push('-cors', options.cors);
24 }
25 if (options.delayTransientStatuses) {
26 additionalArgs.push('-delayTransientStatuses');
27 }
28 if (options.optimizeDbBeforeStartup) {
29 additionalArgs.push('-optimizeDbBeforeStartup');
30 }
31 if (options.help) {
32 additionalArgs.push('-help');
33 }
34
35 var args = ['-Djava.library.path=' + db_dir + '/DynamoDBLocal_lib', '-jar', jar, '-port', port];
36 args = args.concat(additionalArgs);
37
38 var child = spawn('java', args, {
39 cwd: db_dir,
40 env: process.env,
41 stdio: ['pipe', 'pipe', process.stderr]
42 });
43
44 if (!child.pid) {
45 throw new Error('Unable to start DynamoDB Local process!');
46 }
47
48 child.on('error', function (code) {
49 throw new Error(code);
50 });
51
52 return {
53 proc: child,
54 port: port
55 };
56 },
57};
58
59module.exports = starter;