@gobvoz/cli-fsd
Version:
Utility to create slices in Feature-Sliced Design methodology. Expect, that you have already installed `react`, `typescript`, `@reduxjs/toolkit`, `@reduxjs/toolkit-query`, `i18n` and use `module.scss` structure.
38 lines (30 loc) • 1.23 kB
JavaScript
import path from 'path';
import { existsSync as folderExist } from 'fs';
import createFolder from '../utils/create-folder.js';
import log from '../utils/log.js';
const init = async () => {
if (folderExist(path.resolve('src'))) {
log.error(`Could not create "src" directory`);
log.error(`folder already exists`);
return;
}
try {
await createFolder(path.resolve('src'));
await createFolder(path.resolve('src', 'app'));
await createFolder(path.resolve('src', 'process'));
await createFolder(path.resolve('src', 'pages'));
await createFolder(path.resolve('src', 'widgets'));
await createFolder(path.resolve('src', 'features'));
await createFolder(path.resolve('src', 'entities'));
await createFolder(path.resolve('src', 'shared'));
await createFolder(path.resolve('src', 'app', 'providers'));
await createFolder(path.resolve('src', 'shared', 'assets'));
await createFolder(path.resolve('src', 'shared', 'constants'));
await createFolder(path.resolve('src', 'shared', 'libs'));
await createFolder(path.resolve('src', 'shared', 'ui'));
} catch (error) {
log.error(`Could not create folder structure`);
log.error(error);
}
};
export default init;