@nx-extend/shadcn-ui
Version:
<a href="https://www.npmjs.com/package/@nx-extend/shadcn-ui" rel="nofollow"> <img src="https://badgen.net/npm/v/@nx-extend/shadcn-ui" alt="@nx-extend/shadcn-ui NPM package"> </a>
96 lines • 4.4 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = default_1;
const tslib_1 = require("tslib");
const devkit_1 = require("@nx/devkit");
const project_name_and_root_utils_1 = require("@nx/devkit/src/generators/project-name-and-root-utils");
const eslint_1 = require("@nx/eslint");
const js_1 = require("@nx/js");
const react_1 = require("@nx/react");
const path_1 = require("path");
function cleanupLib(tree, libDirectory) {
// Remove the unneeded files
tree.delete(`${libDirectory}/package.json`);
tree.delete(`${libDirectory}/src/index.ts`);
const libFiles = tree.children(`${libDirectory}/src/lib`);
for (const file of libFiles) {
tree.delete(`${libDirectory}/src/lib/${file}`);
}
}
function addFilesToUtilsLib(host, libDirectory) {
(0, devkit_1.generateFiles)(host, (0, path_1.join)(__dirname, 'files-utils'), libDirectory, {
template: ''
});
}
function getLibRoot(host, fileName) {
return (0, devkit_1.joinPathFragments)((0, devkit_1.getWorkspaceLayout)(host).libsDir, fileName);
}
function default_1(tree, options) {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
const uiLibOptions = yield (0, project_name_and_root_utils_1.determineProjectNameAndRootOptions)(tree, {
name: options.uiName,
projectType: 'library',
directory: getLibRoot(tree, options.uiName)
});
yield (0, react_1.libraryGenerator)(tree, {
name: options.uiName,
skipFormat: true,
style: 'css',
linter: eslint_1.Linter.EsLint,
directory: uiLibOptions.projectRoot,
skipTsConfig: true
});
const utilsLibOptions = yield (0, project_name_and_root_utils_1.determineProjectNameAndRootOptions)(tree, {
name: options.utilsName,
projectType: 'library',
directory: getLibRoot(tree, options.utilsName)
});
yield (0, react_1.libraryGenerator)(tree, {
name: options.utilsName,
skipFormat: true,
style: 'css',
linter: eslint_1.Linter.EsLint,
directory: utilsLibOptions.projectRoot,
skipTsConfig: true
});
(0, js_1.addTsConfigPath)(tree, `${uiLibOptions.importPath}`, [`${uiLibOptions.projectRoot}/src`]);
(0, js_1.addTsConfigPath)(tree, `${utilsLibOptions.importPath}`, [`${utilsLibOptions.projectRoot}/src`]);
(0, js_1.addTsConfigPath)(tree, `${uiLibOptions.importPath}/*`, [`${uiLibOptions.projectRoot}/src/*`]);
(0, js_1.addTsConfigPath)(tree, `${utilsLibOptions.importPath}/*`, [`${utilsLibOptions.projectRoot}/src/*`]);
cleanupLib(tree, uiLibOptions.projectRoot);
cleanupLib(tree, utilsLibOptions.projectRoot);
addFilesToUtilsLib(tree, `${getLibRoot(tree, options.utilsName)}/src`);
(0, devkit_1.writeJson)(tree, 'components.json', {
'$schema': 'https://ui.shadcn.com/schema.json',
'style': 'default',
'rsc': false,
'tailwind': {
'config': (0, path_1.join)(utilsLibOptions.projectRoot, 'src/tailwind.config.ts'),
'css': (0, path_1.join)(utilsLibOptions.projectRoot, 'src/global.css'),
'baseColor': 'neutral',
'cssVariables': true
},
'aliases': {
'ui': uiLibOptions.importPath,
'components': `${uiLibOptions.importPath}/components`,
'utils': utilsLibOptions.importPath,
'hooks': `${uiLibOptions.importPath}/hooks`
}
});
(0, devkit_1.updateProjectConfiguration)(tree, uiLibOptions.projectName, Object.assign(Object.assign({}, (0, devkit_1.readProjectConfiguration)(tree, uiLibOptions.projectName)), { targets: {
'add-component': {
executor: '@nx-extend/shadcn-ui:add'
}
} }));
return (0, devkit_1.runTasksInSerial)((0, devkit_1.addDependenciesToPackageJson)(tree, {
'class-variance-authority': '^0.7.0',
'clsx': '^2.1.1',
'lucide-react': '^0.395.0',
'tailwind-merge': '^2.3.0',
'tailwindcss-animate': '^1.0.7'
}, {
tailwindcss: '^3.4.6'
}));
});
}
//# sourceMappingURL=init.impl.js.map
;