1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.getRuntimeChoice = exports.DEPRECATED_NODE_VERSION_INFO = exports.UNSUPPORTED_NODE_VERSION_PACKAGE_JSON_MSG = exports.UNSUPPORTED_NODE_VERSION_FIREBASE_JSON_MSG = exports.RUNTIME_NOT_SET = void 0;
- const path = require("path");
- const clc = require("colorette");
- const error_1 = require("../../../../error");
- const track_1 = require("../../../../track");
- const runtimes = require("../../runtimes");
- const cjson = require("cjson");
- const ENGINE_RUNTIMES = {
- 6: "nodejs6",
- 8: "nodejs8",
- 10: "nodejs10",
- 12: "nodejs12",
- 14: "nodejs14",
- 16: "nodejs16",
- 18: "nodejs18",
- };
- const ENGINE_RUNTIMES_NAMES = Object.values(ENGINE_RUNTIMES);
- exports.RUNTIME_NOT_SET = "`runtime` field is required but was not found in firebase.json.\n" +
- "To fix this, add the following lines to the `functions` section of your firebase.json:\n" +
- '"runtime": "nodejs16"\n';
- exports.UNSUPPORTED_NODE_VERSION_FIREBASE_JSON_MSG = clc.bold(`functions.runtime value is unsupported. ` +
- `Valid choices are: ${clc.bold("nodejs{10|12|14|16}")}.`);
- exports.UNSUPPORTED_NODE_VERSION_PACKAGE_JSON_MSG = clc.bold(`package.json in functions directory has an engines field which is unsupported. ` +
- `Valid choices are: ${clc.bold('{"node": 10|12|14|16}')}`);
- exports.DEPRECATED_NODE_VERSION_INFO = `\n\nDeploys to runtimes below Node.js 10 are now disabled in the Firebase CLI. ` +
- `${clc.bold(`Existing Node.js 8 functions ${clc.underline("will stop executing at a future date")}`)}. Update existing functions to Node.js 10 or greater as soon as possible.`;
- function getRuntimeChoiceFromPackageJson(sourceDir) {
- const packageJsonPath = path.join(sourceDir, "package.json");
- let loaded;
- try {
- loaded = cjson.load(packageJsonPath);
- }
- catch (err) {
- throw new error_1.FirebaseError(`Unable to load ${packageJsonPath}: ${err}`);
- }
- const engines = loaded.engines;
- if (!engines || !engines.node) {
- throw new error_1.FirebaseError(exports.RUNTIME_NOT_SET);
- }
- return ENGINE_RUNTIMES[engines.node];
- }
- function getRuntimeChoice(sourceDir, runtimeFromConfig) {
- const runtime = runtimeFromConfig || getRuntimeChoiceFromPackageJson(sourceDir);
- const errorMessage = (runtimeFromConfig
- ? exports.UNSUPPORTED_NODE_VERSION_FIREBASE_JSON_MSG
- : exports.UNSUPPORTED_NODE_VERSION_PACKAGE_JSON_MSG) + exports.DEPRECATED_NODE_VERSION_INFO;
- if (!runtime || !ENGINE_RUNTIMES_NAMES.includes(runtime)) {
- void (0, track_1.track)("functions_runtime_notices", "package_missing_runtime");
- throw new error_1.FirebaseError(errorMessage, { exit: 1 });
- }
- if (runtimes.isDeprecatedRuntime(runtime) || !runtimes.isValidRuntime(runtime)) {
- void (0, track_1.track)("functions_runtime_notices", `${runtime}_deploy_prohibited`);
- throw new error_1.FirebaseError(errorMessage, { exit: 1 });
- }
- return runtime;
- }
- exports.getRuntimeChoice = getRuntimeChoice;
|