nx/packages/next/src/generators/application/lib/create-application-files.ts

58 lines
1.4 KiB
TypeScript

import { join } from 'path';
import { NormalizedSchema } from './normalize-options';
import {
createAppJsx,
createStyleRules,
} from './create-application-files.helpers';
import {
generateFiles,
names,
offsetFromRoot,
toJS,
Tree,
updateTsConfigsToJs,
} from '@nrwl/devkit';
export function createApplicationFiles(host: Tree, options: NormalizedSchema) {
const templateVariables = {
...names(options.name),
...options,
tmpl: '',
offsetFromRoot: offsetFromRoot(options.appProjectRoot),
appContent: createAppJsx(options.name),
styleContent: createStyleRules(),
pageStyleContent: `.page {}`,
stylesExt:
options.style === 'less' || options.style === 'styl'
? options.style
: 'css',
};
generateFiles(
host,
join(__dirname, '../files'),
options.appProjectRoot,
templateVariables
);
if (options.unitTestRunner === 'none') {
host.delete(`${options.appProjectRoot}/specs/${options.fileName}.spec.tsx`);
}
if (options.styledModule) {
host.delete(
`${options.appProjectRoot}/pages/${options.fileName}.module.${options.style}`
);
}
if (options.style !== 'styled-components') {
host.delete(`${options.appProjectRoot}/pages/_document.tsx`);
}
if (options.js) {
host.delete(`${options.appProjectRoot}/index.d.ts`);
toJS(host);
host.delete(`${options.appProjectRoot}/next-env.d.js`);
}
}