fix(chatbot-taff): import JSON statique — fonctionne dev + prod
Import direct du JSON au moment du build (bundlé par Rollup). Supprime serverAssets et useStorage qui ne marchaient pas en dev Nitro. Ajoute GET /api/plateformes-taff comme endpoint réutilisable. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -28,12 +28,6 @@ export default defineNuxtConfig({
|
||||
// Leaflet ne fonctionne pas en SSR — forcer le rendu côté client
|
||||
ssr: true,
|
||||
|
||||
nitro: {
|
||||
serverAssets: [
|
||||
{ baseName: 'taff', dir: './public/data' },
|
||||
],
|
||||
},
|
||||
|
||||
vite: {
|
||||
cacheDir: 'C:/Users/jules/AppData/Local/nav-carte-vite-cache',
|
||||
optimizeDeps: {
|
||||
|
||||
@@ -4,6 +4,8 @@
|
||||
* Lit plateformes-taff.json, appelle Mistral Small, retourne recommandations.
|
||||
*/
|
||||
|
||||
// @ts-ignore — JSON import résolu par Vite/Rollup
|
||||
import taffData from '../../public/data/plateformes-taff.json'
|
||||
import { checkRateLimitJson } from '~/server/utils/rateLimitJson'
|
||||
|
||||
interface PlateformeMinimal {
|
||||
@@ -65,12 +67,8 @@ export default defineEventHandler(async (event) => {
|
||||
throw createError({ statusCode: 400, statusMessage: 'Question trop courte.' })
|
||||
}
|
||||
|
||||
// Lire le JSON via Nitro serverAssets (bundelé avec le serveur, dev + prod)
|
||||
let plateformes: PlateformeMinimal[] = []
|
||||
try {
|
||||
const raw = await useStorage('assets:taff').getItem('plateformes-taff.json') as { plateformes: PlateformeMinimal[] } | null
|
||||
if (!raw) throw new Error('null')
|
||||
plateformes = (raw.plateformes ?? []).map((p: any) => ({
|
||||
// Données bundlées statiquement à la compilation (import JSON)
|
||||
const plateformes: PlateformeMinimal[] = ((taffData as any).plateformes ?? []).map((p: any) => ({
|
||||
id: p.id,
|
||||
nom: p.nom,
|
||||
type: p.type,
|
||||
@@ -79,9 +77,6 @@ export default defineEventHandler(async (event) => {
|
||||
secteurs_servis: p.secteurs_servis,
|
||||
cout_entree: p.cout_entree,
|
||||
}))
|
||||
} catch (e) {
|
||||
throw createError({ statusCode: 500, statusMessage: 'Données plateformes introuvables.' })
|
||||
}
|
||||
|
||||
const context = plateformes.map(p => ({
|
||||
id: p.id,
|
||||
|
||||
9
server/api/plateformes-taff.get.ts
Normal file
9
server/api/plateformes-taff.get.ts
Normal file
@@ -0,0 +1,9 @@
|
||||
/**
|
||||
* GET /api/plateformes-taff
|
||||
* Retourne les données TAFF — JSON importé statiquement (bundlé par Rollup).
|
||||
* Utilisé par le chatbot-taff en interne et potentiellement par le front.
|
||||
*/
|
||||
// @ts-ignore — JSON import résolu par Vite/Rollup
|
||||
import data from '../../public/data/plateformes-taff.json'
|
||||
|
||||
export default defineEventHandler(() => data)
|
||||
Reference in New Issue
Block a user