12345678910111213141516171819202122232425262728293031323334353637383940 |
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.init = void 0;
- const lodash_1 = require("lodash");
- const clc = require("colorette");
- const error_1 = require("../error");
- const logger_1 = require("../logger");
- const features = require("./features");
- const featureFns = new Map([
- ["account", features.account],
- ["database", features.database],
- ["firestore", features.firestore],
- ["functions", features.functions],
- ["hosting", features.hosting],
- ["storage", features.storage],
- ["emulators", features.emulators],
- ["project", features.project],
- ["remoteconfig", features.remoteconfig],
- ["hosting:github", features.hostingGithub],
- ]);
- async function init(setup, config, options) {
- var _a;
- const nextFeature = (_a = setup.features) === null || _a === void 0 ? void 0 : _a.shift();
- if (nextFeature) {
- if (!featureFns.has(nextFeature)) {
- const availableFeatures = Object.keys(features)
- .filter((f) => f !== "project")
- .join(", ");
- throw new error_1.FirebaseError(`${clc.bold(nextFeature)} is not a valid feature. Must be one of ${availableFeatures}`);
- }
- logger_1.logger.info(clc.bold(`\n${clc.white("===")} ${(0, lodash_1.capitalize)(nextFeature)} Setup`));
- const fn = featureFns.get(nextFeature);
- if (!fn) {
- throw new error_1.FirebaseError(`We've lost the function to init ${nextFeature}`, { exit: 2 });
- }
- await fn(setup, config, options);
- return init(setup, config, options);
- }
- }
- exports.init = init;
|