47 lines
1.2 KiB
TypeScript
47 lines
1.2 KiB
TypeScript
import type { GeneratorCallback, Tree } from '@nx/devkit';
|
|
import {
|
|
addDependenciesToPackageJson,
|
|
formatFiles,
|
|
generateFiles,
|
|
readProjectConfiguration,
|
|
} from '@nx/devkit';
|
|
|
|
import {
|
|
autoprefixerVersion,
|
|
postcssVersion,
|
|
tailwindcssVersion,
|
|
} from '../../utils/versions';
|
|
import type { SetupTailwindOptions } from './schema';
|
|
import { addTailwindStyleImports } from './lib/add-tailwind-style-imports';
|
|
import { join } from 'path';
|
|
|
|
export async function setupTailwindGenerator(
|
|
tree: Tree,
|
|
options: SetupTailwindOptions
|
|
): Promise<void | GeneratorCallback> {
|
|
let installTask: GeneratorCallback | undefined = undefined;
|
|
const project = readProjectConfiguration(tree, options.project);
|
|
|
|
generateFiles(tree, join(__dirname, './files'), project.root, {});
|
|
|
|
addTailwindStyleImports(tree, project, options);
|
|
|
|
if (!options.skipPackageJson) {
|
|
installTask = addDependenciesToPackageJson(
|
|
tree,
|
|
{},
|
|
{
|
|
autoprefixer: autoprefixerVersion,
|
|
postcss: postcssVersion,
|
|
tailwindcss: tailwindcssVersion,
|
|
}
|
|
);
|
|
}
|
|
|
|
if (!options.skipFormat) await formatFiles(tree);
|
|
|
|
return installTask;
|
|
}
|
|
|
|
export default setupTailwindGenerator;
|