@nrwl/schematics no longer uses the @ngrx/schematics to generate NgRx feature files. * `ngrx/files/__directory__` templates are used * Templates replicate the simple outputs generated from @ngrx/schematics:feature * Templates add significant Nx enhancements. The following standard files will be scaffolded: * `<feature>.actions.ts` * `<feature>.effects.ts` + `<feature>.effects.spec.ts` * `<feature>.reducer.ts` + `<feature>.reducer.spec.ts` The following new files will also be scaffolded: * `<feature>.selectors.ts` + `<feature>.selectors.spec.ts` Changes include: * Change the action/enums to generate a trio of enums for each *feature*: `Load<Feature>`, `<Feature>Loaded`, and `<Feature>LoadError` * Add code generators for `<feature>.selectors.ts` * Add code generators for unit and integration testing `*.spec.ts` files * Update the public barrel [`index.ts`] when adding ngrx to a library * Use `StoreModule.forFeature()` when adding ngrx feature (without using the `--root` option) * Use the Effect to respond tp `load<Feature>$` and dispatch `<Feature>Loaded` or `<Feature>LoadError` * Update the Action to export `<feature>Actions` map of all action classes * fix `ng-add.test.ts` tests for latest Angular CLI scaffolding * fix `application.spec.ts` expect fails Fixes #472, Fixes #618, Fixes #317, Fixes #561, Refs #380.
41 lines
1.3 KiB
TypeScript
41 lines
1.3 KiB
TypeScript
import { Rule, Tree, SchematicContext } from '@angular-devkit/schematics';
|
|
import { offsetFromRoot } from '../common';
|
|
import { createOrUpdate, getProjectConfig } from '../ast-utils';
|
|
|
|
/**
|
|
* This returns a Rule which changes the default Angular CLI Generated karma.conf.js
|
|
* @param options Object containing projectROot
|
|
*/
|
|
export function updateKarmaConf(options: { projectName: string }): Rule {
|
|
return (host: Tree, context: SchematicContext) => {
|
|
const project = getProjectConfig(host, options.projectName);
|
|
const projectRoot = project.root.replace(/\/$/, '');
|
|
const karmaPath = project.architect.test.options.karmaConfig;
|
|
|
|
createOrUpdate(
|
|
host,
|
|
karmaPath,
|
|
`// Karma configuration file, see link for more information
|
|
// https://karma-runner.github.io/1.0/config/configuration-file.html
|
|
|
|
const { join } = require('path');
|
|
const getBaseKarmaConfig = require('${offsetFromRoot(projectRoot)}karma.conf');
|
|
|
|
module.exports = function(config) {
|
|
const baseConfig = getBaseKarmaConfig();
|
|
config.set({
|
|
...baseConfig,
|
|
coverageIstanbulReporter: {
|
|
...baseConfig.coverageIstanbulReporter,
|
|
dir: join(__dirname, '${offsetFromRoot(
|
|
projectRoot
|
|
)}coverage/${projectRoot}')
|
|
}
|
|
});
|
|
};
|
|
`
|
|
);
|
|
return host;
|
|
};
|
|
}
|