12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.serve = void 0;
- const logger_1 = require("../logger");
- const frameworks_1 = require("../frameworks");
- const experiments = require("../experiments");
- const track_1 = require("../track");
- const projectUtils_1 = require("../projectUtils");
- const constants_1 = require("../emulator/constants");
- const config = require("../hosting/config");
- const { FunctionsServer } = require("./functions");
- const TARGETS = {
- hosting: require("./hosting"),
- functions: new FunctionsServer(),
- };
- async function serve(options) {
- const targetNames = options.targets || [];
- options.port = parseInt(options.port, 10);
- if (targetNames.includes("hosting") && config.extract(options).some((it) => it.source)) {
- experiments.assertEnabled("webframeworks", "emulate a web framework");
- await (0, frameworks_1.prepareFrameworks)(targetNames, options, options);
- }
- const isDemoProject = constants_1.Constants.isDemoProject((0, projectUtils_1.getProjectId)(options) || "");
- targetNames.forEach((targetName) => {
- void (0, track_1.trackEmulator)("emulator_run", {
- emulator_name: targetName,
- is_demo_project: String(isDemoProject),
- });
- });
- await Promise.all(targetNames.map((targetName) => {
- return TARGETS[targetName].start(options);
- }));
- await Promise.all(targetNames.map((targetName) => {
- return TARGETS[targetName].connect();
- }));
- void (0, track_1.trackEmulator)("emulators_started", {
- count: targetNames.length,
- count_all: targetNames.length,
- is_demo_project: String(isDemoProject),
- });
- await new Promise((resolve) => {
- process.on("SIGINT", () => {
- logger_1.logger.info("Shutting down...");
- Promise.all(targetNames.map((targetName) => {
- return TARGETS[targetName].stop(options);
- }))
- .then(resolve)
- .catch(resolve);
- });
- });
- }
- exports.serve = serve;
|