serverless-offline 8.2.0 → 8.5.0
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/README.md +157 -116
- package/dist/ServerlessOffline.js +98 -26
- package/dist/config/commandOptions.js +4 -0
- package/dist/config/constants.js +1 -1
- package/dist/config/defaultOptions.js +1 -0
- package/dist/events/http/Endpoint.js +27 -9
- package/dist/events/http/Http.js +3 -3
- package/dist/events/http/HttpServer.js +355 -82
- package/dist/events/http/authFunctionNameExtractor.js +14 -8
- package/dist/events/http/authJWTSettingsExtractor.js +14 -7
- package/dist/events/http/createAuthScheme.js +44 -9
- package/dist/events/http/createJWTAuthScheme.js +52 -13
- package/dist/events/http/lambda-events/LambdaIntegrationEvent.js +7 -6
- package/dist/events/http/lambda-events/LambdaProxyIntegrationEvent.js +38 -7
- package/dist/events/http/lambda-events/LambdaProxyIntegrationEventV2.js +37 -6
- package/dist/events/http/lambda-events/VelocityContext.js +4 -4
- package/dist/events/http/lambda-events/index.js +4 -4
- package/dist/events/http/lambda-events/renderVelocityTemplateObject.js +19 -7
- package/dist/events/schedule/Schedule.js +45 -10
- package/dist/events/websocket/HttpServer.js +24 -7
- package/dist/events/websocket/WebSocket.js +14 -6
- package/dist/events/websocket/WebSocketClients.js +127 -38
- package/dist/events/websocket/WebSocketServer.js +79 -11
- package/dist/events/websocket/http-routes/_catchAll/catchAllRoute.js +9 -2
- package/dist/events/websocket/http-routes/connections/ConnectionsController.js +1 -1
- package/dist/events/websocket/http-routes/connections/connectionsRoutes.js +28 -5
- package/dist/events/websocket/lambda-events/WebSocketConnectEvent.js +5 -5
- package/dist/events/websocket/lambda-events/WebSocketDisconnectEvent.js +1 -1
- package/dist/events/websocket/lambda-events/WebSocketEvent.js +3 -3
- package/dist/events/websocket/lambda-events/WebSocketRequestContext.js +4 -4
- package/dist/lambda/HttpServer.js +34 -10
- package/dist/lambda/Lambda.js +15 -7
- package/dist/lambda/LambdaContext.js +1 -1
- package/dist/lambda/LambdaFunction.js +40 -23
- package/dist/lambda/LambdaFunctionPool.js +9 -8
- package/dist/lambda/handler-runner/HandlerRunner.js +51 -16
- package/dist/lambda/handler-runner/child-process-runner/ChildProcessRunner.js +21 -8
- package/dist/lambda/handler-runner/child-process-runner/childProcessHelper.js +1 -10
- package/dist/lambda/handler-runner/docker-runner/DockerContainer.js +168 -69
- package/dist/lambda/handler-runner/docker-runner/DockerImage.js +21 -5
- package/dist/lambda/handler-runner/docker-runner/DockerRunner.js +4 -4
- package/dist/lambda/handler-runner/go-runner/GoRunner.js +211 -0
- package/dist/lambda/handler-runner/go-runner/index.js +15 -0
- package/dist/lambda/handler-runner/in-process-runner/InProcessRunner.js +16 -22
- package/dist/lambda/handler-runner/java-runner/JavaRunner.js +26 -14
- package/dist/lambda/handler-runner/python-runner/PythonRunner.js +20 -7
- package/dist/lambda/handler-runner/ruby-runner/RubyRunner.js +22 -24
- package/dist/lambda/handler-runner/worker-thread-runner/WorkerThreadRunner.js +2 -2
- package/dist/lambda/handler-runner/worker-thread-runner/workerThreadHelper.js +1 -11
- package/dist/lambda/routes/invocations/InvocationsController.js +30 -11
- package/dist/lambda/routes/invocations/invocationsRoute.js +4 -3
- package/dist/lambda/routes/invoke-async/InvokeAsyncController.js +2 -6
- package/dist/serverlessLog.js +1 -1
- package/dist/utils/checkGoVersion.js +27 -0
- package/dist/utils/getHttpApiCorsConfig.js +18 -5
- package/dist/utils/index.js +24 -16
- package/package.json +86 -37
|
@@ -7,6 +7,10 @@ exports.default = void 0;
|
|
|
7
7
|
|
|
8
8
|
var _updateNotifier = _interopRequireDefault(require("update-notifier"));
|
|
9
9
|
|
|
10
|
+
var _chalk = _interopRequireDefault(require("chalk"));
|
|
11
|
+
|
|
12
|
+
var _semver = require("semver");
|
|
13
|
+
|
|
10
14
|
var _debugLog = _interopRequireDefault(require("./debugLog.js"));
|
|
11
15
|
|
|
12
16
|
var _serverlessLog = _interopRequireWildcard(require("./serverlessLog.js"));
|
|
@@ -19,9 +23,9 @@ var _package = _interopRequireDefault(require("../package.json"));
|
|
|
19
23
|
|
|
20
24
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
21
25
|
|
|
22
|
-
function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var
|
|
26
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
23
27
|
|
|
24
|
-
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
28
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
25
29
|
|
|
26
30
|
function _classPrivateFieldLooseBase(receiver, privateKey) { if (!Object.prototype.hasOwnProperty.call(receiver, privateKey)) { throw new TypeError("attempted to use private field on non-instance"); } return receiver; }
|
|
27
31
|
|
|
@@ -29,22 +33,22 @@ var id = 0;
|
|
|
29
33
|
|
|
30
34
|
function _classPrivateFieldLooseKey(name) { return "__private_" + id++ + "_" + name; }
|
|
31
35
|
|
|
32
|
-
var _cliOptions = _classPrivateFieldLooseKey("cliOptions");
|
|
36
|
+
var _cliOptions = /*#__PURE__*/_classPrivateFieldLooseKey("cliOptions");
|
|
33
37
|
|
|
34
|
-
var _http = _classPrivateFieldLooseKey("http");
|
|
38
|
+
var _http = /*#__PURE__*/_classPrivateFieldLooseKey("http");
|
|
35
39
|
|
|
36
|
-
var _options = _classPrivateFieldLooseKey("options");
|
|
40
|
+
var _options = /*#__PURE__*/_classPrivateFieldLooseKey("options");
|
|
37
41
|
|
|
38
|
-
var _schedule = _classPrivateFieldLooseKey("schedule");
|
|
42
|
+
var _schedule = /*#__PURE__*/_classPrivateFieldLooseKey("schedule");
|
|
39
43
|
|
|
40
|
-
var _webSocket = _classPrivateFieldLooseKey("webSocket");
|
|
44
|
+
var _webSocket = /*#__PURE__*/_classPrivateFieldLooseKey("webSocket");
|
|
41
45
|
|
|
42
|
-
var _lambda = _classPrivateFieldLooseKey("lambda");
|
|
46
|
+
var _lambda = /*#__PURE__*/_classPrivateFieldLooseKey("lambda");
|
|
43
47
|
|
|
44
|
-
var _serverless = _classPrivateFieldLooseKey("serverless");
|
|
48
|
+
var _serverless = /*#__PURE__*/_classPrivateFieldLooseKey("serverless");
|
|
45
49
|
|
|
46
50
|
class ServerlessOffline {
|
|
47
|
-
constructor(serverless, cliOptions) {
|
|
51
|
+
constructor(serverless, cliOptions, v3Utils) {
|
|
48
52
|
Object.defineProperty(this, _cliOptions, {
|
|
49
53
|
writable: true,
|
|
50
54
|
value: null
|
|
@@ -75,6 +79,14 @@ class ServerlessOffline {
|
|
|
75
79
|
});
|
|
76
80
|
_classPrivateFieldLooseBase(this, _cliOptions)[_cliOptions] = cliOptions;
|
|
77
81
|
_classPrivateFieldLooseBase(this, _serverless)[_serverless] = serverless;
|
|
82
|
+
|
|
83
|
+
if (v3Utils) {
|
|
84
|
+
this.log = v3Utils.log;
|
|
85
|
+
this.progress = v3Utils.progress;
|
|
86
|
+
this.writeText = v3Utils.writeText;
|
|
87
|
+
this.v3Utils = v3Utils;
|
|
88
|
+
}
|
|
89
|
+
|
|
78
90
|
(0, _serverlessLog.setLog)((...args) => serverless.cli.log(...args));
|
|
79
91
|
this.commands = {
|
|
80
92
|
offline: {
|
|
@@ -101,7 +113,11 @@ class ServerlessOffline {
|
|
|
101
113
|
|
|
102
114
|
_printBlankLine() {
|
|
103
115
|
if (process.env.NODE_ENV !== 'test') {
|
|
104
|
-
|
|
116
|
+
if (this.log) {
|
|
117
|
+
this.log.notice();
|
|
118
|
+
} else {
|
|
119
|
+
console.log();
|
|
120
|
+
}
|
|
105
121
|
}
|
|
106
122
|
} // Entry point for the plugin (sls offline) when running 'sls offline start'
|
|
107
123
|
|
|
@@ -134,7 +150,7 @@ class ServerlessOffline {
|
|
|
134
150
|
eventModules.push(this._createHttp(httpEvents));
|
|
135
151
|
}
|
|
136
152
|
|
|
137
|
-
if (scheduleEvents.length > 0) {
|
|
153
|
+
if (!_classPrivateFieldLooseBase(this, _options)[_options].disableScheduledEvents && scheduleEvents.length > 0) {
|
|
138
154
|
eventModules.push(this._createSchedule(scheduleEvents));
|
|
139
155
|
}
|
|
140
156
|
|
|
@@ -157,7 +173,12 @@ class ServerlessOffline {
|
|
|
157
173
|
return;
|
|
158
174
|
}
|
|
159
175
|
|
|
160
|
-
(
|
|
176
|
+
if (this.log) {
|
|
177
|
+
this.log.info('Halting offline server');
|
|
178
|
+
} else {
|
|
179
|
+
(0, _serverlessLog.default)('Halting offline server');
|
|
180
|
+
}
|
|
181
|
+
|
|
161
182
|
const eventModules = [];
|
|
162
183
|
|
|
163
184
|
if (_classPrivateFieldLooseBase(this, _lambda)[_lambda]) {
|
|
@@ -204,14 +225,19 @@ class ServerlessOffline {
|
|
|
204
225
|
// with child_process methods
|
|
205
226
|
.on('SIGTERM', () => resolve('SIGTERM'));
|
|
206
227
|
});
|
|
207
|
-
|
|
228
|
+
|
|
229
|
+
if (this.log) {
|
|
230
|
+
this.log.info(`Got ${command} signal. Offline Halting...`);
|
|
231
|
+
} else {
|
|
232
|
+
(0, _serverlessLog.default)(`Got ${command} signal. Offline Halting...`);
|
|
233
|
+
}
|
|
208
234
|
}
|
|
209
235
|
|
|
210
236
|
async _createLambda(lambdas, skipStart) {
|
|
211
237
|
const {
|
|
212
238
|
default: Lambda
|
|
213
239
|
} = await Promise.resolve().then(() => _interopRequireWildcard(require('./lambda/index.js')));
|
|
214
|
-
_classPrivateFieldLooseBase(this, _lambda)[_lambda] = new Lambda(_classPrivateFieldLooseBase(this, _serverless)[_serverless], _classPrivateFieldLooseBase(this, _options)[_options]);
|
|
240
|
+
_classPrivateFieldLooseBase(this, _lambda)[_lambda] = new Lambda(_classPrivateFieldLooseBase(this, _serverless)[_serverless], _classPrivateFieldLooseBase(this, _options)[_options], this.v3Utils);
|
|
215
241
|
|
|
216
242
|
_classPrivateFieldLooseBase(this, _lambda)[_lambda].create(lambdas);
|
|
217
243
|
|
|
@@ -224,7 +250,7 @@ class ServerlessOffline {
|
|
|
224
250
|
const {
|
|
225
251
|
default: Http
|
|
226
252
|
} = await Promise.resolve().then(() => _interopRequireWildcard(require('./events/http/index.js')));
|
|
227
|
-
_classPrivateFieldLooseBase(this, _http)[_http] = new Http(_classPrivateFieldLooseBase(this, _serverless)[_serverless], _classPrivateFieldLooseBase(this, _options)[_options], _classPrivateFieldLooseBase(this, _lambda)[_lambda]);
|
|
253
|
+
_classPrivateFieldLooseBase(this, _http)[_http] = new Http(_classPrivateFieldLooseBase(this, _serverless)[_serverless], _classPrivateFieldLooseBase(this, _options)[_options], _classPrivateFieldLooseBase(this, _lambda)[_lambda], this.v3Utils);
|
|
228
254
|
await _classPrivateFieldLooseBase(this, _http)[_http].registerPlugins();
|
|
229
255
|
|
|
230
256
|
_classPrivateFieldLooseBase(this, _http)[_http].create(events); // HTTP Proxy defined in Resource
|
|
@@ -246,7 +272,7 @@ class ServerlessOffline {
|
|
|
246
272
|
const {
|
|
247
273
|
default: Schedule
|
|
248
274
|
} = await Promise.resolve().then(() => _interopRequireWildcard(require('./events/schedule/index.js')));
|
|
249
|
-
_classPrivateFieldLooseBase(this, _schedule)[_schedule] = new Schedule(_classPrivateFieldLooseBase(this, _lambda)[_lambda], _classPrivateFieldLooseBase(this, _serverless)[_serverless].service.provider.region);
|
|
275
|
+
_classPrivateFieldLooseBase(this, _schedule)[_schedule] = new Schedule(_classPrivateFieldLooseBase(this, _lambda)[_lambda], _classPrivateFieldLooseBase(this, _serverless)[_serverless].service.provider.region, this.v3Utils);
|
|
250
276
|
|
|
251
277
|
_classPrivateFieldLooseBase(this, _schedule)[_schedule].create(events);
|
|
252
278
|
}
|
|
@@ -255,7 +281,7 @@ class ServerlessOffline {
|
|
|
255
281
|
const {
|
|
256
282
|
default: WebSocket
|
|
257
283
|
} = await Promise.resolve().then(() => _interopRequireWildcard(require('./events/websocket/index.js')));
|
|
258
|
-
_classPrivateFieldLooseBase(this, _webSocket)[_webSocket] = new WebSocket(_classPrivateFieldLooseBase(this, _serverless)[_serverless], _classPrivateFieldLooseBase(this, _options)[_options], _classPrivateFieldLooseBase(this, _lambda)[_lambda]);
|
|
284
|
+
_classPrivateFieldLooseBase(this, _webSocket)[_webSocket] = new WebSocket(_classPrivateFieldLooseBase(this, _serverless)[_serverless], _classPrivateFieldLooseBase(this, _options)[_options], _classPrivateFieldLooseBase(this, _lambda)[_lambda], this.v3Utils);
|
|
259
285
|
|
|
260
286
|
_classPrivateFieldLooseBase(this, _webSocket)[_webSocket].create(events);
|
|
261
287
|
|
|
@@ -292,8 +318,16 @@ class ServerlessOffline {
|
|
|
292
318
|
headers: _classPrivateFieldLooseBase(this, _options)[_options].corsAllowHeaders,
|
|
293
319
|
origin: _classPrivateFieldLooseBase(this, _options)[_options].corsAllowOrigin
|
|
294
320
|
};
|
|
295
|
-
|
|
296
|
-
(
|
|
321
|
+
|
|
322
|
+
if (this.log) {
|
|
323
|
+
this.log.notice();
|
|
324
|
+
this.log.notice(`Starting Offline at stage ${provider.stage} ${_chalk.default.gray(`(${provider.region})`)}`);
|
|
325
|
+
this.log.notice();
|
|
326
|
+
this.log.debug('options:', _classPrivateFieldLooseBase(this, _options)[_options]);
|
|
327
|
+
} else {
|
|
328
|
+
(0, _serverlessLog.default)(`Starting Offline: ${provider.stage} ${provider.region}.`);
|
|
329
|
+
(0, _debugLog.default)('options:', _classPrivateFieldLooseBase(this, _options)[_options]);
|
|
330
|
+
}
|
|
297
331
|
}
|
|
298
332
|
|
|
299
333
|
_getEvents() {
|
|
@@ -338,7 +372,12 @@ class ServerlessOffline {
|
|
|
338
372
|
};
|
|
339
373
|
} else if (typeof httpEvent.http === 'object') {
|
|
340
374
|
if (!httpEvent.http.method) {
|
|
341
|
-
(
|
|
375
|
+
if (this.log) {
|
|
376
|
+
this.log.warning(`Event definition is missing a method for function "${functionKey}"`);
|
|
377
|
+
} else {
|
|
378
|
+
(0, _serverlessLog.logWarning)(`Event definition is missing a method for function "${functionKey}"`);
|
|
379
|
+
}
|
|
380
|
+
|
|
342
381
|
httpEvent.http.method = '';
|
|
343
382
|
}
|
|
344
383
|
|
|
@@ -349,12 +388,22 @@ class ServerlessOffline {
|
|
|
349
388
|
delete httpEvent.http.method;
|
|
350
389
|
delete httpEvent.http.path;
|
|
351
390
|
} else {
|
|
352
|
-
(
|
|
391
|
+
if (this.log) {
|
|
392
|
+
this.log.warning(`Event definition must be a string or object but received ${typeof httpEvent.http} for function "${functionKey}"`);
|
|
393
|
+
} else {
|
|
394
|
+
(0, _serverlessLog.logWarning)(`Event definition must be a string or object but received ${typeof httpEvent.http} for function "${functionKey}"`);
|
|
395
|
+
}
|
|
396
|
+
|
|
353
397
|
httpEvent.http.routeKey = '';
|
|
354
398
|
}
|
|
355
399
|
|
|
356
400
|
httpEvent.http.isHttpApi = true;
|
|
357
|
-
|
|
401
|
+
|
|
402
|
+
if (functionDefinition.httpApi && functionDefinition.httpApi.payload) {
|
|
403
|
+
httpEvent.http.payload = functionDefinition.httpApi.payload;
|
|
404
|
+
} else {
|
|
405
|
+
httpEvent.http.payload = service.provider.httpApi && service.provider.httpApi.payload ? service.provider.httpApi.payload : '2.0';
|
|
406
|
+
}
|
|
358
407
|
}
|
|
359
408
|
|
|
360
409
|
if (http && http.private) {
|
|
@@ -381,10 +430,20 @@ class ServerlessOffline {
|
|
|
381
430
|
}); // for simple API Key authentication model
|
|
382
431
|
|
|
383
432
|
if (hasPrivateHttpEvent) {
|
|
384
|
-
(
|
|
433
|
+
if (this.log) {
|
|
434
|
+
this.log.notice(`Key with token: ${_classPrivateFieldLooseBase(this, _options)[_options].apiKey}`);
|
|
435
|
+
} else {
|
|
436
|
+
(0, _serverlessLog.default)(`Key with token: ${_classPrivateFieldLooseBase(this, _options)[_options].apiKey}`);
|
|
437
|
+
}
|
|
385
438
|
|
|
386
439
|
if (_classPrivateFieldLooseBase(this, _options)[_options].noAuth) {
|
|
387
|
-
(
|
|
440
|
+
if (this.log) {
|
|
441
|
+
this.log.notice('Authorizers are turned off. You do not need to use x-api-key header.');
|
|
442
|
+
} else {
|
|
443
|
+
(0, _serverlessLog.default)('Authorizers are turned off. You do not need to use x-api-key header.');
|
|
444
|
+
}
|
|
445
|
+
} else if (this.log) {
|
|
446
|
+
this.log.notice('Remember to use x-api-key on the request headers');
|
|
388
447
|
} else {
|
|
389
448
|
(0, _serverlessLog.default)('Remember to use x-api-key on the request headers');
|
|
390
449
|
}
|
|
@@ -408,13 +467,26 @@ class ServerlessOffline {
|
|
|
408
467
|
const currentVersion = _classPrivateFieldLooseBase(this, _serverless)[_serverless].version;
|
|
409
468
|
|
|
410
469
|
const requiredVersionRange = _package.default.peerDependencies.serverless;
|
|
470
|
+
|
|
471
|
+
if ((0, _semver.parse)(currentVersion).prerelease.length) {
|
|
472
|
+
// Do not validate, if run against serverless pre-release
|
|
473
|
+
return;
|
|
474
|
+
}
|
|
475
|
+
|
|
411
476
|
const versionIsSatisfied = (0, _index.satisfiesVersionRange)(currentVersion, requiredVersionRange);
|
|
412
477
|
|
|
413
478
|
if (!versionIsSatisfied) {
|
|
414
|
-
(
|
|
479
|
+
if (this.log) {
|
|
480
|
+
this.log.warning(`serverless-offline requires serverless version ${requiredVersionRange} but found version ${currentVersion}.
|
|
415
481
|
Be aware that functionality might be limited or contains bugs.
|
|
416
482
|
To avoid any issues update serverless to a later version.
|
|
417
483
|
`);
|
|
484
|
+
} else {
|
|
485
|
+
(0, _serverlessLog.logWarning)(`serverless-offline requires serverless version ${requiredVersionRange} but found version ${currentVersion}.
|
|
486
|
+
Be aware that functionality might be limited or contains bugs.
|
|
487
|
+
To avoid any issues update serverless to a later version.
|
|
488
|
+
`);
|
|
489
|
+
}
|
|
418
490
|
}
|
|
419
491
|
}
|
|
420
492
|
|
|
@@ -29,6 +29,10 @@ var _default = {
|
|
|
29
29
|
usage: 'Used to disable cookie-validation on hapi.js-server',
|
|
30
30
|
type: 'boolean'
|
|
31
31
|
},
|
|
32
|
+
disableScheduledEvents: {
|
|
33
|
+
usage: 'Disables all scheduled events. Overrides configurations in serverless.yml. Default: false',
|
|
34
|
+
type: 'boolean'
|
|
35
|
+
},
|
|
32
36
|
enforceSecureCookies: {
|
|
33
37
|
usage: 'Enforce secure cookies',
|
|
34
38
|
type: 'boolean'
|
package/dist/config/constants.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.
|
|
6
|
+
exports.SERVER_SHUTDOWN_TIMEOUT = exports.DEFAULT_WEBSOCKETS_ROUTE = exports.DEFAULT_WEBSOCKETS_API_ROUTE_SELECTION_EXPRESSION = exports.DEFAULT_LAMBDA_TIMEOUT = exports.DEFAULT_LAMBDA_RUNTIME = exports.DEFAULT_LAMBDA_MEMORY_SIZE = exports.DEFAULT_DOCKER_CONTAINER_PORT = exports.CUSTOM_OPTION = exports.BASE_URL_PLACEHOLDER = void 0;
|
|
7
7
|
// dummy placeholder url for the WHATWG URL constructor
|
|
8
8
|
// https://github.com/nodejs/node/issues/12682
|
|
9
9
|
const BASE_URL_PLACEHOLDER = 'http://example';
|
|
@@ -41,12 +41,12 @@ function getResponseContentType(fep) {
|
|
|
41
41
|
return 'application/json';
|
|
42
42
|
}
|
|
43
43
|
|
|
44
|
-
var _handlerPath = _classPrivateFieldLooseKey("handlerPath");
|
|
44
|
+
var _handlerPath = /*#__PURE__*/_classPrivateFieldLooseKey("handlerPath");
|
|
45
45
|
|
|
46
|
-
var _http = _classPrivateFieldLooseKey("http");
|
|
46
|
+
var _http = /*#__PURE__*/_classPrivateFieldLooseKey("http");
|
|
47
47
|
|
|
48
48
|
class Endpoint {
|
|
49
|
-
constructor(handlerPath, http) {
|
|
49
|
+
constructor(handlerPath, http, v3Utils) {
|
|
50
50
|
Object.defineProperty(this, _handlerPath, {
|
|
51
51
|
writable: true,
|
|
52
52
|
value: null
|
|
@@ -57,6 +57,14 @@ class Endpoint {
|
|
|
57
57
|
});
|
|
58
58
|
_classPrivateFieldLooseBase(this, _handlerPath)[_handlerPath] = handlerPath;
|
|
59
59
|
_classPrivateFieldLooseBase(this, _http)[_http] = http;
|
|
60
|
+
|
|
61
|
+
if (v3Utils) {
|
|
62
|
+
this.log = v3Utils.log;
|
|
63
|
+
this.progress = v3Utils.progress;
|
|
64
|
+
this.writeText = v3Utils.writeText;
|
|
65
|
+
this.v3Utils = v3Utils;
|
|
66
|
+
}
|
|
67
|
+
|
|
60
68
|
return this._generate();
|
|
61
69
|
} // determine whether we have function level overrides for velocity templates
|
|
62
70
|
// if not we will use defaults
|
|
@@ -79,15 +87,21 @@ class Endpoint {
|
|
|
79
87
|
});
|
|
80
88
|
} // load request template if exists if not use default from serverless offline
|
|
81
89
|
else if ((0, _fs.existsSync)(reqFilename)) {
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
90
|
+
fep.requestTemplates['application/json'] = readFile(reqFilename);
|
|
91
|
+
} else {
|
|
92
|
+
fep.requestTemplates['application/json'] = defaultRequestTemplate;
|
|
93
|
+
} // determine response template
|
|
86
94
|
|
|
87
95
|
|
|
88
96
|
const resFilename = `${_classPrivateFieldLooseBase(this, _handlerPath)[_handlerPath]}.res.vm`;
|
|
89
97
|
fep.responseContentType = getResponseContentType(fep);
|
|
90
|
-
|
|
98
|
+
|
|
99
|
+
if (this.log) {
|
|
100
|
+
this.log.debug('Response Content-Type ', fep.responseContentType);
|
|
101
|
+
} else {
|
|
102
|
+
(0, _debugLog.default)('Response Content-Type ', fep.responseContentType);
|
|
103
|
+
} // load response template from http response template, or load file if exists other use default
|
|
104
|
+
|
|
91
105
|
|
|
92
106
|
if (fep.response && fep.response.template) {
|
|
93
107
|
fep.responses.default.responseTemplates[fep.responseContentType] = fep.response.template;
|
|
@@ -97,7 +111,11 @@ class Endpoint {
|
|
|
97
111
|
fep.responses.default.responseTemplates[fep.responseContentType] = defaultResponseTemplate;
|
|
98
112
|
}
|
|
99
113
|
} catch (err) {
|
|
100
|
-
(
|
|
114
|
+
if (this.log) {
|
|
115
|
+
this.log.debug(`Error: ${err}`);
|
|
116
|
+
} else {
|
|
117
|
+
(0, _debugLog.default)(`Error: ${err}`);
|
|
118
|
+
}
|
|
101
119
|
}
|
|
102
120
|
|
|
103
121
|
return fep;
|
package/dist/events/http/Http.js
CHANGED
|
@@ -17,15 +17,15 @@ var id = 0;
|
|
|
17
17
|
|
|
18
18
|
function _classPrivateFieldLooseKey(name) { return "__private_" + id++ + "_" + name; }
|
|
19
19
|
|
|
20
|
-
var _httpServer = _classPrivateFieldLooseKey("httpServer");
|
|
20
|
+
var _httpServer = /*#__PURE__*/_classPrivateFieldLooseKey("httpServer");
|
|
21
21
|
|
|
22
22
|
class Http {
|
|
23
|
-
constructor(serverless, options, lambda) {
|
|
23
|
+
constructor(serverless, options, lambda, v3Utils) {
|
|
24
24
|
Object.defineProperty(this, _httpServer, {
|
|
25
25
|
writable: true,
|
|
26
26
|
value: null
|
|
27
27
|
});
|
|
28
|
-
_classPrivateFieldLooseBase(this, _httpServer)[_httpServer] = new _HttpServer.default(serverless, options, lambda);
|
|
28
|
+
_classPrivateFieldLooseBase(this, _httpServer)[_httpServer] = new _HttpServer.default(serverless, options, lambda, v3Utils);
|
|
29
29
|
}
|
|
30
30
|
|
|
31
31
|
start() {
|