GSI - Employe Self Service Mobile
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.
 
 
 
 
 

66 lines
2.6 KiB

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.FunctionsServer = void 0;
const path = require("path");
const functionsEmulator_1 = require("../emulator/functionsEmulator");
const functionsEmulatorUtils_1 = require("../emulator/functionsEmulatorUtils");
const projectUtils_1 = require("../projectUtils");
const auth_1 = require("../auth");
const projectConfig = require("../functions/projectConfig");
const utils = require("../utils");
const registry_1 = require("../emulator/registry");
class FunctionsServer {
assertServer() {
if (!this.emulator || !this.backends) {
throw new Error("Must call start() before calling any other operation!");
}
return this.emulator;
}
async start(options, partialArgs) {
const projectId = (0, projectUtils_1.needProjectId)(options);
const config = projectConfig.normalizeAndValidate(options.config.src.functions);
const backends = [];
for (const cfg of config) {
const functionsDir = path.join(options.config.projectDir, cfg.source);
const nodeMajorVersion = (0, functionsEmulatorUtils_1.parseRuntimeVersion)(cfg.runtime);
backends.push({
functionsDir,
codebase: cfg.codebase,
nodeMajorVersion,
env: {},
secretEnv: [],
});
}
this.backends = backends;
const account = (0, auth_1.getProjectDefaultAccount)(options.config.projectDir);
const args = Object.assign({ projectId, projectDir: options.config.projectDir, emulatableBackends: this.backends, projectAlias: options.projectAlias, account }, partialArgs);
if (options.host) {
utils.assertIsStringOrUndefined(options.host);
args.host = options.host;
}
if (options.port) {
utils.assertIsNumber(options.port);
const targets = options.targets;
const port = options.port;
const hostingRunning = targets && targets.includes("hosting");
if (hostingRunning) {
args.port = port + 1;
}
else {
args.port = port;
}
}
this.emulator = new functionsEmulator_1.FunctionsEmulator(args);
return registry_1.EmulatorRegistry.start(this.emulator);
}
async connect() {
await this.assertServer().connect();
}
async stop() {
await this.assertServer().stop();
}
get() {
return this.assertServer();
}
}
exports.FunctionsServer = FunctionsServer;