serverless-offline 8.8.1 → 9.0.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 +3 -3
- package/package.json +33 -57
- package/src/ServerlessOffline.js +412 -0
- package/src/config/commandOptions.js +155 -0
- package/src/config/constants.js +22 -0
- package/{dist → src}/config/defaultOptions.js +8 -17
- package/src/config/index.js +4 -0
- package/src/config/supportedRuntimes.js +47 -0
- package/src/events/authCanExecuteResource.js +35 -0
- package/src/events/authFunctionNameExtractor.js +75 -0
- package/src/events/authMatchPolicyResource.js +71 -0
- package/src/events/authValidateContext.js +51 -0
- package/src/events/http/Endpoint.js +135 -0
- package/src/events/http/Http.js +50 -0
- package/src/events/http/HttpEventDefinition.js +20 -0
- package/src/events/http/HttpServer.js +1277 -0
- package/src/events/http/OfflineEndpoint.js +33 -0
- package/src/events/http/authJWTSettingsExtractor.js +70 -0
- package/src/events/http/createAuthScheme.js +176 -0
- package/src/events/http/createJWTAuthScheme.js +106 -0
- package/src/events/http/index.js +1 -0
- package/src/events/http/javaHelpers.js +102 -0
- package/src/events/http/lambda-events/LambdaIntegrationEvent.js +57 -0
- package/src/events/http/lambda-events/LambdaProxyIntegrationEvent.js +233 -0
- package/src/events/http/lambda-events/LambdaProxyIntegrationEventV2.js +190 -0
- package/src/events/http/lambda-events/VelocityContext.js +147 -0
- package/src/events/http/lambda-events/index.js +4 -0
- package/src/events/http/lambda-events/renderVelocityTemplateObject.js +93 -0
- package/{dist → src}/events/http/parseResources.js +73 -78
- package/src/events/http/payloadSchemaValidator.js +13 -0
- package/{dist → src}/events/http/templates/offline-default.req.vm +0 -0
- package/{dist → src}/events/http/templates/offline-default.res.vm +0 -0
- package/src/events/schedule/Schedule.js +131 -0
- package/src/events/schedule/ScheduleEvent.js +18 -0
- package/src/events/schedule/ScheduleEventDefinition.js +21 -0
- package/src/events/schedule/index.js +1 -0
- package/src/events/websocket/HttpServer.js +69 -0
- package/src/events/websocket/WebSocket.js +52 -0
- package/src/events/websocket/WebSocketClients.js +462 -0
- package/src/events/websocket/WebSocketEventDefinition.js +18 -0
- package/src/events/websocket/WebSocketServer.js +73 -0
- package/src/events/websocket/http-routes/_catchAll/catchAllRoute.js +16 -0
- package/src/events/websocket/http-routes/_catchAll/index.js +1 -0
- package/src/events/websocket/http-routes/connections/ConnectionsController.js +28 -0
- package/src/events/websocket/http-routes/connections/connectionsRoutes.js +70 -0
- package/src/events/websocket/http-routes/connections/index.js +1 -0
- package/src/events/websocket/http-routes/index.js +2 -0
- package/src/events/websocket/index.js +1 -0
- package/src/events/websocket/lambda-events/WebSocketAuthorizerEvent.js +65 -0
- package/src/events/websocket/lambda-events/WebSocketConnectEvent.js +68 -0
- package/src/events/websocket/lambda-events/WebSocketDisconnectEvent.js +31 -0
- package/src/events/websocket/lambda-events/WebSocketEvent.js +29 -0
- package/src/events/websocket/lambda-events/WebSocketRequestContext.js +67 -0
- package/src/events/websocket/lambda-events/index.js +4 -0
- package/src/index.js +12 -0
- package/src/lambda/HttpServer.js +108 -0
- package/src/lambda/Lambda.js +68 -0
- package/src/lambda/LambdaContext.js +33 -0
- package/src/lambda/LambdaFunction.js +308 -0
- package/src/lambda/LambdaFunctionPool.js +109 -0
- package/src/lambda/__tests__/LambdaContext.test.js +30 -0
- package/src/lambda/__tests__/LambdaFunction.test.js +196 -0
- package/src/lambda/__tests__/fixtures/Lambda/LambdaFunctionThatReturnsJSONObject.fixture.js +47 -0
- package/src/lambda/__tests__/fixtures/Lambda/LambdaFunctionThatReturnsNativeString.fixture.js +46 -0
- package/src/lambda/__tests__/fixtures/Lambda/package.json +3 -0
- package/src/lambda/__tests__/fixtures/lambdaFunction.fixture.js +145 -0
- package/src/lambda/__tests__/fixtures/package.json +3 -0
- package/src/lambda/__tests__/routes/invocations/InvocationsController.test.js +42 -0
- package/src/lambda/handler-runner/HandlerRunner.js +136 -0
- package/src/lambda/handler-runner/child-process-runner/ChildProcessRunner.js +72 -0
- package/src/lambda/handler-runner/child-process-runner/childProcessHelper.js +42 -0
- package/src/lambda/handler-runner/child-process-runner/index.js +1 -0
- package/src/lambda/handler-runner/docker-runner/DockerContainer.js +417 -0
- package/src/lambda/handler-runner/docker-runner/DockerImage.js +35 -0
- package/src/lambda/handler-runner/docker-runner/DockerRunner.js +63 -0
- package/src/lambda/handler-runner/docker-runner/index.js +1 -0
- package/src/lambda/handler-runner/go-runner/GoRunner.js +166 -0
- package/src/lambda/handler-runner/go-runner/index.js +1 -0
- package/src/lambda/handler-runner/in-process-runner/InProcessRunner.js +125 -0
- package/src/lambda/handler-runner/in-process-runner/index.js +1 -0
- package/src/lambda/handler-runner/index.js +1 -0
- package/src/lambda/handler-runner/java-runner/JavaRunner.js +114 -0
- package/src/lambda/handler-runner/java-runner/index.js +1 -0
- package/src/lambda/handler-runner/python-runner/PythonRunner.js +138 -0
- package/src/lambda/handler-runner/python-runner/index.js +1 -0
- package/{dist → src}/lambda/handler-runner/python-runner/invoke.py +0 -0
- package/src/lambda/handler-runner/ruby-runner/RubyRunner.js +107 -0
- package/src/lambda/handler-runner/ruby-runner/index.js +1 -0
- package/{dist → src}/lambda/handler-runner/ruby-runner/invoke.rb +0 -0
- package/src/lambda/handler-runner/worker-thread-runner/WorkerThreadRunner.js +70 -0
- package/src/lambda/handler-runner/worker-thread-runner/index.js +1 -0
- package/src/lambda/handler-runner/worker-thread-runner/workerThreadHelper.js +29 -0
- package/src/lambda/index.js +1 -0
- package/src/lambda/routes/index.js +2 -0
- package/src/lambda/routes/invocations/InvocationsController.js +102 -0
- package/src/lambda/routes/invocations/index.js +1 -0
- package/src/lambda/routes/invocations/invocationsRoute.js +77 -0
- package/src/lambda/routes/invoke-async/InvokeAsyncController.js +20 -0
- package/src/lambda/routes/invoke-async/index.js +1 -0
- package/src/lambda/routes/invoke-async/invokeAsyncRoute.js +33 -0
- package/src/utils/__tests__/createUniqueId.test.js +18 -0
- package/src/utils/__tests__/formatToClfTime.test.js +14 -0
- package/src/utils/__tests__/generateHapiPath.test.js +46 -0
- package/src/utils/__tests__/lowerCaseKeys.test.js +30 -0
- package/src/utils/__tests__/parseHeaders.test.js +13 -0
- package/src/utils/__tests__/parseMultiValueHeaders.test.js +24 -0
- package/src/utils/__tests__/parseMultiValueQueryStringParameters.test.js +159 -0
- package/src/utils/__tests__/parseQueryStringParameters.test.js +15 -0
- package/src/utils/__tests__/splitHandlerPathAndName.test.js +54 -0
- package/src/utils/__tests__/unflatten.test.js +32 -0
- package/src/utils/checkDockerDaemon.js +19 -0
- package/src/utils/checkGoVersion.js +16 -0
- package/src/utils/createApiKey.js +5 -0
- package/src/utils/createUniqueId.js +5 -0
- package/src/utils/detectExecutable.js +11 -0
- package/{dist → src}/utils/formatToClfTime.js +6 -14
- package/src/utils/generateHapiPath.js +26 -0
- package/src/utils/getHttpApiCorsConfig.js +28 -0
- package/src/utils/index.js +42 -0
- package/src/utils/jsonPath.js +13 -0
- package/src/utils/logRoutes.js +64 -0
- package/src/utils/lowerCaseKeys.js +6 -0
- package/src/utils/parseHeaders.js +14 -0
- package/src/utils/parseMultiValueHeaders.js +27 -0
- package/src/utils/parseMultiValueQueryStringParameters.js +31 -0
- package/src/utils/parseQueryStringParameters.js +15 -0
- package/src/utils/resolveJoins.js +29 -0
- package/src/utils/splitHandlerPathAndName.js +31 -0
- package/src/utils/unflatten.js +11 -0
- package/CHANGELOG.md +0 -78
- package/dist/ServerlessOffline.js +0 -508
- package/dist/config/commandOptions.js +0 -149
- package/dist/config/constants.js +0 -30
- package/dist/config/index.js +0 -55
- package/dist/config/supportedRuntimes.js +0 -40
- package/dist/debugLog.js +0 -12
- package/dist/events/authCanExecuteResource.js +0 -35
- package/dist/events/authFunctionNameExtractor.js +0 -87
- package/dist/events/authMatchPolicyResource.js +0 -62
- package/dist/events/authValidateContext.js +0 -53
- package/dist/events/http/Endpoint.js +0 -173
- package/dist/events/http/Http.js +0 -77
- package/dist/events/http/HttpEventDefinition.js +0 -36
- package/dist/events/http/HttpServer.js +0 -1370
- package/dist/events/http/OfflineEndpoint.js +0 -38
- package/dist/events/http/authJWTSettingsExtractor.js +0 -76
- package/dist/events/http/createAuthScheme.js +0 -184
- package/dist/events/http/createJWTAuthScheme.js +0 -159
- package/dist/events/http/index.js +0 -15
- package/dist/events/http/javaHelpers.js +0 -99
- package/dist/events/http/lambda-events/LambdaIntegrationEvent.js +0 -87
- package/dist/events/http/lambda-events/LambdaProxyIntegrationEvent.js +0 -246
- package/dist/events/http/lambda-events/LambdaProxyIntegrationEventV2.js +0 -225
- package/dist/events/http/lambda-events/VelocityContext.js +0 -170
- package/dist/events/http/lambda-events/index.js +0 -39
- package/dist/events/http/lambda-events/renderVelocityTemplateObject.js +0 -111
- package/dist/events/http/payloadSchemaValidator.js +0 -13
- package/dist/events/schedule/Schedule.js +0 -183
- package/dist/events/schedule/ScheduleEvent.js +0 -27
- package/dist/events/schedule/ScheduleEventDefinition.js +0 -36
- package/dist/events/schedule/index.js +0 -15
- package/dist/events/websocket/HttpServer.js +0 -114
- package/dist/events/websocket/WebSocket.js +0 -78
- package/dist/events/websocket/WebSocketClients.js +0 -577
- package/dist/events/websocket/WebSocketEventDefinition.js +0 -32
- package/dist/events/websocket/WebSocketServer.js +0 -139
- package/dist/events/websocket/http-routes/_catchAll/catchAllRoute.js +0 -33
- package/dist/events/websocket/http-routes/_catchAll/index.js +0 -15
- package/dist/events/websocket/http-routes/connections/ConnectionsController.js +0 -45
- package/dist/events/websocket/http-routes/connections/connectionsRoutes.js +0 -95
- package/dist/events/websocket/http-routes/connections/index.js +0 -15
- package/dist/events/websocket/http-routes/index.js +0 -23
- package/dist/events/websocket/index.js +0 -15
- package/dist/events/websocket/lambda-events/WebSocketAuthorizerEvent.js +0 -99
- package/dist/events/websocket/lambda-events/WebSocketConnectEvent.js +0 -101
- package/dist/events/websocket/lambda-events/WebSocketDisconnectEvent.js +0 -47
- package/dist/events/websocket/lambda-events/WebSocketEvent.js +0 -54
- package/dist/events/websocket/lambda-events/WebSocketRequestContext.js +0 -98
- package/dist/events/websocket/lambda-events/index.js +0 -39
- package/dist/index.js +0 -15
- package/dist/lambda/HttpServer.js +0 -124
- package/dist/lambda/Lambda.js +0 -117
- package/dist/lambda/LambdaContext.js +0 -53
- package/dist/lambda/LambdaFunction.js +0 -390
- package/dist/lambda/LambdaFunctionPool.js +0 -127
- package/dist/lambda/handler-runner/HandlerRunner.js +0 -195
- package/dist/lambda/handler-runner/child-process-runner/ChildProcessRunner.js +0 -124
- package/dist/lambda/handler-runner/child-process-runner/childProcessHelper.js +0 -49
- package/dist/lambda/handler-runner/child-process-runner/index.js +0 -15
- package/dist/lambda/handler-runner/docker-runner/DockerContainer.js +0 -515
- package/dist/lambda/handler-runner/docker-runner/DockerImage.js +0 -67
- package/dist/lambda/handler-runner/docker-runner/DockerRunner.js +0 -74
- package/dist/lambda/handler-runner/docker-runner/index.js +0 -15
- package/dist/lambda/handler-runner/go-runner/GoRunner.js +0 -230
- package/dist/lambda/handler-runner/go-runner/index.js +0 -15
- package/dist/lambda/handler-runner/in-process-runner/InProcessRunner.js +0 -228
- package/dist/lambda/handler-runner/in-process-runner/index.js +0 -15
- package/dist/lambda/handler-runner/index.js +0 -15
- package/dist/lambda/handler-runner/java-runner/JavaRunner.js +0 -153
- package/dist/lambda/handler-runner/java-runner/index.js +0 -15
- package/dist/lambda/handler-runner/python-runner/PythonRunner.js +0 -185
- package/dist/lambda/handler-runner/python-runner/index.js +0 -15
- package/dist/lambda/handler-runner/ruby-runner/RubyRunner.js +0 -147
- package/dist/lambda/handler-runner/ruby-runner/index.js +0 -15
- package/dist/lambda/handler-runner/worker-thread-runner/WorkerThreadRunner.js +0 -92
- package/dist/lambda/handler-runner/worker-thread-runner/index.js +0 -15
- package/dist/lambda/handler-runner/worker-thread-runner/workerThreadHelper.js +0 -31
- package/dist/lambda/index.js +0 -15
- package/dist/lambda/routes/index.js +0 -23
- package/dist/lambda/routes/invocations/InvocationsController.js +0 -142
- package/dist/lambda/routes/invocations/index.js +0 -15
- package/dist/lambda/routes/invocations/invocationsRoute.js +0 -90
- package/dist/lambda/routes/invoke-async/InvokeAsyncController.js +0 -38
- package/dist/lambda/routes/invoke-async/index.js +0 -15
- package/dist/lambda/routes/invoke-async/invokeAsyncRoute.js +0 -43
- package/dist/main.js +0 -11
- package/dist/serverlessLog.js +0 -91
- package/dist/utils/checkDockerDaemon.js +0 -27
- package/dist/utils/checkGoVersion.js +0 -27
- package/dist/utils/createApiKey.js +0 -12
- package/dist/utils/createUniqueId.js +0 -14
- package/dist/utils/detectExecutable.js +0 -21
- package/dist/utils/generateHapiPath.js +0 -28
- package/dist/utils/getHttpApiCorsConfig.js +0 -40
- package/dist/utils/index.js +0 -165
- package/dist/utils/jsonPath.js +0 -21
- package/dist/utils/lowerCaseKeys.js +0 -14
- package/dist/utils/parseHeaders.js +0 -23
- package/dist/utils/parseMultiValueHeaders.js +0 -36
- package/dist/utils/parseMultiValueQueryStringParameters.js +0 -40
- package/dist/utils/parseQueryStringParameters.js +0 -26
- package/dist/utils/resolveJoins.js +0 -36
- package/dist/utils/satisfiesVersionRange.js +0 -20
- package/dist/utils/splitHandlerPathAndName.js +0 -37
- package/dist/utils/unflatten.js +0 -18
|
@@ -1,230 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
|
|
8
|
-
var _fs = require("fs");
|
|
9
|
-
|
|
10
|
-
var _os = require("os");
|
|
11
|
-
|
|
12
|
-
var _path = require("path");
|
|
13
|
-
|
|
14
|
-
var _process = _interopRequireWildcard(require("process"));
|
|
15
|
-
|
|
16
|
-
var _execa = _interopRequireWildcard(require("execa"));
|
|
17
|
-
|
|
18
|
-
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); }
|
|
19
|
-
|
|
20
|
-
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; }
|
|
21
|
-
|
|
22
|
-
function _classPrivateFieldLooseBase(receiver, privateKey) { if (!Object.prototype.hasOwnProperty.call(receiver, privateKey)) { throw new TypeError("attempted to use private field on non-instance"); } return receiver; }
|
|
23
|
-
|
|
24
|
-
var id = 0;
|
|
25
|
-
|
|
26
|
-
function _classPrivateFieldLooseKey(name) { return "__private_" + id++ + "_" + name; }
|
|
27
|
-
|
|
28
|
-
const {
|
|
29
|
-
writeFile,
|
|
30
|
-
readFile,
|
|
31
|
-
mkdir,
|
|
32
|
-
rmdir
|
|
33
|
-
} = _fs.promises;
|
|
34
|
-
const {
|
|
35
|
-
parse,
|
|
36
|
-
stringify
|
|
37
|
-
} = JSON;
|
|
38
|
-
const PAYLOAD_IDENTIFIER = 'offline_payload';
|
|
39
|
-
|
|
40
|
-
var _env = /*#__PURE__*/_classPrivateFieldLooseKey("env");
|
|
41
|
-
|
|
42
|
-
var _handlerPath = /*#__PURE__*/_classPrivateFieldLooseKey("handlerPath");
|
|
43
|
-
|
|
44
|
-
var _tmpPath = /*#__PURE__*/_classPrivateFieldLooseKey("tmpPath");
|
|
45
|
-
|
|
46
|
-
var _tmpFile = /*#__PURE__*/_classPrivateFieldLooseKey("tmpFile");
|
|
47
|
-
|
|
48
|
-
var _goEnv = /*#__PURE__*/_classPrivateFieldLooseKey("goEnv");
|
|
49
|
-
|
|
50
|
-
var _codeDir = /*#__PURE__*/_classPrivateFieldLooseKey("codeDir");
|
|
51
|
-
|
|
52
|
-
class GoRunner {
|
|
53
|
-
constructor(funOptions, env, v3Utils) {
|
|
54
|
-
Object.defineProperty(this, _env, {
|
|
55
|
-
writable: true,
|
|
56
|
-
value: null
|
|
57
|
-
});
|
|
58
|
-
Object.defineProperty(this, _handlerPath, {
|
|
59
|
-
writable: true,
|
|
60
|
-
value: null
|
|
61
|
-
});
|
|
62
|
-
Object.defineProperty(this, _tmpPath, {
|
|
63
|
-
writable: true,
|
|
64
|
-
value: null
|
|
65
|
-
});
|
|
66
|
-
Object.defineProperty(this, _tmpFile, {
|
|
67
|
-
writable: true,
|
|
68
|
-
value: null
|
|
69
|
-
});
|
|
70
|
-
Object.defineProperty(this, _goEnv, {
|
|
71
|
-
writable: true,
|
|
72
|
-
value: null
|
|
73
|
-
});
|
|
74
|
-
Object.defineProperty(this, _codeDir, {
|
|
75
|
-
writable: true,
|
|
76
|
-
value: null
|
|
77
|
-
});
|
|
78
|
-
const {
|
|
79
|
-
handlerPath,
|
|
80
|
-
codeDir
|
|
81
|
-
} = funOptions;
|
|
82
|
-
_classPrivateFieldLooseBase(this, _env)[_env] = env;
|
|
83
|
-
_classPrivateFieldLooseBase(this, _handlerPath)[_handlerPath] = handlerPath;
|
|
84
|
-
_classPrivateFieldLooseBase(this, _codeDir)[_codeDir] = codeDir;
|
|
85
|
-
|
|
86
|
-
if (v3Utils) {
|
|
87
|
-
this.log = v3Utils.log;
|
|
88
|
-
this.progress = v3Utils.progress;
|
|
89
|
-
this.writeText = v3Utils.writeText;
|
|
90
|
-
this.v3Utils = v3Utils;
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
async cleanup() {
|
|
95
|
-
try {
|
|
96
|
-
await rmdir(_classPrivateFieldLooseBase(this, _tmpPath)[_tmpPath], {
|
|
97
|
-
recursive: true
|
|
98
|
-
});
|
|
99
|
-
} catch (e) {// @ignore
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
_classPrivateFieldLooseBase(this, _tmpFile)[_tmpFile] = null;
|
|
103
|
-
_classPrivateFieldLooseBase(this, _tmpPath)[_tmpPath] = null;
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
_parsePayload(value) {
|
|
107
|
-
const log = [];
|
|
108
|
-
let payload;
|
|
109
|
-
|
|
110
|
-
for (const item of value.split(_os.EOL)) {
|
|
111
|
-
if (item.indexOf(PAYLOAD_IDENTIFIER) === -1) {
|
|
112
|
-
log.push(item);
|
|
113
|
-
} else if (item.indexOf(PAYLOAD_IDENTIFIER) !== -1) {
|
|
114
|
-
try {
|
|
115
|
-
const {
|
|
116
|
-
offline_payload: {
|
|
117
|
-
success,
|
|
118
|
-
error
|
|
119
|
-
}
|
|
120
|
-
} = parse(item);
|
|
121
|
-
|
|
122
|
-
if (success) {
|
|
123
|
-
payload = success;
|
|
124
|
-
} else if (error) {
|
|
125
|
-
payload = error;
|
|
126
|
-
}
|
|
127
|
-
} catch (err) {// @ignore
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
} // Log to console in case engineers want to see the rest of the info
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
if (this.log) {
|
|
134
|
-
this.log(log.join(_os.EOL));
|
|
135
|
-
} else {
|
|
136
|
-
console.log(log.join(_os.EOL));
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
return payload;
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
async run(event, context) {
|
|
143
|
-
const {
|
|
144
|
-
dir
|
|
145
|
-
} = (0, _path.parse)(_classPrivateFieldLooseBase(this, _handlerPath)[_handlerPath]);
|
|
146
|
-
const handlerCodeRoot = dir.split(_path.sep).slice(0, -1).join(_path.sep);
|
|
147
|
-
const handlerCode = await readFile(`${_classPrivateFieldLooseBase(this, _handlerPath)[_handlerPath]}.go`, 'utf8');
|
|
148
|
-
_classPrivateFieldLooseBase(this, _tmpPath)[_tmpPath] = (0, _path.resolve)(handlerCodeRoot, 'tmp');
|
|
149
|
-
_classPrivateFieldLooseBase(this, _tmpFile)[_tmpFile] = (0, _path.resolve)(_classPrivateFieldLooseBase(this, _tmpPath)[_tmpPath], 'main.go');
|
|
150
|
-
const out = handlerCode.replace('"github.com/aws/aws-lambda-go/lambda"', 'lambda "github.com/icarus-sullivan/mock-lambda"');
|
|
151
|
-
|
|
152
|
-
try {
|
|
153
|
-
await mkdir(_classPrivateFieldLooseBase(this, _tmpPath)[_tmpPath], {
|
|
154
|
-
recursive: true
|
|
155
|
-
});
|
|
156
|
-
} catch (e) {// @ignore
|
|
157
|
-
}
|
|
158
|
-
|
|
159
|
-
try {
|
|
160
|
-
await writeFile(_classPrivateFieldLooseBase(this, _tmpFile)[_tmpFile], out, 'utf8');
|
|
161
|
-
} catch (e) {// @ignore
|
|
162
|
-
} // Get go env to run this locally
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
if (!_classPrivateFieldLooseBase(this, _goEnv)[_goEnv]) {
|
|
166
|
-
const goEnvResponse = await (0, _execa.default)('go', ['env'], {
|
|
167
|
-
stdio: 'pipe',
|
|
168
|
-
encoding: 'utf-8'
|
|
169
|
-
});
|
|
170
|
-
const goEnvString = goEnvResponse.stdout || goEnvResponse.stderr;
|
|
171
|
-
_classPrivateFieldLooseBase(this, _goEnv)[_goEnv] = goEnvString.split(_os.EOL).reduce((a, b) => {
|
|
172
|
-
const [k, v] = b.split('="'); // eslint-disable-next-line no-param-reassign
|
|
173
|
-
|
|
174
|
-
a[k] = v ? v.slice(0, -1) : '';
|
|
175
|
-
return a;
|
|
176
|
-
}, {});
|
|
177
|
-
} // Remove our root, since we want to invoke go relatively
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
const cwdPath = `${_classPrivateFieldLooseBase(this, _tmpFile)[_tmpFile]}`.replace(`${(0, _process.cwd)()}${_path.sep}`, '');
|
|
181
|
-
|
|
182
|
-
try {
|
|
183
|
-
(0, _process.chdir)(cwdPath.substring(0, cwdPath.indexOf('main.go'))); // Make sure we have the mock-lambda runner
|
|
184
|
-
|
|
185
|
-
(0, _execa.sync)('go', ['get', 'github.com/icarus-sullivan/mock-lambda@e065469']);
|
|
186
|
-
(0, _execa.sync)('go', ['build']);
|
|
187
|
-
} catch (e) {// @ignore
|
|
188
|
-
}
|
|
189
|
-
|
|
190
|
-
const {
|
|
191
|
-
stdout,
|
|
192
|
-
stderr
|
|
193
|
-
} = await (0, _execa.default)(`./tmp`, {
|
|
194
|
-
stdio: 'pipe',
|
|
195
|
-
env: { ..._classPrivateFieldLooseBase(this, _env)[_env],
|
|
196
|
-
..._classPrivateFieldLooseBase(this, _goEnv)[_goEnv],
|
|
197
|
-
AWS_LAMBDA_LOG_GROUP_NAME: context.logGroupName,
|
|
198
|
-
AWS_LAMBDA_LOG_STREAM_NAME: context.logStreamName,
|
|
199
|
-
AWS_LAMBDA_FUNCTION_NAME: context.functionName,
|
|
200
|
-
AWS_LAMBDA_FUNCTION_MEMORY_SIZE: context.memoryLimitInMB,
|
|
201
|
-
AWS_LAMBDA_FUNCTION_VERSION: context.functionVersion,
|
|
202
|
-
LAMBDA_EVENT: stringify(event),
|
|
203
|
-
LAMBDA_TEST_EVENT: `${event}`,
|
|
204
|
-
LAMBDA_CONTEXT: stringify(context),
|
|
205
|
-
IS_LAMBDA_AUTHORIZER: event.type === 'REQUEST' || event.type === 'TOKEN',
|
|
206
|
-
IS_LAMBDA_REQUEST_AUTHORIZER: event.type === 'REQUEST',
|
|
207
|
-
IS_LAMBDA_TOKEN_AUTHORIZER: event.type === 'TOKEN',
|
|
208
|
-
PATH: _process.default.env.PATH
|
|
209
|
-
},
|
|
210
|
-
encoding: 'utf-8'
|
|
211
|
-
});
|
|
212
|
-
await this.cleanup();
|
|
213
|
-
|
|
214
|
-
if (stderr) {
|
|
215
|
-
return stderr;
|
|
216
|
-
}
|
|
217
|
-
|
|
218
|
-
try {
|
|
219
|
-
// refresh go.mod
|
|
220
|
-
(0, _execa.sync)('go', ['mod', 'tidy']);
|
|
221
|
-
(0, _process.chdir)(_classPrivateFieldLooseBase(this, _codeDir)[_codeDir]);
|
|
222
|
-
} catch (e) {// @ignore
|
|
223
|
-
}
|
|
224
|
-
|
|
225
|
-
return this._parsePayload(stdout);
|
|
226
|
-
}
|
|
227
|
-
|
|
228
|
-
}
|
|
229
|
-
|
|
230
|
-
exports.default = GoRunner;
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
Object.defineProperty(exports, "default", {
|
|
7
|
-
enumerable: true,
|
|
8
|
-
get: function () {
|
|
9
|
-
return _GoRunner.default;
|
|
10
|
-
}
|
|
11
|
-
});
|
|
12
|
-
|
|
13
|
-
var _GoRunner = _interopRequireDefault(require("./GoRunner.js"));
|
|
14
|
-
|
|
15
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
@@ -1,228 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
|
|
8
|
-
var _fs = require("fs");
|
|
9
|
-
|
|
10
|
-
var _path = require("path");
|
|
11
|
-
|
|
12
|
-
var _perf_hooks = require("perf_hooks");
|
|
13
|
-
|
|
14
|
-
var _process = _interopRequireDefault(require("process"));
|
|
15
|
-
|
|
16
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
17
|
-
|
|
18
|
-
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); }
|
|
19
|
-
|
|
20
|
-
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; }
|
|
21
|
-
|
|
22
|
-
function _classPrivateFieldLooseBase(receiver, privateKey) { if (!Object.prototype.hasOwnProperty.call(receiver, privateKey)) { throw new TypeError("attempted to use private field on non-instance"); } return receiver; }
|
|
23
|
-
|
|
24
|
-
var id = 0;
|
|
25
|
-
|
|
26
|
-
function _classPrivateFieldLooseKey(name) { return "__private_" + id++ + "_" + name; }
|
|
27
|
-
|
|
28
|
-
const {
|
|
29
|
-
assign,
|
|
30
|
-
keys
|
|
31
|
-
} = Object;
|
|
32
|
-
|
|
33
|
-
const clearModule = (fP, opts) => {
|
|
34
|
-
const options = opts !== null && opts !== void 0 ? opts : {};
|
|
35
|
-
let filePath = fP;
|
|
36
|
-
|
|
37
|
-
if (!require.cache[filePath]) {
|
|
38
|
-
const dirName = (0, _path.dirname)(filePath);
|
|
39
|
-
|
|
40
|
-
for (const fn of (0, _fs.readdirSync)(dirName)) {
|
|
41
|
-
const fullPath = (0, _path.resolve)(dirName, fn);
|
|
42
|
-
|
|
43
|
-
if (fullPath.substr(0, filePath.length + 1) === `${filePath}.` && require.cache[fullPath]) {
|
|
44
|
-
filePath = fullPath;
|
|
45
|
-
break;
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
if (require.cache[filePath]) {
|
|
51
|
-
// Remove file from parent cache
|
|
52
|
-
if (require.cache[filePath].parent) {
|
|
53
|
-
let i = require.cache[filePath].parent.children.length;
|
|
54
|
-
|
|
55
|
-
if (i) {
|
|
56
|
-
do {
|
|
57
|
-
i -= 1;
|
|
58
|
-
|
|
59
|
-
if (require.cache[filePath].parent.children[i].id === filePath) {
|
|
60
|
-
require.cache[filePath].parent.children.splice(i, 1);
|
|
61
|
-
}
|
|
62
|
-
} while (i);
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
const cld = require.cache[filePath].children;
|
|
67
|
-
delete require.cache[filePath];
|
|
68
|
-
|
|
69
|
-
for (const c of cld) {
|
|
70
|
-
// Unload any non node_modules and non-binary children
|
|
71
|
-
if (!c.filename.match(/\/node_modules\//i) && !c.filename.match(/\.node$/i)) {
|
|
72
|
-
clearModule(c.id, { ...options,
|
|
73
|
-
cleanup: false
|
|
74
|
-
});
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
if (opts.cleanup) {
|
|
79
|
-
// Cleanup any node_modules that are orphans
|
|
80
|
-
let cleanup = false;
|
|
81
|
-
|
|
82
|
-
do {
|
|
83
|
-
cleanup = false;
|
|
84
|
-
|
|
85
|
-
for (const fn of keys(require.cache)) {
|
|
86
|
-
if (require.cache[fn] && require.cache[fn].id !== '.' && require.cache[fn].parent && require.cache[fn].parent.id !== '.' && !require.cache[require.cache[fn].parent.id] && !fn.match(/\/node_modules\//i) && !fn.match(/\.node$/i)) {
|
|
87
|
-
delete require.cache[fn];
|
|
88
|
-
cleanup = true;
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
} while (cleanup);
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
};
|
|
95
|
-
|
|
96
|
-
var _env = /*#__PURE__*/_classPrivateFieldLooseKey("env");
|
|
97
|
-
|
|
98
|
-
var _functionKey = /*#__PURE__*/_classPrivateFieldLooseKey("functionKey");
|
|
99
|
-
|
|
100
|
-
var _handlerName = /*#__PURE__*/_classPrivateFieldLooseKey("handlerName");
|
|
101
|
-
|
|
102
|
-
var _handlerPath = /*#__PURE__*/_classPrivateFieldLooseKey("handlerPath");
|
|
103
|
-
|
|
104
|
-
var _timeout = /*#__PURE__*/_classPrivateFieldLooseKey("timeout");
|
|
105
|
-
|
|
106
|
-
var _allowCache = /*#__PURE__*/_classPrivateFieldLooseKey("allowCache");
|
|
107
|
-
|
|
108
|
-
class InProcessRunner {
|
|
109
|
-
constructor(functionKey, handlerPath, handlerName, env, timeout, allowCache) {
|
|
110
|
-
Object.defineProperty(this, _env, {
|
|
111
|
-
writable: true,
|
|
112
|
-
value: null
|
|
113
|
-
});
|
|
114
|
-
Object.defineProperty(this, _functionKey, {
|
|
115
|
-
writable: true,
|
|
116
|
-
value: null
|
|
117
|
-
});
|
|
118
|
-
Object.defineProperty(this, _handlerName, {
|
|
119
|
-
writable: true,
|
|
120
|
-
value: null
|
|
121
|
-
});
|
|
122
|
-
Object.defineProperty(this, _handlerPath, {
|
|
123
|
-
writable: true,
|
|
124
|
-
value: null
|
|
125
|
-
});
|
|
126
|
-
Object.defineProperty(this, _timeout, {
|
|
127
|
-
writable: true,
|
|
128
|
-
value: null
|
|
129
|
-
});
|
|
130
|
-
Object.defineProperty(this, _allowCache, {
|
|
131
|
-
writable: true,
|
|
132
|
-
value: false
|
|
133
|
-
});
|
|
134
|
-
_classPrivateFieldLooseBase(this, _env)[_env] = env;
|
|
135
|
-
_classPrivateFieldLooseBase(this, _functionKey)[_functionKey] = functionKey;
|
|
136
|
-
_classPrivateFieldLooseBase(this, _handlerName)[_handlerName] = handlerName;
|
|
137
|
-
_classPrivateFieldLooseBase(this, _handlerPath)[_handlerPath] = handlerPath;
|
|
138
|
-
_classPrivateFieldLooseBase(this, _timeout)[_timeout] = timeout;
|
|
139
|
-
_classPrivateFieldLooseBase(this, _allowCache)[_allowCache] = allowCache;
|
|
140
|
-
} // no-op
|
|
141
|
-
// () => void
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
cleanup() {}
|
|
145
|
-
|
|
146
|
-
async run(event, context) {
|
|
147
|
-
// check if the handler module path exists
|
|
148
|
-
if (!require.resolve(_classPrivateFieldLooseBase(this, _handlerPath)[_handlerPath])) {
|
|
149
|
-
throw new Error(`Could not find handler module '${_classPrivateFieldLooseBase(this, _handlerPath)[_handlerPath]}' for function '${_classPrivateFieldLooseBase(this, _functionKey)[_functionKey]}'.`);
|
|
150
|
-
} // process.env should be available in the handler module scope as well as in the handler function scope
|
|
151
|
-
// NOTE: Don't use Object spread (...) here!
|
|
152
|
-
// otherwise the values of the attached props are not coerced to a string
|
|
153
|
-
// e.g. process.env.foo = 1 should be coerced to '1' (string)
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
assign(_process.default.env, _classPrivateFieldLooseBase(this, _env)[_env]); // lazy load handler with first usage
|
|
157
|
-
|
|
158
|
-
if (!_classPrivateFieldLooseBase(this, _allowCache)[_allowCache]) {
|
|
159
|
-
clearModule(_classPrivateFieldLooseBase(this, _handlerPath)[_handlerPath], {
|
|
160
|
-
cleanup: true
|
|
161
|
-
});
|
|
162
|
-
}
|
|
163
|
-
|
|
164
|
-
const {
|
|
165
|
-
[_classPrivateFieldLooseBase(this, _handlerName)[_handlerName]]: handler
|
|
166
|
-
} = await Promise.resolve(`${_classPrivateFieldLooseBase(this, _handlerPath)[_handlerPath]}`).then(s => _interopRequireWildcard(require(s)));
|
|
167
|
-
|
|
168
|
-
if (typeof handler !== 'function') {
|
|
169
|
-
throw new Error(`offline: handler '${_classPrivateFieldLooseBase(this, _handlerName)[_handlerName]}' in ${_classPrivateFieldLooseBase(this, _handlerPath)[_handlerPath]} is not a function`);
|
|
170
|
-
}
|
|
171
|
-
|
|
172
|
-
let callback;
|
|
173
|
-
const callbackCalled = new Promise((res, rej) => {
|
|
174
|
-
callback = (err, data) => {
|
|
175
|
-
if (err === 'Unauthorized') {
|
|
176
|
-
res('Unauthorized');
|
|
177
|
-
return;
|
|
178
|
-
}
|
|
179
|
-
|
|
180
|
-
if (err) {
|
|
181
|
-
rej(err);
|
|
182
|
-
return;
|
|
183
|
-
}
|
|
184
|
-
|
|
185
|
-
res(data);
|
|
186
|
-
};
|
|
187
|
-
});
|
|
188
|
-
|
|
189
|
-
const executionTimeout = _perf_hooks.performance.now() + _classPrivateFieldLooseBase(this, _timeout)[_timeout]; // attach doc-deprecated functions
|
|
190
|
-
// create new immutable object
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
const lambdaContext = { ...context,
|
|
194
|
-
getRemainingTimeInMillis: () => {
|
|
195
|
-
const timeLeft = executionTimeout - _perf_hooks.performance.now(); // just return 0 for now if we are beyond alotted time (timeout)
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
return timeLeft > 0 ? timeLeft : 0;
|
|
199
|
-
},
|
|
200
|
-
done: (err, data) => callback(err, data),
|
|
201
|
-
fail: err => callback(err),
|
|
202
|
-
succeed: res => callback(null, res)
|
|
203
|
-
};
|
|
204
|
-
let result; // execute (run) handler
|
|
205
|
-
|
|
206
|
-
try {
|
|
207
|
-
result = handler(event, lambdaContext, callback);
|
|
208
|
-
} catch (err) {
|
|
209
|
-
throw new Error(`Uncaught error in '${_classPrivateFieldLooseBase(this, _functionKey)[_functionKey]}' handler.`);
|
|
210
|
-
} // // not a Promise, which is not supported by aws
|
|
211
|
-
// if (result == null || typeof result.then !== 'function') {
|
|
212
|
-
// throw new Error(`Synchronous function execution is not supported.`)
|
|
213
|
-
// }
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
const callbacks = [callbackCalled]; // Promise was returned
|
|
217
|
-
|
|
218
|
-
if (result != null && typeof result.then === 'function') {
|
|
219
|
-
callbacks.push(result);
|
|
220
|
-
}
|
|
221
|
-
|
|
222
|
-
const callbackResult = await Promise.race(callbacks);
|
|
223
|
-
return callbackResult;
|
|
224
|
-
}
|
|
225
|
-
|
|
226
|
-
}
|
|
227
|
-
|
|
228
|
-
exports.default = InProcessRunner;
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
Object.defineProperty(exports, "default", {
|
|
7
|
-
enumerable: true,
|
|
8
|
-
get: function () {
|
|
9
|
-
return _InProcessRunner.default;
|
|
10
|
-
}
|
|
11
|
-
});
|
|
12
|
-
|
|
13
|
-
var _InProcessRunner = _interopRequireDefault(require("./InProcessRunner.js"));
|
|
14
|
-
|
|
15
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
Object.defineProperty(exports, "default", {
|
|
7
|
-
enumerable: true,
|
|
8
|
-
get: function () {
|
|
9
|
-
return _HandlerRunner.default;
|
|
10
|
-
}
|
|
11
|
-
});
|
|
12
|
-
|
|
13
|
-
var _HandlerRunner = _interopRequireDefault(require("./HandlerRunner.js"));
|
|
14
|
-
|
|
15
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
@@ -1,153 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
|
|
8
|
-
var _os = require("os");
|
|
9
|
-
|
|
10
|
-
var _process = _interopRequireDefault(require("process"));
|
|
11
|
-
|
|
12
|
-
var _nodeFetch = _interopRequireDefault(require("node-fetch"));
|
|
13
|
-
|
|
14
|
-
var _javaInvokeLocal = require("java-invoke-local");
|
|
15
|
-
|
|
16
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
17
|
-
|
|
18
|
-
function _classPrivateFieldLooseBase(receiver, privateKey) { if (!Object.prototype.hasOwnProperty.call(receiver, privateKey)) { throw new TypeError("attempted to use private field on non-instance"); } return receiver; }
|
|
19
|
-
|
|
20
|
-
var id = 0;
|
|
21
|
-
|
|
22
|
-
function _classPrivateFieldLooseKey(name) { return "__private_" + id++ + "_" + name; }
|
|
23
|
-
|
|
24
|
-
const {
|
|
25
|
-
parse,
|
|
26
|
-
stringify
|
|
27
|
-
} = JSON;
|
|
28
|
-
const {
|
|
29
|
-
has
|
|
30
|
-
} = Reflect;
|
|
31
|
-
|
|
32
|
-
var _env = /*#__PURE__*/_classPrivateFieldLooseKey("env");
|
|
33
|
-
|
|
34
|
-
var _functionName = /*#__PURE__*/_classPrivateFieldLooseKey("functionName");
|
|
35
|
-
|
|
36
|
-
var _handler = /*#__PURE__*/_classPrivateFieldLooseKey("handler");
|
|
37
|
-
|
|
38
|
-
var _deployPackage = /*#__PURE__*/_classPrivateFieldLooseKey("deployPackage");
|
|
39
|
-
|
|
40
|
-
var _allowCache = /*#__PURE__*/_classPrivateFieldLooseKey("allowCache");
|
|
41
|
-
|
|
42
|
-
class JavaRunner {
|
|
43
|
-
constructor(funOptions, env, allowCache, v3Utils) {
|
|
44
|
-
Object.defineProperty(this, _env, {
|
|
45
|
-
writable: true,
|
|
46
|
-
value: null
|
|
47
|
-
});
|
|
48
|
-
Object.defineProperty(this, _functionName, {
|
|
49
|
-
writable: true,
|
|
50
|
-
value: null
|
|
51
|
-
});
|
|
52
|
-
Object.defineProperty(this, _handler, {
|
|
53
|
-
writable: true,
|
|
54
|
-
value: null
|
|
55
|
-
});
|
|
56
|
-
Object.defineProperty(this, _deployPackage, {
|
|
57
|
-
writable: true,
|
|
58
|
-
value: null
|
|
59
|
-
});
|
|
60
|
-
Object.defineProperty(this, _allowCache, {
|
|
61
|
-
writable: true,
|
|
62
|
-
value: false
|
|
63
|
-
});
|
|
64
|
-
const {
|
|
65
|
-
functionName,
|
|
66
|
-
handler,
|
|
67
|
-
servicePackage,
|
|
68
|
-
functionPackage
|
|
69
|
-
} = funOptions;
|
|
70
|
-
_classPrivateFieldLooseBase(this, _env)[_env] = env;
|
|
71
|
-
_classPrivateFieldLooseBase(this, _functionName)[_functionName] = functionName;
|
|
72
|
-
_classPrivateFieldLooseBase(this, _handler)[_handler] = handler;
|
|
73
|
-
_classPrivateFieldLooseBase(this, _deployPackage)[_deployPackage] = functionPackage || servicePackage;
|
|
74
|
-
_classPrivateFieldLooseBase(this, _allowCache)[_allowCache] = allowCache;
|
|
75
|
-
|
|
76
|
-
if (v3Utils) {
|
|
77
|
-
this.log = v3Utils.log;
|
|
78
|
-
this.progress = v3Utils.progress;
|
|
79
|
-
this.writeText = v3Utils.writeText;
|
|
80
|
-
this.v3Utils = v3Utils;
|
|
81
|
-
}
|
|
82
|
-
} // no-op
|
|
83
|
-
// () => void
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
cleanup() {}
|
|
87
|
-
|
|
88
|
-
_parsePayload(value) {
|
|
89
|
-
for (const item of value.split(_os.EOL)) {
|
|
90
|
-
let json; // first check if it's JSON
|
|
91
|
-
|
|
92
|
-
try {
|
|
93
|
-
json = parse(item); // nope, it's not JSON
|
|
94
|
-
} catch (err) {// no-op
|
|
95
|
-
} // now let's see if we have a property __offline_payload__
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
if (json && typeof json === 'object' && has(json, '__offline_payload__')) {
|
|
99
|
-
return json.__offline_payload__;
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
return undefined;
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
async run(event, context) {
|
|
107
|
-
const input = stringify({
|
|
108
|
-
context,
|
|
109
|
-
event
|
|
110
|
-
});
|
|
111
|
-
let result;
|
|
112
|
-
|
|
113
|
-
try {
|
|
114
|
-
// Assume java-invoke-local server is running
|
|
115
|
-
const data = stringify({
|
|
116
|
-
artifact: _classPrivateFieldLooseBase(this, _deployPackage)[_deployPackage],
|
|
117
|
-
handler: _classPrivateFieldLooseBase(this, _handler)[_handler],
|
|
118
|
-
data: input,
|
|
119
|
-
function: _classPrivateFieldLooseBase(this, _functionName)[_functionName],
|
|
120
|
-
jsonOutput: true,
|
|
121
|
-
serverlessOffline: true
|
|
122
|
-
});
|
|
123
|
-
const httpOptions = {
|
|
124
|
-
method: 'POST',
|
|
125
|
-
body: data
|
|
126
|
-
};
|
|
127
|
-
const port = _process.default.env.JAVA_OFFLINE_SERVER || 8080;
|
|
128
|
-
const response = await (0, _nodeFetch.default)(`http://localhost:${port}/invoke`, httpOptions);
|
|
129
|
-
result = await response.text();
|
|
130
|
-
} catch (e) {
|
|
131
|
-
if (this.log) {
|
|
132
|
-
this.log.notice('Local java server not running. For faster local invocations, run "java-invoke-local --server" in your project directory');
|
|
133
|
-
} else {
|
|
134
|
-
console.log('Local java server not running. For faster local invocations, run "java-invoke-local --server" in your project directory');
|
|
135
|
-
} // Fallback invocation
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
const args = ['-c', _classPrivateFieldLooseBase(this, _handler)[_handler], '-a', _classPrivateFieldLooseBase(this, _deployPackage)[_deployPackage], '-f', _classPrivateFieldLooseBase(this, _functionName)[_functionName], '-d', input, '--json-output', '--serverless-offline'];
|
|
139
|
-
result = (0, _javaInvokeLocal.invokeJavaLocal)(args, _classPrivateFieldLooseBase(this, _env)[_env]);
|
|
140
|
-
|
|
141
|
-
if (this.log) {
|
|
142
|
-
this.log.notice(result);
|
|
143
|
-
} else {
|
|
144
|
-
console.log(result);
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
return this._parsePayload(result);
|
|
149
|
-
}
|
|
150
|
-
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
exports.default = JavaRunner;
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
Object.defineProperty(exports, "default", {
|
|
7
|
-
enumerable: true,
|
|
8
|
-
get: function () {
|
|
9
|
-
return _JavaRunner.default;
|
|
10
|
-
}
|
|
11
|
-
});
|
|
12
|
-
|
|
13
|
-
var _JavaRunner = _interopRequireDefault(require("./JavaRunner.js"));
|
|
14
|
-
|
|
15
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|