You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
49 lines
1.9 KiB
49 lines
1.9 KiB
"use strict";
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.EmulatorUI = void 0;
|
|
const types_1 = require("./types");
|
|
const downloadableEmulators = require("./downloadableEmulators");
|
|
const registry_1 = require("./registry");
|
|
const error_1 = require("../error");
|
|
const constants_1 = require("./constants");
|
|
const track_1 = require("../track");
|
|
const ExpressBasedEmulator_1 = require("./ExpressBasedEmulator");
|
|
class EmulatorUI {
|
|
constructor(args) {
|
|
this.args = args;
|
|
}
|
|
start() {
|
|
if (!registry_1.EmulatorRegistry.isRunning(types_1.Emulators.HUB)) {
|
|
throw new error_1.FirebaseError(`Cannot start ${constants_1.Constants.description(types_1.Emulators.UI)} without ${constants_1.Constants.description(types_1.Emulators.HUB)}!`);
|
|
}
|
|
const { auto_download: autoDownload, projectId } = this.args;
|
|
const env = {
|
|
LISTEN: JSON.stringify(ExpressBasedEmulator_1.ExpressBasedEmulator.listenOptionsFromSpecs(this.args.listen)),
|
|
GCLOUD_PROJECT: projectId,
|
|
[constants_1.Constants.FIREBASE_EMULATOR_HUB]: registry_1.EmulatorRegistry.url(types_1.Emulators.HUB).host,
|
|
};
|
|
const session = (0, track_1.emulatorSession)();
|
|
if (session) {
|
|
env[constants_1.Constants.FIREBASE_GA_SESSION] = JSON.stringify(session);
|
|
}
|
|
return downloadableEmulators.start(types_1.Emulators.UI, { auto_download: autoDownload }, env);
|
|
}
|
|
connect() {
|
|
return Promise.resolve();
|
|
}
|
|
stop() {
|
|
return downloadableEmulators.stop(types_1.Emulators.UI);
|
|
}
|
|
getInfo() {
|
|
return {
|
|
name: this.getName(),
|
|
host: this.args.listen[0].address,
|
|
port: this.args.listen[0].port,
|
|
pid: downloadableEmulators.getPID(types_1.Emulators.UI),
|
|
};
|
|
}
|
|
getName() {
|
|
return types_1.Emulators.UI;
|
|
}
|
|
}
|
|
exports.EmulatorUI = EmulatorUI;
|