@objectivity/angular-schematic-app-insights
Version:
Adds Azure AppInsights integration to Angular project.
56 lines • 2.75 kB
JavaScript
;
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