35 lines
926 B
TypeScript
35 lines
926 B
TypeScript
import {
|
|
apply,
|
|
filter,
|
|
mergeWith,
|
|
move,
|
|
noop,
|
|
Rule,
|
|
template,
|
|
url,
|
|
} from '@angular-devkit/schematics';
|
|
import { names, offsetFromRoot } from '@nrwl/workspace';
|
|
import { toJS } from '@nrwl/workspace/src/utils/rules/to-js';
|
|
import { NormalizedSchema } from '../schema';
|
|
|
|
export function createApplicationFiles(options: NormalizedSchema): Rule {
|
|
return mergeWith(
|
|
apply(url(`./files/app`), [
|
|
template({
|
|
...names(options.name),
|
|
...options,
|
|
tmpl: '',
|
|
offsetFromRoot: offsetFromRoot(options.appProjectRoot),
|
|
}),
|
|
options.styledModule || !options.hasStyles
|
|
? filter((file) => !file.endsWith(`.${options.style}`))
|
|
: noop(),
|
|
options.unitTestRunner === 'none'
|
|
? filter((file) => file !== `/src/app/${options.fileName}.spec.tsx`)
|
|
: noop(),
|
|
move(options.appProjectRoot),
|
|
options.js ? toJS() : noop(),
|
|
])
|
|
);
|
|
}
|