Nodefony 10.0.0-beta.5
Framework Node.js fullstack — HTTP & WebSocket, même contexte

Référence d'API — @nodefony/documentation

stable

Documentation › Référence d’API › @nodefony/documentation

Générée depuis les déclarations de types publiées de @nodefony/documentation 10.0.0-beta.5 : exactement ce que reçoit une application qui l’installe. Cette page n’existe dans aucun dépôt — pour la corriger, on corrige le TSDoc du code.

@nodefony/documentation#

import { … } from "@nodefony/documentation" — 39 symboles.

Classes (6)#

DocNotFoundError#

class DocNotFoundError extends DocumentationError

Slug demandé absent de l’allowlist construite par le scan (404 logique).

DocUnsafeSlugError#

class DocUnsafeSlugError extends DocumentationError

Slug rejeté car potentiellement dangereux (traversée de répertoire, segment .., caractère hors charset). Sécurité : on ne touche JAMAIS au FS avec un tel slug.

DocumentationController#

class DocumentationController extends Controller

Data plane HTTP de la documentation Nodefony.

DocumentationError#

class DocumentationError extends nodefonyError

Erreur typée du module @nodefony/documentation.

DocumentationService#

class DocumentationService extends Service

Service de documentation Nodefony — headless : produit l’index transverse et le contenu résolu des pages, sans rendre aucun HTML (le front Studio, un générateur statique ou le RAG le consomment).

default#

class Documentation extends Module<IDocumentationConfig>

Fonctions (13)#

defineDocumentationConfig#

function defineDocumentationConfig(input?: unknown): IDocumentationConfig

Valide une config partielle et applique les défauts du schéma.

documentationConfigJsonSchema#

function documentationConfigJsonSchema(): unknown

JSON Schema introspectable de la config documentation — destiné au panneau de config Studio (/nodefony/config), noms courts d’environnement compris.

extractSearchText#

function extractSearchText(markdown: string): string

Prose INDEXABLE d’une page de documentation.

foldText#

function foldText(text: string): string

Réduit un texte à sa forme comparable : minuscules, accents retirés.

isSafeSlug#

function isSafeSlug(slug: string): boolean

Valide qu’un slug est sûr à manipuler (avant toute recherche/lecture).

metaList#

function metaList(meta: Frontmatter, key: string): string[]

Lit une clé de frontmatter en string[] (wrappe un scalaire), ou [].

metaString#

function metaString(meta: Frontmatter, key: string): string

Lit une clé de frontmatter en string (1er élément si liste), ou undefined.

parseFrontmatter#

function parseFrontmatter(raw: string): ParsedDoc

Sépare le bloc frontmatter du corps markdown et parse les métadonnées.

pathToSlug#

function pathToSlug(source: DocSource, relPath: string): string

Construit le slug d’un fichier à partir de sa source et de son chemin relatif (POSIX, sans .md). Inverse jamais utilisé (slug = clé, pas chemin).

function rewriteInternalLinks(markdown: string, options: RewriteLinksOptions): string

Réécrit les liens markdown internes d’une page en slugs navigables.

scanDocsDir#

function scanDocsDir(baseDir: string, source: DocSource, exclude?: readonly string[]): Promise<ScannedDoc[]>

Scanne récursivement un dossier de docs et retourne les fichiers .md trouvés, frontmatter lu, triés par chemin relatif.

searchDocs#

function searchDocs(docs: SearchableDoc[], query: string, limit?: number): IDocSearchResult

Classe les pages qui portent TOUS les termes, la plus pertinente d’abord.

splitSearchTerms#

function splitSearchTerms(query: string): string[]

Termes effectivement cherchés : pliés, dédoublonnés, un caractère écarté.

Constantes (3)#

ROOT_GROUPS#

const ROOT_GROUPS: ReadonlyArray<{ group: string; label: string; }>

Les groupes racine publiés, dans l’ordre du menu, avec leur libellé.

ROOT_PAGES#

const ROOT_PAGES: ReadonlyArray<string>

Pages de docs/ (à la racine, hors sous-dossier) publiées dans le menu, dans cet ordre. Le reste de ce dossier est du PILOTAGE — carte des phases, README du corpus, essai sur l’outillage : utile au mainteneur du framework, illisible pour qui construit une application.

documentationConfigSchema#

const documentationConfigSchema: z.ZodObject<{ enabled: z.ZodDefault<z.ZodBoolean>; scan: z.ZodDefault<z.ZodObject<{ rootDir: z.ZodDefault<z.ZodString>; includeModules: z.ZodDefault<z.ZodBoolean>; includeInstalled: z.ZodDefault<z.ZodBoolean>; exclude: z.ZodDefault<z.ZodArray<z.ZodString>>; }, z.core.$strict>>; repo: z.ZodDefault<z.ZodObject<{ url: z.ZodDefault<z.ZodString>; branch: z.ZodOptional<z …

Interfaces (10)#

IDocAudienceInfo#

interface IDocAudienceInfo

Une persona décrite dans l’index (clé + libellé + description courte).

IDocPage#

interface IDocPage

Contenu complet d’une page renvoyé par GET …/api/page/{slug}.

IDocPageRef#

interface IDocPageRef

Entrée d’une page dans l’arbre (métadonnées seules, sans le markdown).

IDocSection#

interface IDocSection

Une section de l’index transverse : un groupe ordonné de pages.

IDocTree#

interface IDocTree

Index transverse complet renvoyé par GET …/api/tree.

IDocumentationService#

interface IDocumentationService

Service public du module documentation (consommé par le controller).

ParsedDoc#

interface ParsedDoc

Résultat du parse : meta (frontmatter) + body (markdown sans le bloc).

RewriteLinksOptions#

interface RewriteLinksOptions

Options de rewriteInternalLinks.

ScannedDoc#

interface ScannedDoc

Un fichier .md découvert par le scan, avec son chemin RÉEL et ses métadonnées. Le absPath est la seule source de vérité pour lire le fichier (jamais reconstruit depuis le slug → 0 traversée de répertoire).

SearchableDoc#

interface SearchableDoc

Une page telle que la recherche a besoin de la voir.

Types (7)#

DocAudience#

type DocAudience = "developer" | "devops" | "supervisor" | "admin"

Persona métier ciblée par une page (RBAC P6 — aujourd’hui filtre de vue).

DocSource#

type DocSource = { kind: "root"; } | { kind: "module"; module: string; }

Source d’un fichier de doc : racine du projet ou un module.

DocStatus#

type DocStatus = "stable" | "draft" | "temporary" | "experimental" | "deprecated"

Statut de maturité d’une page (issu du frontmatter status).

DocVarProvider#

type DocVarProvider = () => string

Fournisseur d’une variable dynamique {{ name }} résolue côté serveur.

Frontmatter#

type Frontmatter = Record<string, string | string[]>

Métadonnées extraites du frontmatter — valeurs scalaires ou listes.

IDocumentationConfig#

type IDocumentationConfig = z.infer<typeof documentationConfigSchema>

Type de sortie (config normalisée + défauts appliqués).

IDocumentationConfigInput#

type IDocumentationConfigInput = z.input<typeof documentationConfigSchema>

Type d’ENTRÉE (ce que l’utilisateur écrit dans use(), avant application des défauts) — tout y est optionnel. C’est CE type qui augmente le registre NodefonyModuleConfig, jamais la sortie : exiger la forme normalisée obligerait l’app à réécrire chaque défaut.


← Toutes les références d’API