46 lines
1.1 KiB
TypeScript
46 lines
1.1 KiB
TypeScript
import { existsSync } from 'node:fs'
|
|
import path from 'node:path'
|
|
import fs from 'fs-extra'
|
|
|
|
export async function getProjectInfo() {
|
|
const info = {
|
|
tsconfig: null,
|
|
isNuxt: false,
|
|
isVueVite: false,
|
|
srcDir: false,
|
|
componentsUiDir: false,
|
|
srcComponentsUiDir: false,
|
|
}
|
|
|
|
try {
|
|
const tsconfig = await getTsConfig()
|
|
|
|
return {
|
|
tsconfig,
|
|
isNuxt: existsSync(path.resolve('./nuxt.config.js')) || existsSync(path.resolve('./nuxt.config.ts')),
|
|
isVueVite: existsSync(path.resolve('./vite.config.js')) || existsSync(path.resolve('./vite.config.ts')),
|
|
srcDir: existsSync(path.resolve('./src')),
|
|
srcComponentsUiDir: existsSync(path.resolve('./src/components/ui')),
|
|
componentsUiDir: existsSync(path.resolve('./components/ui')),
|
|
}
|
|
}
|
|
catch (error) {
|
|
return info
|
|
}
|
|
}
|
|
|
|
export async function getTsConfig() {
|
|
try {
|
|
const tsconfigPath = path.join('tsconfig.json')
|
|
const tsconfig = await fs.readJSON(tsconfigPath)
|
|
|
|
if (!tsconfig)
|
|
throw new Error('tsconfig.json is missing')
|
|
|
|
return tsconfig
|
|
}
|
|
catch (error) {
|
|
return null
|
|
}
|
|
}
|