UNPKG

6.42 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3exports.makeTrampoline = exports.filename = void 0;
4const googleapis_1 = require("googleapis");
5const serialize_1 = require("../serialize");
6const google_queue_1 = require("./google-queue");
7const google_shared_1 = require("./google-shared");
8exports.filename = module.filename;
9let pubsub;
10async function initialize() {
11 if (!pubsub) {
12 const auth = await googleapis_1.google.auth.getClient({
13 scopes: ["https://www.googleapis.com/auth/cloud-platform"]
14 });
15 googleapis_1.google.options({
16 auth,
17 retryConfig: {
18 retry: 3,
19 noResponseRetries: 3,
20 shouldRetry: (0, google_shared_1.shouldRetryRequest)(console.log)
21 }
22 });
23 pubsub = googleapis_1.google.pubsub("v1");
24 }
25}
26function makeTrampoline(wrapper) {
27 async function trampoline(data, context) {
28 const startTime = Date.now();
29 await initialize();
30 const executionId = context.eventId;
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 str = Buffer.from(data.data, "base64");
35 const call = (0, serialize_1.deserialize)(str.toString());
36 const callingContext = {
37 call,
38 startTime,
39 logUrl,
40 executionId
41 };
42 await wrapper.execute(callingContext, {
43 onMessage: msg => (0, google_queue_1.publishResponseMessage)(pubsub, call.ResponseQueueId, msg)
44 });
45 }
46 return { trampoline };
47}
48exports.makeTrampoline = makeTrampoline;
49//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ29vZ2xlLXRyYW1wb2xpbmUtcXVldWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZ29vZ2xlL2dvb2dsZS10cmFtcG9saW5lLXF1ZXVlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDJDQUErQztBQUMvQyw0Q0FBMkM7QUFFM0MsaURBQXdEO0FBQ3hELG1EQUF5RTtBQUc1RCxRQUFBLFFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDO0FBU3hDLElBQUksTUFBd0IsQ0FBQztBQUc3QixLQUFLLFVBQVUsVUFBVTtJQUNyQixJQUFJLENBQUMsTUFBTSxFQUFFO1FBQ1QsTUFBTSxJQUFJLEdBQUcsTUFBTSxtQkFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUM7WUFDckMsTUFBTSxFQUFFLENBQUMsZ0RBQWdELENBQUM7U0FDN0QsQ0FBQyxDQUFDO1FBQ0gsbUJBQU0sQ0FBQyxPQUFPLENBQUM7WUFDWCxJQUFJO1lBQ0osV0FBVyxFQUFFO2dCQUNULEtBQUssRUFBRSxDQUFDO2dCQUNSLGlCQUFpQixFQUFFLENBQUM7Z0JBQ3BCLFdBQVcsRUFBRSxJQUFBLGtDQUFrQixFQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUM7YUFDL0M7U0FDSixDQUFDLENBQUM7UUFDSCxNQUFNLEdBQUcsbUJBQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7S0FDaEM7QUFDTCxDQUFDO0FBRUQsU0FBZ0IsY0FBYyxDQUFDLE9BQWdCO0lBQzNDLEtBQUssVUFBVSxVQUFVLENBQUMsSUFBbUIsRUFBRSxPQUE2QjtRQUN4RSxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDN0IsTUFBTSxVQUFVLEVBQUUsQ0FBQztRQUVuQixNQUFNLFdBQVcsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDO1FBQ3BDLE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFFLENBQUM7UUFDNUMsTUFBTSxZQUFZLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUUsQ0FBQztRQUNuRCxNQUFNLE1BQU0sR0FBRyxJQUFBLGtDQUFrQixFQUFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDdEUsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQzlDLE1BQU0sSUFBSSxHQUFpQixJQUFBLHVCQUFXLEVBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFFdkQsTUFBTSxjQUFjLEdBQUc7WUFDbkIsSUFBSTtZQUNKLFNBQVM7WUFDVCxNQUFNO1lBQ04sV0FBVztTQUNkLENBQUM7UUFFRixNQUFNLE9BQU8sQ0FBQyxPQUFPLENBQUMsY0FBYyxFQUFFO1lBQ2xDLFNBQVMsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUEscUNBQXNCLEVBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxlQUFnQixFQUFFLEdBQUcsQ0FBQztTQUMvRSxDQUFDLENBQUM7SUFDUCxDQUFDO0lBQ0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxDQUFDO0FBQzFCLENBQUM7QUF4QkQsd0NBd0JDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZ29vZ2xlLCBwdWJzdWJfdjEgfSBmcm9tIFwiZ29vZ2xlYXBpc1wiO1xuaW1wb3J0IHsgZGVzZXJpYWxpemUgfSBmcm9tIFwiLi4vc2VyaWFsaXplXCI7XG5pbXBvcnQgeyBGdW5jdGlvbkNhbGwsIFdyYXBwZXIgfSBmcm9tIFwiLi4vd3JhcHBlclwiO1xuaW1wb3J0IHsgcHVibGlzaFJlc3BvbnNlTWVzc2FnZSB9IGZyb20gXCIuL2dvb2dsZS1xdWV1ZVwiO1xuaW1wb3J0IHsgZ2V0RXhlY3V0aW9uTG9nVXJsLCBzaG91bGRSZXRyeVJlcXVlc3QgfSBmcm9tIFwiLi9nb29nbGUtc2hhcmVkXCI7XG5pbXBvcnQgUHViU3ViQXBpID0gcHVic3ViX3YxO1xuXG5leHBvcnQgY29uc3QgZmlsZW5hbWUgPSBtb2R1bGUuZmlsZW5hbWU7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2xvdWRGdW5jdGlvbkNvbnRleHQge1xuICAgIGV2ZW50SWQ6IHN0cmluZztcbiAgICB0aW1lc3RhbXA6IHN0cmluZztcbiAgICBldmVudFR5cGU6IHN0cmluZztcbiAgICByZXNvdXJjZTogb2JqZWN0O1xufVxuXG5sZXQgcHVic3ViOiBQdWJTdWJBcGkuUHVic3ViO1xudHlwZSBQdWJzdWJNZXNzYWdlID0gUHViU3ViQXBpLlNjaGVtYSRQdWJzdWJNZXNzYWdlO1xuXG5hc3luYyBmdW5jdGlvbiBpbml0aWFsaXplKCkge1xuICAgIGlmICghcHVic3ViKSB7XG4gICAgICAgIGNvbnN0IGF1dGggPSBhd2FpdCBnb29nbGUuYXV0aC5nZXRDbGllbnQoe1xuICAgICAgICAgICAgc2NvcGVzOiBbXCJodHRwczovL3d3dy5nb29nbGVhcGlzLmNvbS9hdXRoL2Nsb3VkLXBsYXRmb3JtXCJdXG4gICAgICAgIH0pO1xuICAgICAgICBnb29nbGUub3B0aW9ucyh7XG4gICAgICAgICAgICBhdXRoLFxuICAgICAgICAgICAgcmV0cnlDb25maWc6IHtcbiAgICAgICAgICAgICAgICByZXRyeTogMyxcbiAgICAgICAgICAgICAgICBub1Jlc3BvbnNlUmV0cmllczogMyxcbiAgICAgICAgICAgICAgICBzaG91bGRSZXRyeTogc2hvdWxkUmV0cnlSZXF1ZXN0KGNvbnNvbGUubG9nKVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgcHVic3ViID0gZ29vZ2xlLnB1YnN1YihcInYxXCIpO1xuICAgIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1ha2VUcmFtcG9saW5lKHdyYXBwZXI6IFdyYXBwZXIpIHtcbiAgICBhc3luYyBmdW5jdGlvbiB0cmFtcG9saW5lKGRhdGE6IFB1YnN1Yk1lc3NhZ2UsIGNvbnRleHQ6IENsb3VkRnVuY3Rpb25Db250ZXh0KSB7XG4gICAgICAgIGNvbnN0IHN0YXJ0VGltZSA9IERhdGUubm93KCk7XG4gICAgICAgIGF3YWl0IGluaXRpYWxpemUoKTtcblxuICAgICAgICBjb25zdCBleGVjdXRpb25JZCA9IGNvbnRleHQuZXZlbnRJZDtcbiAgICAgICAgY29uc3QgcHJvamVjdCA9IHByb2Nlc3MuZW52W1wiR0NQX1BST0pFQ1RcIl0hO1xuICAgICAgICBjb25zdCBmdW5jdGlvbk5hbWUgPSBwcm9jZXNzLmVudltcIkZVTkNUSU9OX05BTUVcIl0hO1xuICAgICAgICBjb25zdCBsb2dVcmwgPSBnZXRFeGVjdXRpb25Mb2dVcmwocHJvamVjdCwgZnVuY3Rpb25OYW1lLCBleGVjdXRpb25JZCk7XG4gICAgICAgIGNvbnN0IHN0ciA9IEJ1ZmZlci5mcm9tKGRhdGEuZGF0YSEsIFwiYmFzZTY0XCIpO1xuICAgICAgICBjb25zdCBjYWxsOiBGdW5jdGlvbkNhbGwgPSBkZXNlcmlhbGl6ZShzdHIudG9TdHJpbmcoKSk7XG5cbiAgICAgICAgY29uc3QgY2FsbGluZ0NvbnRleHQgPSB7XG4gICAgICAgICAgICBjYWxsLFxuICAgICAgICAgICAgc3RhcnRUaW1lLFxuICAgICAgICAgICAgbG9nVXJsLFxuICAgICAgICAgICAgZXhlY3V0aW9uSWRcbiAgICAgICAgfTtcblxuICAgICAgICBhd2FpdCB3cmFwcGVyLmV4ZWN1dGUoY2FsbGluZ0NvbnRleHQsIHtcbiAgICAgICAgICAgIG9uTWVzc2FnZTogbXNnID0+IHB1Ymxpc2hSZXNwb25zZU1lc3NhZ2UocHVic3ViLCBjYWxsLlJlc3BvbnNlUXVldWVJZCEsIG1zZylcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiB7IHRyYW1wb2xpbmUgfTtcbn1cbiJdfQ==
\No newline at end of file