import { join } from 'path'
import { jsonResponse, errorResponse } from '../utils/cors'
import { USER_COMPONENTS_DIR, WORKING_DIR } from '../config'
import { listAllComponents, parseComponentFolder } from '../services/vue-parser'

const baseDir = join(WORKING_DIR, USER_COMPONENTS_DIR)

export function handleFsComponents(req: Request) {
  if (req.method !== 'GET') return null

  const components = listAllComponents(baseDir)
  return jsonResponse(components)
}

export function handleFsComponentByName(req: Request, folderName: string) {
  if (req.method !== 'GET') return null

  const component = parseComponentFolder(baseDir, folderName)
  if (!component) {
    return errorResponse(`Component folder "${folderName}" not found or has no .vue file`, 404)
  }

  return jsonResponse(component)
}
