UNPKG

5.96 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3exports.makeTrampoline = exports.filename = void 0;
4const googleapis_1 = require("googleapis");
5const google_queue_1 = require("./google-queue");
6const google_shared_1 = require("./google-shared");
7exports.filename = module.filename;
8let pubsub;
9async function initialize() {
10 if (!pubsub) {
11 const auth = await googleapis_1.google.auth.getClient({
12 scopes: ["https://www.googleapis.com/auth/cloud-platform"]
13 });
14 googleapis_1.google.options({
15 auth,
16 retryConfig: {
17 retry: 3,
18 noResponseRetries: 3,
19 shouldRetry: (0, google_shared_1.shouldRetryRequest)(console.log)
20 }
21 });
22 pubsub = googleapis_1.google.pubsub("v1");
23 }
24}
25function makeTrampoline(wrapper) {
26 async function trampoline(request, response) {
27 const startTime = Date.now();
28 await initialize();
29 const call = request.body;
30 const executionId = request.headers["function-execution-id"];
31 const project = process.env["GCP_PROJECT"];
32 const functionName = process.env["FUNCTION_NAME"];
33 const logUrl = (0, google_shared_1.getExecutionLogUrl)(project, functionName, executionId);
34 const callingContext = {
35 call,
36 startTime,
37 logUrl,
38 executionId
39 };
40 await wrapper.execute(callingContext, {
41 onMessage: msg => (0, google_queue_1.publishResponseMessage)(pubsub, call.ResponseQueueId, msg)
42 });
43 response.send();
44 }
45 return { trampoline };
46}
47exports.makeTrampoline = makeTrampoline;
48//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ29vZ2xlLXRyYW1wb2xpbmUtaHR0cHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZ29vZ2xlL2dvb2dsZS10cmFtcG9saW5lLWh0dHBzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLDJDQUErQztBQUUvQyxpREFBd0Q7QUFDeEQsbURBQXlFO0FBRzVELFFBQUEsUUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUM7QUFFeEMsSUFBSSxNQUF3QixDQUFDO0FBRTdCLEtBQUssVUFBVSxVQUFVO0lBQ3JCLElBQUksQ0FBQyxNQUFNLEVBQUU7UUFDVCxNQUFNLElBQUksR0FBRyxNQUFNLG1CQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztZQUNyQyxNQUFNLEVBQUUsQ0FBQyxnREFBZ0QsQ0FBQztTQUM3RCxDQUFDLENBQUM7UUFDSCxtQkFBTSxDQUFDLE9BQU8sQ0FBQztZQUNYLElBQUk7WUFDSixXQUFXLEVBQUU7Z0JBQ1QsS0FBSyxFQUFFLENBQUM7Z0JBQ1IsaUJBQWlCLEVBQUUsQ0FBQztnQkFDcEIsV0FBVyxFQUFFLElBQUEsa0NBQWtCLEVBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQzthQUMvQztTQUNKLENBQUMsQ0FBQztRQUNILE1BQU0sR0FBRyxtQkFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztLQUNoQztBQUNMLENBQUM7QUFFRCxTQUFnQixjQUFjLENBQUMsT0FBZ0I7SUFDM0MsS0FBSyxVQUFVLFVBQVUsQ0FBQyxPQUFnQixFQUFFLFFBQWtCO1FBQzFELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUM3QixNQUFNLFVBQVUsRUFBRSxDQUFDO1FBQ25CLE1BQU0sSUFBSSxHQUFpQixPQUFPLENBQUMsSUFBSSxDQUFDO1FBQ3hDLE1BQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsdUJBQXVCLENBQVcsQ0FBQztRQUN2RSxNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBRSxDQUFDO1FBQzVDLE1BQU0sWUFBWSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFFLENBQUM7UUFDbkQsTUFBTSxNQUFNLEdBQUcsSUFBQSxrQ0FBa0IsRUFBQyxPQUFPLEVBQUUsWUFBWSxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBQ3RFLE1BQU0sY0FBYyxHQUFHO1lBQ25CLElBQUk7WUFDSixTQUFTO1lBQ1QsTUFBTTtZQUNOLFdBQVc7U0FDZCxDQUFDO1FBQ0YsTUFBTSxPQUFPLENBQUMsT0FBTyxDQUFDLGNBQWMsRUFBRTtZQUNsQyxTQUFTLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFBLHFDQUFzQixFQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsZUFBZ0IsRUFBRSxHQUFHLENBQUM7U0FDL0UsQ0FBQyxDQUFDO1FBQ0gsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3BCLENBQUM7SUFDRCxPQUFPLEVBQUUsVUFBVSxFQUFFLENBQUM7QUFDMUIsQ0FBQztBQXJCRCx3Q0FxQkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSZXF1ZXN0LCBSZXNwb25zZSB9IGZyb20gXCJleHByZXNzXCI7XG5pbXBvcnQgeyBnb29nbGUsIHB1YnN1Yl92MSB9IGZyb20gXCJnb29nbGVhcGlzXCI7XG5pbXBvcnQgeyBGdW5jdGlvbkNhbGwsIFdyYXBwZXIgfSBmcm9tIFwiLi4vd3JhcHBlclwiO1xuaW1wb3J0IHsgcHVibGlzaFJlc3BvbnNlTWVzc2FnZSB9IGZyb20gXCIuL2dvb2dsZS1xdWV1ZVwiO1xuaW1wb3J0IHsgZ2V0RXhlY3V0aW9uTG9nVXJsLCBzaG91bGRSZXRyeVJlcXVlc3QgfSBmcm9tIFwiLi9nb29nbGUtc2hhcmVkXCI7XG5pbXBvcnQgUHViU3ViQXBpID0gcHVic3ViX3YxO1xuXG5leHBvcnQgY29uc3QgZmlsZW5hbWUgPSBtb2R1bGUuZmlsZW5hbWU7XG5cbmxldCBwdWJzdWI6IFB1YlN1YkFwaS5QdWJzdWI7XG5cbmFzeW5jIGZ1bmN0aW9uIGluaXRpYWxpemUoKSB7XG4gICAgaWYgKCFwdWJzdWIpIHtcbiAgICAgICAgY29uc3QgYXV0aCA9IGF3YWl0IGdvb2dsZS5hdXRoLmdldENsaWVudCh7XG4gICAgICAgICAgICBzY29wZXM6IFtcImh0dHBzOi8vd3d3Lmdvb2dsZWFwaXMuY29tL2F1dGgvY2xvdWQtcGxhdGZvcm1cIl1cbiAgICAgICAgfSk7XG4gICAgICAgIGdvb2dsZS5vcHRpb25zKHtcbiAgICAgICAgICAgIGF1dGgsXG4gICAgICAgICAgICByZXRyeUNvbmZpZzoge1xuICAgICAgICAgICAgICAgIHJldHJ5OiAzLFxuICAgICAgICAgICAgICAgIG5vUmVzcG9uc2VSZXRyaWVzOiAzLFxuICAgICAgICAgICAgICAgIHNob3VsZFJldHJ5OiBzaG91bGRSZXRyeVJlcXVlc3QoY29uc29sZS5sb2cpXG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICBwdWJzdWIgPSBnb29nbGUucHVic3ViKFwidjFcIik7XG4gICAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gbWFrZVRyYW1wb2xpbmUod3JhcHBlcjogV3JhcHBlcikge1xuICAgIGFzeW5jIGZ1bmN0aW9uIHRyYW1wb2xpbmUocmVxdWVzdDogUmVxdWVzdCwgcmVzcG9uc2U6IFJlc3BvbnNlKSB7XG4gICAgICAgIGNvbnN0IHN0YXJ0VGltZSA9IERhdGUubm93KCk7XG4gICAgICAgIGF3YWl0IGluaXRpYWxpemUoKTtcbiAgICAgICAgY29uc3QgY2FsbDogRnVuY3Rpb25DYWxsID0gcmVxdWVzdC5ib2R5O1xuICAgICAgICBjb25zdCBleGVjdXRpb25JZCA9IHJlcXVlc3QuaGVhZGVyc1tcImZ1bmN0aW9uLWV4ZWN1dGlvbi1pZFwiXSBhcyBzdHJpbmc7XG4gICAgICAgIGNvbnN0IHByb2plY3QgPSBwcm9jZXNzLmVudltcIkdDUF9QUk9KRUNUXCJdITtcbiAgICAgICAgY29uc3QgZnVuY3Rpb25OYW1lID0gcHJvY2Vzcy5lbnZbXCJGVU5DVElPTl9OQU1FXCJdITtcbiAgICAgICAgY29uc3QgbG9nVXJsID0gZ2V0RXhlY3V0aW9uTG9nVXJsKHByb2plY3QsIGZ1bmN0aW9uTmFtZSwgZXhlY3V0aW9uSWQpO1xuICAgICAgICBjb25zdCBjYWxsaW5nQ29udGV4dCA9IHtcbiAgICAgICAgICAgIGNhbGwsXG4gICAgICAgICAgICBzdGFydFRpbWUsXG4gICAgICAgICAgICBsb2dVcmwsXG4gICAgICAgICAgICBleGVjdXRpb25JZFxuICAgICAgICB9O1xuICAgICAgICBhd2FpdCB3cmFwcGVyLmV4ZWN1dGUoY2FsbGluZ0NvbnRleHQsIHtcbiAgICAgICAgICAgIG9uTWVzc2FnZTogbXNnID0+IHB1Ymxpc2hSZXNwb25zZU1lc3NhZ2UocHVic3ViLCBjYWxsLlJlc3BvbnNlUXVldWVJZCEsIG1zZylcbiAgICAgICAgfSk7XG4gICAgICAgIHJlc3BvbnNlLnNlbmQoKTtcbiAgICB9XG4gICAgcmV0dXJuIHsgdHJhbXBvbGluZSB9O1xufVxuIl19
\No newline at end of file