Files
micronomicon/backend/converter.py
2026-04-01 00:53:55 +02:00

35 lines
867 B
Python

"""µFrame compile endpoint — POST /api/compile."""
from fastapi import APIRouter, HTTPException
from pydantic import BaseModel
import uframe
from uframe.errors import UFrameError
router = APIRouter()
class CompileRequest(BaseModel):
source: str
width: int = 64
class CompileResponse(BaseModel):
ascii: str
micron: str
warnings: list[str]
@router.post("/compile", response_model=CompileResponse)
async def compile_source(req: CompileRequest):
"""Compile µFrame .uf source into ASCII and Micron output."""
try:
result = uframe.compile(req.source, width=req.width)
return CompileResponse(
ascii=result.ascii,
micron=result.micron,
warnings=[w.message for w in result.warnings],
)
except UFrameError as e:
raise HTTPException(status_code=422, detail=str(e))