"use strict"; var url = require("url"); var extractTriggers = require("./extractTriggers"); var EXIT = function () { process.exit(0); }; const dynamicImport = new Function("modulePath", "return import(modulePath)"); async function loadModule(packageDir) { try { return require(packageDir); } catch (e) { if (e.code === "ERR_REQUIRE_ESM") { const modulePath = require.resolve(packageDir); const moduleURL = url.pathToFileURL(modulePath).href; return await dynamicImport(moduleURL); } throw e; } } (async function () { if (!process.send) { console.warn("Could not parse function triggers (process.send === undefined)."); process.exit(1); } var packageDir = process.argv[2]; if (!packageDir) { process.send({ error: "Must supply package directory for functions trigger parsing." }, EXIT); return; } var mod; var triggers = []; try { mod = await loadModule(packageDir); } catch (e) { if (e.code === "MODULE_NOT_FOUND") { process.send({ error: "Error parsing triggers: " + e.message + '\n\nTry running "npm install" in your functions directory before deploying.', }, EXIT); return; } if (/Firebase config variables are not available/.test(e.message)) { process.send({ error: "Error occurred while parsing your function triggers. " + 'Please ensure you have the latest firebase-functions SDK by running "npm i --save firebase-functions@latest" inside your functions folder.\n\n' + e.stack, }, EXIT); return; } process.send({ error: "Error occurred while parsing your function triggers.\n\n" + e.stack, }, EXIT); return; } try { extractTriggers(mod, triggers); } catch (err) { if (/Maximum call stack size exceeded/.test(err.message)) { process.send({ error: "Error occurred while parsing your function triggers. Please ensure that index.js only " + "exports cloud functions.\n\n", }, EXIT); return; } process.send({ error: err.message }, EXIT); } process.send({ triggers: triggers }, EXIT); })();