rerumaccusamus
Version:
The meta-framework suite designed from scratch for frontend-focused modern web development.
48 lines (44 loc) • 1.2 kB
text/typescript
import path from 'path';
import { fs } from '@modern-js/generator-utils';
export function isEmptySource(appDir: string, entriesDir: string) {
let files;
try {
files = fs.readdirSync(path.join(appDir, entriesDir));
} catch (error) {
// read error, meaning that file may not exist.
return true;
}
const existValidFile = files
.filter(
file =>
!/^\.[\w]+/.test(file) &&
!/\.[\w]+(\.js|\.jsx|\.ts|\.tsx|\.json|\.d.ts)$/.test(file),
)
.some(file => {
const stat = fs.statSync(path.join(appDir, entriesDir, file));
if (stat.isDirectory()) {
return true;
}
if (/(\.js|\.jsx|\.ts|\.tsx)$/.test(file)) {
return true;
}
return false;
});
return !existValidFile;
}
export function isSingleEntry(appDir: string, entriesDir: string) {
const hasMainEntryFile = [
'index.jsx',
'index.tsx',
'App.jsx',
'App.tsx',
].some(f => fs.existsSync(path.join(appDir, entriesDir, f)));
if (!hasMainEntryFile) {
const dirs = fs.readdirSync(path.join(appDir, entriesDir));
if (dirs.includes('pages')) {
return true;
}
return false;
}
return hasMainEntryFile;
}