Démarrage rapide

Créez votre premier plugin en 15 minutes.

Objectif

Nous allons créer un simple plugin qui reçoit un texte et retourne une réponse personnalisée.

Étape 1 : Créer la structure

Si ce n'est pas déjà fait, installez le template :

bun install

Étape 2 : Écrire le plugin

Modifiez plugins/mon-plugin.ts :

import { z } from "zod";

// Définissez votre schéma d'input
const GreetingInputSchema = z.object({
  name: z.string().describe("Le nom de la personne"),
  language: z.enum(["fr", "en"]).optional().describe("Langue de réponse"),
});

export async function greet(input: unknown) {
  const parsed = GreetingInputSchema.parse(input);

  const greeting = {
    fr: "Bonjour",
    en: "Hello",
  }[parsed.language || "fr"];

  return `${greeting}, ${parsed.name}! Bienvenue dans PluginFactory.`;
}

Étape 3 : Ajouter le schéma

Modifiez schemas/schemas.ts :

import { z } from "zod";

export const GreetingInputSchema = z.object({
  name: z.string().describe("Le nom de la personne"),
  language: z.enum(["fr", "en"]).optional().describe("Langue de réponse"),
});

Étape 4 : Tester

Créez un test dans __tests__/mon-plugin.test.ts :

import { describe, it, expect } from "bun:test";
import { greet } from "../plugins/mon-plugin";

describe("Plugin Greeting", () => {
  it("doit saluer en français", async () => {
    const result = await greet({ name: "Alice", language: "fr" });
    expect(result).toContain("Bonjour, Alice");
  });

  it("doit saluer en anglais", async () => {
    const result = await greet({ name: "Bob", language: "en" });
    expect(result).toContain("Hello, Bob");
  });

  it("doit utiliser le français par défaut", async () => {
    const result = await greet({ name: "Charlie" });
    expect(result).toContain("Bonjour, Charlie");
  });
});

Exécutez les tests :

bun test

Vous devriez voir :

✓ Plugin Greeting (3 tests)
  ✓ doit saluer en français
  ✓ doit saluer en anglais
  ✓ doit utiliser le français par défaut

Étape 5 : Vérifier la validation

Testez votre schéma :

bun run validate

Cela vérifie que tous les schémas Zod sont valides.

Félicitations ! 🎉

Vous avez créé votre premier plugin. Maintenant :

  1. Explorez les Guides avancés pour des patterns plus complexes
  2. Consultez la Référence API pour d'autres fonctionnalités
  3. Lisez comment Publier votre plugin

Prochaines étapes

Architecture d'un plugin

Previous

← Page précédente

Next

Page suivante →