UNPKG

@objectivity/angular-schematic-app-insights

Version:

Adds Azure AppInsights integration to Angular project.

56 lines 2.75 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const schematics_1 = require("@angular-devkit/schematics"); const angular_schematic_utils_1 = require("@objectivity/angular-schematic-utils"); const schematics_utilities_1 = require("schematics-utilities"); const dependences_1 = require("../dependences"); const tasks_1 = require("@angular-devkit/schematics/tasks"); const tasks_2 = require("@angular-devkit/schematics/tasks"); const schematics_utilities_2 = require("schematics-utilities"); const angular_schematic_utils_2 = require("@objectivity/angular-schematic-utils"); function default_1(options) { return (tree, context) => { const workspace = schematics_utilities_1.getWorkspace(tree); const workspaceProject = angular_schematic_utils_2.getProjectFromWorkspace(workspace, options.project); const skipCoreModule = angular_schematic_utils_1.coreModuleExists(tree, workspaceProject); context.addTask(new tasks_2.RunSchematicTask('monitoring-module', Object.assign(Object.assign({}, options), { skipCoreModule }))); return schematics_1.chain([ schematics_1.branchAndMerge(schematics_1.chain([ addExternaPackage(options), updateEnvironments(options), skipCoreModule ? addMonitorModuleToCoreModule(workspaceProject) : addMonitorModuleToRootModule(workspaceProject) ])) ]); }; } exports.default = default_1; function updateEnvironments(options) { return (_tree, _context) => { const insertion = ',\n' + ` appInsights: {\n` + ` instrumentationKey: '${options.instrumentationKey}'\n` + ` }`; return angular_schematic_utils_1.updateEnvironmentConfiguration(options.project, insertion); }; } function addMonitorModuleToCoreModule(workspaceProject) { return (tree, _context) => { angular_schematic_utils_1.addModuleToCoreModule(tree, 'MonitoringModule', `./monitoring`, workspaceProject); return tree; }; } function addMonitorModuleToRootModule(workspaceProject) { return (tree, _context) => { angular_schematic_utils_1.addModuleImportToRootModule(tree, 'CoreModule', `./core/core.module`, workspaceProject); return tree; }; } function addExternaPackage(options) { return (tree, context) => { schematics_utilities_2.addPackageJsonDependency(tree, { type: schematics_utilities_2.NodeDependencyType.Default, version: dependences_1.ngApplicationInsights.version, name: dependences_1.ngApplicationInsights.pkg }); if (options.skipInstall !== true) { context.addTask(new tasks_1.NodePackageInstallTask()); } }; } //# sourceMappingURL=index.js.map