UNPKG

3.41 kBJavaScriptView Raw
1'use strict';
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6
7var _regenerator = require('babel-runtime/regenerator');
8
9var _regenerator2 = _interopRequireDefault(_regenerator);
10
11var _asyncToGenerator2 = require('babel-runtime/helpers/asyncToGenerator');
12
13var _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2);
14
15var _dynamodbConst = require('./dynamodbConst');
16
17var _dynamodbConnection = require('./dynamodbConnection');
18
19var _startDynamodbLocal = require('./startDynamodbLocal');
20
21var _startDynamodbLocal2 = _interopRequireDefault(_startDynamodbLocal);
22
23var _dynamodbLocalhost = require('./dynamodbLocalhost');
24
25function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
26
27/* eslint-disable no-console */
28
29var instancePromise = new Promise(function () {
30 var _ref = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee(resolve, reject) {
31 var singleInstance, newPort;
32 return _regenerator2.default.wrap(function _callee$(_context) {
33 while (1) {
34 switch (_context.prev = _context.next) {
35 case 0:
36 _context.prev = 0;
37 _context.next = 3;
38 return (0, _dynamodbConnection.serverExists)(_dynamodbConst.SINGLE_INSTANCE_PORT);
39
40 case 3:
41 singleInstance = _context.sent;
42
43 if (!singleInstance) {
44 _context.next = 9;
45 break;
46 }
47
48 console.log('Using existing dynamodb-local instance on ' + _dynamodbConst.SINGLE_INSTANCE_PORT);
49 resolve((0, _dynamodbConnection.clientFactory)(_dynamodbConst.SINGLE_INSTANCE_PORT));
50 _context.next = 20;
51 break;
52
53 case 9:
54 _context.next = 11;
55 return (0, _dynamodbLocalhost.isInstalled)();
56
57 case 11:
58 if (_context.sent) {
59 _context.next = 13;
60 break;
61 }
62
63 reject(new Error('You first need to run: yarn dynamodb-local-install'));
64
65 case 13:
66 _context.next = 15;
67 return (0, _dynamodbConnection.freePort)();
68
69 case 15:
70 newPort = _context.sent;
71
72 console.log('Starting new dynamodb-local instance on ' + newPort);
73 _context.next = 19;
74 return (0, _startDynamodbLocal2.default)(newPort);
75
76 case 19:
77 resolve((0, _dynamodbConnection.clientFactory)(newPort));
78
79 case 20:
80 _context.next = 25;
81 break;
82
83 case 22:
84 _context.prev = 22;
85 _context.t0 = _context['catch'](0);
86
87 reject(_context.t0);
88
89 case 25:
90 case 'end':
91 return _context.stop();
92 }
93 }
94 }, _callee, undefined, [[0, 22]]);
95 }));
96
97 return function (_x, _x2) {
98 return _ref.apply(this, arguments);
99 };
100}());
101
102exports.default = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee2() {
103 return _regenerator2.default.wrap(function _callee2$(_context2) {
104 while (1) {
105 switch (_context2.prev = _context2.next) {
106 case 0:
107 _context2.next = 2;
108 return instancePromise;
109
110 case 2:
111 return _context2.abrupt('return', _context2.sent);
112
113 case 3:
114 case 'end':
115 return _context2.stop();
116 }
117 }
118 }, _callee2, undefined);
119}));
\No newline at end of file