UNPKG

@nxextensions/firebase

Version:

An Nx plugin for firebase applications that would like to run the emulators in conjunction with their app

54 lines 2.19 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = update; const devkit_1 = require("@nx/devkit"); const path_1 = require("path"); async function update(host) { const graph = await (0, devkit_1.createProjectGraphAsync)(); const projects = (0, devkit_1.readProjectsConfigurationFromProjectGraph)(graph).projects; if (allProjectsMigrated(projects, host)) { return; } configureProjects(projects, host); await (0, devkit_1.formatFiles)(host); } function allProjectsMigrated(projects, tree) { for (const [, configuration] of Object.entries(projects)) { if (configuration.projectType !== 'application') { continue; } const hasFirebaseJson = tree.exists((0, devkit_1.joinPathFragments)(configuration.root, 'firebase.json')); if (hasFirebaseJson) { const hasNxFirebaseJson = tree.exists((0, devkit_1.joinPathFragments)(configuration.root, 'nx-firebase.json')); if (!hasNxFirebaseJson) { return false; } } } return true; } function configureProjects(projects, host) { Object.entries(projects) .filter(([, configuration]) => configuration.projectType === 'application') .forEach(([name, configuration]) => { var _a; const firebasePath = (0, devkit_1.joinPathFragments)(configuration.root, 'firebase.json'); const nxFirebasePath = (0, devkit_1.joinPathFragments)(configuration.root, 'nx-firebase.json'); if (!host.exists(firebasePath) || host.exists(nxFirebasePath)) { return; } let target = ((_a = configuration.targets) === null || _a === void 0 ? void 0 : _a['serve']) ? 'serve' : undefined; if (!target) { target = Object.keys(configuration.targets).find((key) => key.toLowerCase().includes('serve')); } if (target) { (0, devkit_1.generateFiles)(host, (0, path_1.join)(__dirname, 'files'), configuration.root, { project: name, target, }); } }); } //# sourceMappingURL=add-nx-firebase-json.js.map