@yopdev/dev-server 1.5.0-alpha.1 → 1.5.0-alpha.6
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/container.js +5 -7
- package/dist/src/deferred.js +3 -7
- package/dist/src/dev-server.js +1 -1
- package/dist/src/dynamodb.js +4 -5
- package/dist/src/event-proxy.d.ts +1 -1
- package/dist/src/event-proxy.js +6 -10
- package/dist/src/http-server.d.ts +1 -1
- package/dist/src/http-server.js +2 -3
- package/dist/src/index.d.ts +5 -0
- package/dist/src/index.js +46 -0
- package/dist/src/internal-queue.js +1 -3
- package/dist/src/lambda-http-proxy.js +2 -2
- package/dist/src/localstack.js +3 -3
- package/dist/src/mappers.js +3 -1
- package/dist/src/pre-traffic-hooks.js +4 -8
- package/dist/src/scheduled-tasks.js +4 -8
- package/dist/src/sns-http-proxy.js +3 -3
- package/dist/src/sns.js +4 -4
- package/dist/src/sqs.js +2 -2
- package/dist/src/stoppable.d.ts +1 -1
- package/dist/src/stoppable.js +11 -5
- package/dist/src/tunnel.js +6 -11
- package/package.json +1 -1
package/dist/src/container.js
CHANGED
|
@@ -58,15 +58,13 @@ var Container = /** @class */ (function () {
|
|
|
58
58
|
.withNetworkAliases(_this.networkAlias)
|
|
59
59
|
.start(); })
|
|
60
60
|
.then(function (started) { return _this.started = started; })
|
|
61
|
-
.then(function () { return _this.endpointBuilder(_this.started.getFirstMappedPort()); })
|
|
62
|
-
|
|
63
|
-
}); };
|
|
64
|
-
this.stop = function () { return __awaiter(_this, void 0, void 0, function () {
|
|
65
|
-
var _this = this;
|
|
66
|
-
return __generator(this, function (_a) {
|
|
67
|
-
return [2 /*return*/, this.started.stop().then(function () { return _this.LOGGER.info('stop'); })];
|
|
61
|
+
.then(function () { return _this.endpointBuilder(_this.started.getFirstMappedPort()); })
|
|
62
|
+
.tap(function (url) { return _this.LOGGER.debug(url); })];
|
|
68
63
|
});
|
|
69
64
|
}); };
|
|
65
|
+
this.stop = function () { return __awaiter(_this, void 0, void 0, function () { return __generator(this, function (_a) {
|
|
66
|
+
return [2 /*return*/, this.started.stop().then(function () { return undefined; })];
|
|
67
|
+
}); }); };
|
|
70
68
|
this.LOGGER = logging_1.LoggerFactory.create("CONTAINER[".concat(name, "]"));
|
|
71
69
|
var generic = new testcontainers_1.GenericContainer(image);
|
|
72
70
|
var withEnvironment = environment ? generic.withEnvironment(environment) : generic;
|
package/dist/src/deferred.js
CHANGED
|
@@ -95,13 +95,9 @@ var Promised = /** @class */ (function () {
|
|
|
95
95
|
.then(function () { return _this.service.start(config); })];
|
|
96
96
|
});
|
|
97
97
|
}); };
|
|
98
|
-
this.stop = function () { return __awaiter(_this, void 0, void 0, function () {
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
return [2 /*return*/, Promise.resolve(this.LOGGER.info('stopped'))
|
|
102
|
-
.then(function () { return _this.service.stop(); })];
|
|
103
|
-
});
|
|
104
|
-
}); };
|
|
98
|
+
this.stop = function () { return __awaiter(_this, void 0, void 0, function () { return __generator(this, function (_a) {
|
|
99
|
+
return [2 /*return*/, this.service.stop()];
|
|
100
|
+
}); }); };
|
|
105
101
|
this.name = (0, crypto_1.randomUUID)();
|
|
106
102
|
this.LOGGER = logging_1.LoggerFactory.create("PROMISED[".concat(this.name, "]"));
|
|
107
103
|
}
|
package/dist/src/dev-server.js
CHANGED
|
@@ -40,7 +40,7 @@ var DevServer = /** @class */ (function () {
|
|
|
40
40
|
}
|
|
41
41
|
},
|
|
42
42
|
}); }); }); })
|
|
43
|
-
.
|
|
43
|
+
.tap(function (config) { return _this.LOGGER.debug('config is %o', config); })
|
|
44
44
|
.then(function (aws) { return _this.service.start(aws); })
|
|
45
45
|
.then(function () { return _this.LOGGER.info('started'); })
|
|
46
46
|
.then(function () { return _this; });
|
package/dist/src/dynamodb.js
CHANGED
|
@@ -40,6 +40,7 @@ exports.DynamoDb = exports.newDynamoDbTable = void 0;
|
|
|
40
40
|
var client_dynamodb_1 = require("@aws-sdk/client-dynamodb");
|
|
41
41
|
var logging_1 = require("@yopdev/logging");
|
|
42
42
|
var services_1 = require("./services");
|
|
43
|
+
var assert_1 = require("./assert");
|
|
43
44
|
var newDynamoDbTable = function (name, config, callback) { return new services_1.Service(new DynamoDbTableCreator(name, config.command), callback); };
|
|
44
45
|
exports.newDynamoDbTable = newDynamoDbTable;
|
|
45
46
|
var DynamoDbTableCreator = /** @class */ (function () {
|
|
@@ -51,12 +52,11 @@ var DynamoDbTableCreator = /** @class */ (function () {
|
|
|
51
52
|
var _this = this;
|
|
52
53
|
return __generator(this, function (_a) {
|
|
53
54
|
return [2 /*return*/, config.dynamo.createTable(this.command)
|
|
54
|
-
.
|
|
55
|
+
.tap(function (output) { return _this.LOGGER.debug(output); })
|
|
55
56
|
.then(function () { return _this.name; })];
|
|
56
57
|
});
|
|
57
58
|
}); };
|
|
58
|
-
this.stop = function () { return Promise.resolve()
|
|
59
|
-
.then(function () { return _this.LOGGER.info('stopped'); }); };
|
|
59
|
+
this.stop = function () { return Promise.resolve(); };
|
|
60
60
|
this.LOGGER = logging_1.LoggerFactory.create("TABLE[".concat(name, "]"));
|
|
61
61
|
}
|
|
62
62
|
return DynamoDbTableCreator;
|
|
@@ -69,7 +69,7 @@ var DynamoDb = /** @class */ (function () {
|
|
|
69
69
|
return __generator(this, function (_a) {
|
|
70
70
|
return [2 /*return*/, this.client
|
|
71
71
|
.send(factory) //
|
|
72
|
-
.
|
|
72
|
+
.tap(function (table) { return LOGGER.debug('created %s', (0, assert_1.assertNotUndefined)(table.TableDescription).TableName); })
|
|
73
73
|
.catch(function (reason) {
|
|
74
74
|
LOGGER.error('failed to create table');
|
|
75
75
|
if (reason.name !== 'ResourceInUseException')
|
|
@@ -78,7 +78,6 @@ var DynamoDb = /** @class */ (function () {
|
|
|
78
78
|
});
|
|
79
79
|
}); };
|
|
80
80
|
this.client = new client_dynamodb_1.DynamoDBClient(config);
|
|
81
|
-
LOGGER.debug('initialized');
|
|
82
81
|
}
|
|
83
82
|
return DynamoDb;
|
|
84
83
|
}());
|
|
@@ -4,7 +4,7 @@ import { Service } from './services';
|
|
|
4
4
|
export declare const newEventsProxy: (name: string, config: {
|
|
5
5
|
handlers: EventHandler[];
|
|
6
6
|
topic?: string;
|
|
7
|
-
}) => Service<
|
|
7
|
+
}) => Service<void>;
|
|
8
8
|
export type EventHandler = {
|
|
9
9
|
name: string;
|
|
10
10
|
handler: (event: SQSEvent) => Promise<unknown>;
|
package/dist/src/event-proxy.js
CHANGED
|
@@ -60,8 +60,8 @@ var EventsProxy = /** @class */ (function () {
|
|
|
60
60
|
return __generator(this, function (_b) {
|
|
61
61
|
return [2 /*return*/, this.queueConnectedToTopic(config.sns, (_a = this.topic) !== null && _a !== void 0 ? _a : config.eventsProxy.topic.arn, config.sqs, this.queueName())
|
|
62
62
|
.then(function (url) { return _this.startEventsConsumer(config.sqs.client, url); })
|
|
63
|
-
.
|
|
64
|
-
.then(function () { return
|
|
63
|
+
.tap(function () { return _this.stopped = false; })
|
|
64
|
+
.then(function (consumer) { return _this.LOGGER.debug(consumer); })];
|
|
65
65
|
});
|
|
66
66
|
}); };
|
|
67
67
|
this.queueConnectedToTopic = function (sns, topic, sqs, queue) { return __awaiter(_this, void 0, void 0, function () {
|
|
@@ -112,15 +112,11 @@ var EventsProxy = /** @class */ (function () {
|
|
|
112
112
|
});
|
|
113
113
|
});
|
|
114
114
|
};
|
|
115
|
-
this.stop = function () { return __awaiter(_this, void 0, void 0, function () {
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
return [2 /*return*/, Promise.resolve(this.consumer)
|
|
119
|
-
.then(function (consumer) { return consumer !== undefined ? (0, stoppable_1.stopConsumer)(consumer, _this.pollingFrequency).then(function () { return 'stopped'; }) : 'not started'; })
|
|
120
|
-
.then(function (status) { return _this.LOGGER.info(status); })];
|
|
121
|
-
});
|
|
122
|
-
}); };
|
|
115
|
+
this.stop = function () { return __awaiter(_this, void 0, void 0, function () { return __generator(this, function (_a) {
|
|
116
|
+
return [2 /*return*/, (0, stoppable_1.stopConsumer)(this.pollingFrequency, this.consumer)];
|
|
117
|
+
}); }); };
|
|
123
118
|
this.LOGGER = logging_1.LoggerFactory.create("SNS->SQS[".concat(name, "]"));
|
|
119
|
+
this.LOGGER.debug('handling events from %s', topic !== null && topic !== void 0 ? topic : 'the event bus');
|
|
124
120
|
}
|
|
125
121
|
return EventsProxy;
|
|
126
122
|
}());
|
|
@@ -16,7 +16,7 @@ export declare class HttpServer implements Lifecycle<string> {
|
|
|
16
16
|
constructor(name: string, settings: HttpSettings, handler: (request: IncomingMessage, requestBody: string, response: ServerResponse) => void);
|
|
17
17
|
start: () => Promise<string>;
|
|
18
18
|
private endpointUrl;
|
|
19
|
-
stop: () => Promise<
|
|
19
|
+
stop: () => Promise<any>;
|
|
20
20
|
}
|
|
21
21
|
export type HttpSettings = {
|
|
22
22
|
protocol: string;
|
package/dist/src/http-server.js
CHANGED
|
@@ -15,14 +15,13 @@ var HttpServer = /** @class */ (function () {
|
|
|
15
15
|
this.settings = settings;
|
|
16
16
|
this.handler = handler;
|
|
17
17
|
this.start = function () { return _this.server
|
|
18
|
-
.then(function () { return _this.LOGGER.
|
|
18
|
+
.then(function () { return _this.LOGGER.debug('listening [%s]', (0, assert_1.assertNotUndefined)(_this.address).port); })
|
|
19
19
|
.then(function () { return _this.endpointUrl(); }); };
|
|
20
20
|
this.endpointUrl = function () {
|
|
21
21
|
var address = (0, assert_1.assertNotUndefined)(_this.address, 'server not started');
|
|
22
22
|
return "".concat(_this.protocol, "//").concat(address.address, ":").concat(address.port, "/");
|
|
23
23
|
};
|
|
24
|
-
this.stop = function () { return _this.server.then(function (server) { return server.close(); })
|
|
25
|
-
.then(function () { return _this.LOGGER.info('stop %s', (0, assert_1.assertNotUndefined)(_this.address).port); }); };
|
|
24
|
+
this.stop = function () { return _this.server.then(function (server) { return server.close(); }).then(function () { return undefined; }); };
|
|
26
25
|
var server = (0, http_1.createServer)(function (req, res) {
|
|
27
26
|
req.setEncoding('utf-8');
|
|
28
27
|
var body = '';
|
package/dist/src/index.d.ts
CHANGED
|
@@ -13,3 +13,8 @@ export { all as allOf, oneThenOther } from './factories';
|
|
|
13
13
|
export { lazy, promised } from './deferred';
|
|
14
14
|
export { Lifecycle, Service } from './services';
|
|
15
15
|
export { DevServerConfig } from './config';
|
|
16
|
+
declare global {
|
|
17
|
+
interface Promise<T> {
|
|
18
|
+
tap(onfulfilled?: (value: T) => void, onrejected?: (reason: unknown) => void): Promise<T>;
|
|
19
|
+
}
|
|
20
|
+
}
|
package/dist/src/index.js
CHANGED
|
@@ -1,4 +1,40 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
13
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
+
function step(op) {
|
|
16
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
18
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
+
switch (op[0]) {
|
|
21
|
+
case 0: case 1: t = op; break;
|
|
22
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
+
default:
|
|
26
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
+
if (t[2]) _.ops.pop();
|
|
31
|
+
_.trys.pop(); continue;
|
|
32
|
+
}
|
|
33
|
+
op = body.call(thisArg, _);
|
|
34
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
+
}
|
|
37
|
+
};
|
|
2
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
39
|
exports.Service = exports.promised = exports.lazy = exports.oneThenOther = exports.allOf = exports.tunnel = exports.container = exports.dynamoDbTable = exports.preTrafficHooks = exports.scheduledTasks = exports.eventsProxy = exports.internalQueue = exports.snsHttpProxy = exports.lambdaHttpProxy = exports.httpServer = exports.DevServer = void 0;
|
|
4
40
|
var dev_server_1 = require("./dev-server");
|
|
@@ -31,3 +67,13 @@ Object.defineProperty(exports, "lazy", { enumerable: true, get: function () { re
|
|
|
31
67
|
Object.defineProperty(exports, "promised", { enumerable: true, get: function () { return deferred_1.promised; } });
|
|
32
68
|
var services_1 = require("./services");
|
|
33
69
|
Object.defineProperty(exports, "Service", { enumerable: true, get: function () { return services_1.Service; } });
|
|
70
|
+
Promise.prototype.tap = function (onfulfilled, onrejected) {
|
|
71
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
72
|
+
var _this = this;
|
|
73
|
+
return __generator(this, function (_a) {
|
|
74
|
+
return [2 /*return*/, this.then(onfulfilled, onrejected).then(function () { return __awaiter(_this, void 0, void 0, function () { return __generator(this, function (_a) {
|
|
75
|
+
return [2 /*return*/, this];
|
|
76
|
+
}); }); })];
|
|
77
|
+
});
|
|
78
|
+
});
|
|
79
|
+
};
|
|
@@ -89,9 +89,7 @@ var InternalQueue = /** @class */ (function () {
|
|
|
89
89
|
.then(function () { return _this; })];
|
|
90
90
|
});
|
|
91
91
|
}); };
|
|
92
|
-
this.stop = function () { return
|
|
93
|
-
.then(function (state) { return state !== undefined ? (0, stoppable_1.stopConsumer)(state.consumer, state.visibility).then(function () { return 'stopped'; }) : 'not started'; })
|
|
94
|
-
.then(function (status) { return _this.LOGGER.info(status); }); };
|
|
92
|
+
this.stop = function () { return (0, stoppable_1.stopConsumer)(_this.state.visibility, _this.state.consumer); };
|
|
95
93
|
this.queueName = (index + 1000).toString().padStart(10, '0');
|
|
96
94
|
this.LOGGER = logging_1.LoggerFactory.create("INTERNALQUEUE[".concat(name, "]"));
|
|
97
95
|
}
|
|
@@ -50,8 +50,7 @@ var LambdaHttpProxy = /** @class */ (function () {
|
|
|
50
50
|
this.name = name;
|
|
51
51
|
this.routes = routes;
|
|
52
52
|
this.start = function () { return _this.server.start(); };
|
|
53
|
-
this.stop = function () { return _this.server.stop()
|
|
54
|
-
.then(function () { return _this.LOGGER.info('stopped'); }); };
|
|
53
|
+
this.stop = function () { return _this.server.stop(); };
|
|
55
54
|
this.handler = function (lambdaHandler) {
|
|
56
55
|
return function (request, body, response) {
|
|
57
56
|
return lambdaHandler((0, mappers_1.mapToLambdaEvent)(request, body))
|
|
@@ -82,6 +81,7 @@ var LambdaHttpProxy = /** @class */ (function () {
|
|
|
82
81
|
};
|
|
83
82
|
this.server = new http_server_1.HttpServer(name, settings, this.resolveRoute);
|
|
84
83
|
this.LOGGER = logging_1.LoggerFactory.create("HTTP->LAMBDA[".concat(this.name, "]"));
|
|
84
|
+
this.LOGGER.info('registered %i routes', routes.length);
|
|
85
85
|
}
|
|
86
86
|
return LambdaHttpProxy;
|
|
87
87
|
}());
|
package/dist/src/localstack.js
CHANGED
|
@@ -57,12 +57,13 @@ var LocalStack = /** @class */ (function () {
|
|
|
57
57
|
accessKeyId: 'dummy',
|
|
58
58
|
secretAccessKey: 'dummy'
|
|
59
59
|
}
|
|
60
|
-
}); })
|
|
60
|
+
}); })
|
|
61
|
+
.tap(function () { return LOGGER.debug('started'); })];
|
|
61
62
|
});
|
|
62
63
|
}); };
|
|
63
64
|
this.stop = function () { return Promise.resolve(_this.started)
|
|
64
65
|
.then(function (container) { return container ? container.stop().then(function () { return 'stopped'; }) : 'not started'; })
|
|
65
|
-
.then(function (status) { return LOGGER.
|
|
66
|
+
.then(function (status) { return LOGGER.debug(status); }); };
|
|
66
67
|
var concreteConfig = this.configOrDefaults(config);
|
|
67
68
|
var container = new testcontainers_1.GenericContainer(concreteConfig.localStackDockerImage);
|
|
68
69
|
var localStatePath = concreteConfig.localStateBindMount;
|
|
@@ -83,7 +84,6 @@ var LocalStack = /** @class */ (function () {
|
|
|
83
84
|
.start()
|
|
84
85
|
.then(function (container) { return _this.started = container; })
|
|
85
86
|
.then(function (container) { return "".concat(PROTOCOL, "://").concat(container.getHost(), ":").concat(container.getMappedPort(SERVICES_PORT)); }); };
|
|
86
|
-
LOGGER.debug('initialized');
|
|
87
87
|
}
|
|
88
88
|
LocalStack.prototype.configOrDefaults = function (config) {
|
|
89
89
|
var selectedServicesPort = config === null || config === void 0 ? void 0 : config.boundServicesPort;
|
package/dist/src/mappers.js
CHANGED
|
@@ -6,7 +6,7 @@ var url_1 = require("url");
|
|
|
6
6
|
var LOGGER = logging_1.LoggerFactory.create('MAPPERS');
|
|
7
7
|
var mapToLambdaSqsRecord = function (message) {
|
|
8
8
|
if (!message.Body)
|
|
9
|
-
throw new Error(
|
|
9
|
+
throw new Error('message Body must be present');
|
|
10
10
|
return {
|
|
11
11
|
messageId: 'N/A',
|
|
12
12
|
receiptHandle: 'N/A',
|
|
@@ -37,6 +37,8 @@ function mapToLambdaEvent(req, requestBody) {
|
|
|
37
37
|
headers['Content-Type'] = req.headers['content-type'];
|
|
38
38
|
if (req.headers['accept'])
|
|
39
39
|
headers['Accept'] = req.headers['accept'];
|
|
40
|
+
if (req.headers['authorization'])
|
|
41
|
+
headers['authorization'] = req.headers['authorization'];
|
|
40
42
|
return {
|
|
41
43
|
httpMethod: req.method,
|
|
42
44
|
body: requestBody,
|
|
@@ -51,18 +51,14 @@ var PreTrafficHooks = /** @class */ (function () {
|
|
|
51
51
|
return __generator(this, function (_a) {
|
|
52
52
|
return [2 /*return*/, Promise
|
|
53
53
|
.all(this.hooks())
|
|
54
|
-
.then(function () { return _this.LOGGER.info('started'); })
|
|
55
54
|
.then(function () { return _this; })];
|
|
56
55
|
});
|
|
57
56
|
}); };
|
|
58
|
-
this.stop = function () { return __awaiter(_this, void 0, void 0, function () {
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
return [2 /*return*/, Promise.resolve()
|
|
62
|
-
.then(function () { return _this.LOGGER.info('stopped'); })];
|
|
63
|
-
});
|
|
64
|
-
}); };
|
|
57
|
+
this.stop = function () { return __awaiter(_this, void 0, void 0, function () { return __generator(this, function (_a) {
|
|
58
|
+
return [2 /*return*/, Promise.resolve()];
|
|
59
|
+
}); }); };
|
|
65
60
|
this.LOGGER = logging_1.LoggerFactory.create("PRETRAFFIC[".concat(name, "]"));
|
|
61
|
+
this.LOGGER.info('%i hooks registered', hooks.length);
|
|
66
62
|
}
|
|
67
63
|
return PreTrafficHooks;
|
|
68
64
|
}());
|
|
@@ -52,18 +52,14 @@ var ScheduledTasks = /** @class */ (function () {
|
|
|
52
52
|
var _this = this;
|
|
53
53
|
return __generator(this, function (_a) {
|
|
54
54
|
return [2 /*return*/, Promise.resolve(this.schedules.forEach(function (schedule) { return _this.intervals.push(setInterval(schedule.task, schedule.frequency * 1000)); }))
|
|
55
|
-
.then(function () { return _this.LOGGER.info('started'); })
|
|
56
55
|
.then(function () { return _this; })];
|
|
57
56
|
});
|
|
58
57
|
}); };
|
|
59
|
-
this.stop = function () { return __awaiter(_this, void 0, void 0, function () {
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
return [2 /*return*/, Promise.resolve(this.intervals.forEach(function (interval) { return (0, timers_1.clearInterval)(interval); }))
|
|
63
|
-
.then(function () { return _this.LOGGER.info('stopped'); })];
|
|
64
|
-
});
|
|
65
|
-
}); };
|
|
58
|
+
this.stop = function () { return __awaiter(_this, void 0, void 0, function () { return __generator(this, function (_a) {
|
|
59
|
+
return [2 /*return*/, Promise.resolve(this.intervals.forEach(function (interval) { return (0, timers_1.clearInterval)(interval); }))];
|
|
60
|
+
}); }); };
|
|
66
61
|
this.LOGGER = logging_1.LoggerFactory.create("SCHEDULER[".concat(name, "]"));
|
|
62
|
+
this.LOGGER.info('registered %i scheduled tasks', schedules.length);
|
|
67
63
|
}
|
|
68
64
|
return ScheduledTasks;
|
|
69
65
|
}());
|
|
@@ -29,17 +29,16 @@ var SnsHttpProxy = /** @class */ (function () {
|
|
|
29
29
|
this.topic = topic;
|
|
30
30
|
this.start = function (config) { return Promise.resolve(_this.server)
|
|
31
31
|
.then(function (server) { return server.start(); })
|
|
32
|
-
.
|
|
32
|
+
.tap(function () {
|
|
33
33
|
var _a;
|
|
34
34
|
_this.config = {
|
|
35
35
|
topic: (_a = _this.topic) !== null && _a !== void 0 ? _a : config.eventsProxy.topic.arn,
|
|
36
36
|
sns: config.sns
|
|
37
37
|
};
|
|
38
|
-
return endpoint;
|
|
39
38
|
})
|
|
40
39
|
.then(function (endpoint) { return endpoint; }); };
|
|
41
40
|
this.stop = function () { return _this.onlyWhenStarted(_this.server).stop()
|
|
42
|
-
.then(function () { return _this.LOGGER.
|
|
41
|
+
.then(function () { return _this.LOGGER.debug('stopped'); }); };
|
|
43
42
|
this.handler = function (method, subject) {
|
|
44
43
|
return function (request, body, response) {
|
|
45
44
|
return Promise.resolve(((0, assert_1.assertNotUndefined)(_this.config)))
|
|
@@ -78,6 +77,7 @@ var SnsHttpProxy = /** @class */ (function () {
|
|
|
78
77
|
};
|
|
79
78
|
this.server = new http_server_1.HttpServer(this.name, this.settings, this.handler(this.method, this.subject));
|
|
80
79
|
this.LOGGER = logging_1.LoggerFactory.create("HTTP->SNS[".concat(name, "]"));
|
|
80
|
+
this.LOGGER.info('forwarding %s %s events to %s', subject ? "events with ".concat(subject, " subject") : 'all', method, topic !== null && topic !== void 0 ? topic : 'the event bus');
|
|
81
81
|
}
|
|
82
82
|
return SnsHttpProxy;
|
|
83
83
|
}());
|
package/dist/src/sns.js
CHANGED
|
@@ -50,7 +50,8 @@ var Sns = /** @class */ (function () {
|
|
|
50
50
|
.send(new client_sns_1.CreateTopicCommand({
|
|
51
51
|
Name: topic,
|
|
52
52
|
}))
|
|
53
|
-
.then(function (o) { return (0, assert_1.assertNotUndefined)(o.TopicArn, 'TopicArn is not present'); })
|
|
53
|
+
.then(function (o) { return (0, assert_1.assertNotUndefined)(o.TopicArn, 'TopicArn is not present'); })
|
|
54
|
+
.tap(function (arn) { return LOGGER.debug('topic %o created', arn); })];
|
|
54
55
|
});
|
|
55
56
|
}); };
|
|
56
57
|
this.createSubscription = function (topic, queue) { return __awaiter(_this, void 0, void 0, function () {
|
|
@@ -61,7 +62,7 @@ var Sns = /** @class */ (function () {
|
|
|
61
62
|
Protocol: 'sqs',
|
|
62
63
|
Endpoint: queue.arn,
|
|
63
64
|
}))
|
|
64
|
-
.then(function () { return LOGGER.debug('
|
|
65
|
+
.then(function () { return LOGGER.debug('subscription %s->%s created', topic.arn, queue.arn); })];
|
|
65
66
|
});
|
|
66
67
|
}); };
|
|
67
68
|
this.publish = function (topic, body, subject, attributes) { return __awaiter(_this, void 0, void 0, function () {
|
|
@@ -73,12 +74,11 @@ var Sns = /** @class */ (function () {
|
|
|
73
74
|
MessageAttributes: attributes,
|
|
74
75
|
Subject: subject,
|
|
75
76
|
}))
|
|
76
|
-
.then(function () { return LOGGER.
|
|
77
|
+
.then(function () { return LOGGER.trace('published %s[%s]', topic.arn, subject); })
|
|
77
78
|
.then()];
|
|
78
79
|
});
|
|
79
80
|
}); };
|
|
80
81
|
this.client = new client_sns_1.SNSClient(aws);
|
|
81
|
-
LOGGER.debug('initialized');
|
|
82
82
|
}
|
|
83
83
|
return Sns;
|
|
84
84
|
}());
|
package/dist/src/sqs.js
CHANGED
|
@@ -60,11 +60,11 @@ var Sqs = /** @class */ (function () {
|
|
|
60
60
|
.then(function (attributes) { return ({
|
|
61
61
|
url: (0, assert_1.assertNotUndefined)(create.QueueUrl),
|
|
62
62
|
arn: (0, assert_1.assertNotUndefined)(attributes.Attributes)[QUEUE_NAME_ATTRIBUTE_NAME],
|
|
63
|
-
}); }); })
|
|
63
|
+
}); }); })
|
|
64
|
+
.tap(function (queue) { return LOGGER.debug('created %s', queue.arn); })];
|
|
64
65
|
});
|
|
65
66
|
}); };
|
|
66
67
|
this.client = new client_sqs_1.SQSClient(config);
|
|
67
|
-
LOGGER.debug('initialized');
|
|
68
68
|
}
|
|
69
69
|
return Sqs;
|
|
70
70
|
}());
|
package/dist/src/stoppable.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { Consumer } from "sqs-consumer";
|
|
2
|
-
export declare const stopConsumer: (
|
|
2
|
+
export declare const stopConsumer: (queueWaitTimeSecs: number, target?: Consumer) => Promise<void>;
|
package/dist/src/stoppable.js
CHANGED
|
@@ -37,12 +37,18 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
37
37
|
};
|
|
38
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
39
|
exports.stopConsumer = void 0;
|
|
40
|
-
var stopConsumer = function (
|
|
40
|
+
var stopConsumer = function (queueWaitTimeSecs, target) { return __awaiter(void 0, void 0, void 0, function () {
|
|
41
41
|
return __generator(this, function (_a) {
|
|
42
|
-
target
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
42
|
+
if (target) {
|
|
43
|
+
target.stop();
|
|
44
|
+
return [2 /*return*/, new Promise(function (resolve) {
|
|
45
|
+
setTimeout(resolve, queueWaitTimeSecs * 1000 + 1);
|
|
46
|
+
})];
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
return [2 /*return*/, Promise.resolve()];
|
|
50
|
+
}
|
|
51
|
+
return [2 /*return*/];
|
|
46
52
|
});
|
|
47
53
|
}); };
|
|
48
54
|
exports.stopConsumer = stopConsumer;
|
package/dist/src/tunnel.js
CHANGED
|
@@ -40,6 +40,7 @@ exports.newTunnel = exports.terminate = void 0;
|
|
|
40
40
|
var services_1 = require("./services");
|
|
41
41
|
var logging_1 = require("@yopdev/logging");
|
|
42
42
|
var ngrok = require("@ngrok/ngrok");
|
|
43
|
+
var assert_1 = require("./assert");
|
|
43
44
|
var terminate = function () { return __awaiter(void 0, void 0, void 0, function () { return __generator(this, function (_a) {
|
|
44
45
|
return [2 /*return*/, ngrok.kill()];
|
|
45
46
|
}); }); };
|
|
@@ -65,19 +66,13 @@ var Tunnel = /** @class */ (function () {
|
|
|
65
66
|
addr: this.port,
|
|
66
67
|
authtoken: (_b = this.domain) === null || _b === void 0 ? void 0 : _b.token,
|
|
67
68
|
})
|
|
68
|
-
.then(function (listener) {
|
|
69
|
-
|
|
70
|
-
_this.logger.info('start %s', url);
|
|
71
|
-
return url || 'undefined';
|
|
72
|
-
})];
|
|
73
|
-
});
|
|
74
|
-
}); };
|
|
75
|
-
this.stop = function () { return __awaiter(_this, void 0, void 0, function () {
|
|
76
|
-
var _this = this;
|
|
77
|
-
return __generator(this, function (_a) {
|
|
78
|
-
return [2 /*return*/, ngrok.disconnect().then(function () { return _this.logger.info('stop'); })];
|
|
69
|
+
.then(function (listener) { return (0, assert_1.assertNotUndefined)(listener.url()); })
|
|
70
|
+
.tap(function (url) { return _this.logger.debug(url); })];
|
|
79
71
|
});
|
|
80
72
|
}); };
|
|
73
|
+
this.stop = function () { return __awaiter(_this, void 0, void 0, function () { return __generator(this, function (_a) {
|
|
74
|
+
return [2 /*return*/, ngrok.disconnect()];
|
|
75
|
+
}); }); };
|
|
81
76
|
this.logger = logging_1.LoggerFactory.create("TUNNEL[".concat(name, "]"));
|
|
82
77
|
}
|
|
83
78
|
return Tunnel;
|