Référence Runtime API — rapide

Surface publique utilisée par les plugins et thèmes externes. Tous les exports ci-dessous viennent de — externalisés au build, redirigés au runtime par l'import-map de l'admin vers un stub qui

Surface publique utilisée par les plugins et thèmes externes. Tous les exports ci-dessous viennent de @flexweg/cms-runtime — externalisés au build, redirigés au runtime par l'import-map de l'admin vers un stub qui renvoie l'instance live de l'admin.

Versioning

TS
import {
  FLEXWEG_API_VERSION,        // version actuelle de l'API runtime
  FLEXWEG_API_MIN_VERSION,    // plus ancienne version encore supportée
} from "@flexweg/cms-runtime";

apiVersion dans votre manifest.json est comparé à [FLEXWEG_API_MIN_VERSION, FLEXWEG_API_VERSION] à l'installation + à chaque boot. Les bundles hors-range sont skippés avec un warning console.

Le contrat actuel est 1.3.0. Les changements breaking bumpent le major ; les nouveaux champs optionnels bumpent le minor.

pluginApi

TS
import { pluginApi } from "@flexweg/cms-runtime";

Expose les méthodes principales pour enregistrer des comportements :

Méthode Description
addFilter<T>(hook, fn, priority?) Enregistre un filtre. fn(value, ...args) => value. Priorité défaut 100.
addAction(hook, fn, priority?) Enregistre une action. fn(...args) => void | Promise<void>.
applyFilters<T>(hook, value, ...args) Lance tous les filtres async pour le hook.
applyFiltersSync<T>(hook, value, ...args) Idem en sync (head.extra, body.end).
doAction(hook, ...args) Lance toutes les actions.
registerBlock(manifest) Bloc d'éditeur Tiptap.
registerDashboardCard(manifest) Carte de tableau de bord.
registerRegenerationTarget(manifest) Entrée du menu Regenerate.
registerInspectorTab(manifest) Onglet Inspecteur.
registerTermEditorSection(manifest) Section dans Termes.
registerEditorVariantProvider(manifest) Onglets de variantes au-dessus de l'éditeur.

Helpers les plus utilisés

TS
import {
  slugify, buildPostUrl, buildTermUrl, canonicalUrl,
  uploadFile, deleteFile,
  fetchAllPosts, createPost, updatePost,
  publishPost, buildPublishContext, publishMenuJson,
  renderMarkdown, markdownToPlainText,
  mediaToView, pickFormat, pickMediaUrl,
  useCmsData, useAuth,
  toast, i18n,
} from "@flexweg/cms-runtime";

Voir la référence complète pour la liste exhaustive et les signatures.

Types principaux

TS
import type {
  Post, Term, Media, SiteSettings, User,
  PublishContext, SiteContext, BaseLayoutProps,
  PluginManifest, ThemeManifest, BlockManifest,
  RssItem, NewsLocaleEntry, RssLocaleEntry,
} from "@flexweg/cms-runtime";

Voir la référence des types pour les définitions détaillées.

Wave-throughs spécifiques à un backend

Aucun. Tous les CRUD passent par les dispatchers qui routent automatiquement vers Firebase ou SQLite. Votre code ne doit JAMAIS importer depuis firebase/firestore ou services/flexweg-sqlite/* directement — utilisez les exports du runtime.