@nrwl/schematics
Version:
50 lines (49 loc) • 2.37 kB
JavaScript
;
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);
})
};