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.15 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.initGenerator = initGenerator; const devkit_1 = require("@nx/devkit"); const add_plugin_1 = require("@nx/devkit/src/utils/add-plugin"); const path_1 = require("path"); const targets_1 = require("../../targets"); async function initGenerator(tree) { const nxJson = (0, devkit_1.readNxJson)(tree); const addPlugins = process.env.NX_ADD_PLUGINS !== 'false' && nxJson.useInferencePlugins !== false; const graph = await (0, devkit_1.createProjectGraphAsync)({ exitOnError: true }); if (addPlugins) { await addFirebasePlugin(tree, graph, true); } const projects = (0, devkit_1.readProjectsConfigurationFromProjectGraph)(graph).projects; await generateConfigurationFiles(tree, projects); await (0, devkit_1.formatFiles)(tree); } async function addFirebasePlugin(tree, graph, updatePackageScripts) { return (0, add_plugin_1.addPlugin)(tree, graph, '@nxextensions/firebase', targets_1.createNodesV2, { serveTargetName: ['serve-firebase'], deployTargetName: ['deploy'], includeHosting: [false], }, updatePackageScripts); } async function generateConfigurationFiles(tree, projects) { Object.entries(projects).forEach(([name, configuration]) => { if (!hasFirebaseJson(configuration.root, tree)) { return; } let targetName; if (!configuration.targets['serve']) { Object.keys(configuration.targets).forEach((key) => { if (!targetName && key.toLowerCase().includes('serve')) { targetName = key; } }); } else { targetName = 'serve'; } (0, devkit_1.generateFiles)(tree, (0, path_1.join)(__dirname, 'files'), configuration.root, { project: name, target: targetName, tmpl: '', }); }); } function hasFirebaseJson(projectRoot, tree) { return tree.exists((0, devkit_1.joinPathFragments)(projectRoot, 'firebase.json')); } exports.default = initGenerator; //# sourceMappingURL=generator.js.map