Adaptateurs

Choisir un adapter

Où vivent vos feedbacks — Prisma ou SQLite pour la production, memory pour les tests et démos, localStorage pour le tout-client.

Un adapter, c'est la couche de stockage derrière InstaFix. Tous implémentent le même contrat InstaFixStore (6 méthodes), vous pouvez donc les échanger sans toucher au widget.

AdapterOù vivent les donnéesÀ utiliser pour
@instafix/adapter-prismaVotre base de données, via PrismaLa production — si Prisma est déjà en place
@instafix/adapter-sqliteUn fichier .db local, via better-sqlite3La production — sans ORM ni serveur de base de données
@instafix/adapter-memoryUn tableau en mémoire du processusTests, previews, démos jetables
@instafix/adapter-localstorageLe navigateur du visiteurDémos et prototypes côté client — aucun serveur

Vous hésitez ? Si le projet a déjà Prisma, utilisez-le — sinon SQLite donne un stockage durable réel sans rien d'autre à installer ou faire tourner. npx github:gnoopy/instafix#cli-dist init vous le demande et branche celui que vous choisissez.

Besoin d'un tout autre backend (Postgres sans Prisma, MongoDB, DynamoDB, …) ? Écrivez le vôtre avec @instafix/adapter-kit.

Deux façons de monter un store

Mode serveur — le widget parle à un endpoint HTTP, et l'endpoint parle au store. C'est la forme de production :

// app/api/instafix/route.ts
import { createInstaFixHandler } from "@instafix/adapter-prisma";
import { prisma } from "@/lib/prisma";

export const { GET, POST, PATCH, DELETE, OPTIONS } = createInstaFixHandler({ prisma });

Mode côté client — le widget écrit directement dans un store du navigateur, aucun serveur nécessaire :

import { initInstaFix } from "@instafix/widget";
import { LocalStorageStore } from "@instafix/adapter-localstorage";

initInstaFix({ store: new LocalStorageStore(), projectName: "ma-demo" });

Vous écrivez votre propre adapter ? Installez @instafix/adapter-kit : les backends snapshot obtiennent un store complet via createCollectionStore, les backends à requêtes implémentent les 6 méthodes, et les deux se vérifient avec la suite de conformité partagée (44 tests). Voir Écrire un adapter.

Modifier sur GitHub

Sur cette page