UNPKG

firebase-tools

Version:
32 lines (31 loc) 1.22 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getRuntimeDelegate = getRuntimeDelegate; const node = require("./node"); const python = require("./python"); const validate = require("../validate"); const error_1 = require("../../../error"); const supported = require("./supported"); const dart = require("./dart"); const experiments = require("../../../experiments"); const factories = [ node.tryCreateDelegate, python.tryCreateDelegate, (ctx) => experiments.isEnabled("functionsrunapionly") ? dart.tryCreateDelegate(ctx) : Promise.resolve(undefined), ]; async function getRuntimeDelegate(context) { const { projectDir, sourceDir, runtime } = context; if (runtime && !supported.isRuntime(runtime)) { throw new error_1.FirebaseError(`firebase.json specifies invalid runtime ${runtime} for directory ${sourceDir}`); } validate.functionsDirectoryExists(sourceDir, projectDir); for (const factory of factories) { const delegate = await factory(context); if (delegate) { return delegate; } } throw new error_1.FirebaseError(`Could not detect runtime for functions at ${sourceDir}`); }