UNPKG

@nrwl/schematics

Version:

Extensible Dev Tools for Monorepos: Schematics

50 lines (49 loc) 2.37 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); const fs = require("fs"); const ts = require("typescript"); const literals_1 = require("@angular-devkit/core/src/utils/literals"); const ast_utils_1 = require("@nrwl/workspace/src/utils/ast-utils"); exports.default = { description: 'Add makeSureNoAppIsSelected(); to karma conf', run: () => __awaiter(this, void 0, void 0, function* () { const contents = fs.readFileSync('karma.conf.js').toString(); const sourceFile = ts.createSourceFile('karma.conf.js', contents, ts.ScriptTarget.Latest); const nodes = ast_utils_1.getSourceNodes(sourceFile); const isPresent = nodes .filter(ts.isCallExpression) .filter((callExpr) => ts.isIdentifier(callExpr.expression)) .some((callExpr) => { const identifier = callExpr.expression; return identifier.escapedText === 'makeSureNoAppIsSelected'; }); if (isPresent) { return; } const snippet = literals_1.stripIndents ` const { makeSureNoAppIsSelected } = require('@nrwl/schematics/src/utils/cli-config-utils'); // Nx only supports running unit tests for all apps and libs. makeSureNoAppIsSelected(); `; const karmaComment = literals_1.stripIndents ` // Karma configuration file, see link for more information // https://karma-runner.github.io/1.0/config/configuration-file.html `; let res; if (contents.includes(karmaComment)) { res = contents.replace(karmaComment, karmaComment + '\n\n' + snippet); } else { res = snippet + '\n\n' + contents; } fs.writeFileSync('karma.conf.js', res); }) };