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

Référence d'API — @nodefony/framework — racine

stable

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

Générée depuis les déclarations de types publiées de @nodefony/framework 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/framework#

import { … } from "@nodefony/framework" — 34 symboles.

Classes (5)#

Controller#

class Controller extends Service implements IController

Resolver#

class Resolver implements IResolver

ResourceController#

class ResourceController<T = unknown> extends Controller

Controller de ressource duplex (V4.2 — une action, deux transports) : la logique métier est écrite UNE fois dans le service de ressource, les actions de la sous-classe ne sont que des portes (REST, WS-RPC invoke, GraphQL à venir) qui retournent la valeur brute — returnController l’auto-JSON en REST, le pont WS l’enveloppe ({id,result}), sans réécrire l’action par transport.

Route#

class Route implements IRoute

default#

class Framework extends Module<IFrameworkConfig>

Fonctions (8)#

buildPlaygroundSnapshot#

function buildPlaygroundSnapshot(): { controllers: PlaygroundController[]; }

Construit le snapshot playground : toutes les routes à controller, groupées par classe de controller, triées (module puis nom, actions par path).

createFrameworkAdminApi#

function createFrameworkAdminApi(broker?: IAdminBroker, opts?: FrameworkAdminApiOptions): IAdminApi

Producteur IAdminApi du module framework — exposé sous /nodefony/framework/api/*.

createKernelAdminApi#

function createKernelAdminApi(kernel: IKernel): IAdminApi

createSyslogAdminApi#

function createSyslogAdminApi(syslog: ISyslog, options?: SyslogAdminApiOptions): IAdminApi

Producteur IAdminApi du syslog (core) — exposé sous /nodefony/syslog/api/*. 4ᵉ et dernier producteur de P10.3.

getIdempotencyStoreFactory#

function getIdempotencyStoreFactory(name: string): IdempotencyStoreFactory

Fabrique d’un store par nom, ou undefined si inconnu.

listIdempotencyStores#

function listIdempotencyStores(): string[]

Noms de stores distribués enregistrés (résolution auto + validation boot). N’inclut PAS "memory" : dans resolveAutoStore, memory est le fallback (per-pod), jamais une préférence à sélectionner — l’y mettre fausserait le choix.

registerIdempotencyStore#

function registerIdempotencyStore(name: string, factory: IdempotencyStoreFactory): void

Enregistre (ou remplace) la fabrique d’un store d’idempotence distribué. Appelée par l’application pour les adapters (redis/drizzle).

validateRouteInput#

function validateRouteInput(schema: IRouteSchema, raw: RawRouteInput): MaybePromise<RawRouteInput>

Valide l’entrée d’une action contre son schéma — synchrone tant que chaque validateur l’est, asynchrone seulement si l’un d’eux rend une promesse.

Interfaces (12)#

FrameworkAdminApiOptions#

interface FrameworkAdminApiOptions

Options de composition du producteur framework.

IIdempotencyStore#

interface IIdempotencyStore

Cache d’idempotence borné (modèle Stripe Idempotency-Key) — dédoublonne les mutations rejouées (reconnexion socket, double-clic) du data plane admin comme des controllers userland décorés @Idempotent.

IIdempotencyStoreFactoryContext#

interface IIdempotencyStoreFactoryContext

Contexte passé à une fabrique de store : de quoi se construire (résolutions coûteuses en lazy à l’intérieur de l’instance). Le module donne accès au container kernel (ctx.module.kernel?.container?.get("redis")).

IResourcePageQuery#

interface IResourcePageQuery extends IPageQuery

Requête de page telle qu’une porte la passe au service — IPageQuery du core, plus les critères que la sous-classe a EXPLICITEMENT décidé d’exposer.

IResourceReadOptions#

interface IResourceReadOptions

Options de lecture d’une liste — pagination avant tout.

IResourceService#

interface IResourceService<T = unknown>

IRouteSchema#

interface IRouteSchema

Le schéma d’une route : un Standard Schema par partie de l’entrée (Zod, Valibot, ArkType…). Chaque partie est facultative ; une partie déclarée est validée AVANT l’action, une partie omise est servie brute.

IdempotentResponse#

interface IdempotentResponse

Réponse mémorisée d’une mutation idempotente — la forme {status, headers?, body} produite par un endpoint (data plane admin AdminApiController.runAdmin, ou action userland @Idempotent), pour la rejouer telle quelle à un rejeu (même statut, même corps, même en-têtes).

PlaygroundAction#

interface PlaygroundAction

Une action invocable depuis le playground (1 route du Router).

PlaygroundController#

interface PlaygroundController

Un controller et ses actions, groupés pour la navigation Studio.

PlaygroundGuards#

interface PlaygroundGuards

Les gardes déclaratives d’une action, prêtes à afficher (badges Studio).

PlaygroundParam#

interface PlaygroundParam

Un paramètre décoré d’une action (@Param/@Body/@Query…), JSON-safe.

Types (9)#

ControllerScope#

type ControllerScope = "request" | "singleton"

Portée d’instanciation d’un contrôleur.

IdempotencyOutcome#

type IdempotencyOutcome = { state: "fresh"; } | { state: "in-flight"; } | { state: "replayed"; response: IdempotentResponse; } | { state: "mismatch"; }

Verdict de IIdempotencyStore.begin pour une clé d’idempotence donnée. Aligné sur draft-ietf-httpapi-idempotency-key-header-06 §2.6/§2.7.

IdempotencyStoreFactory#

type IdempotencyStoreFactory = (ctx: IIdempotencyStoreFactoryContext) => IIdempotencyStore

Fabrique d’un store d’idempotence pour un nom donné.

RawRouteHeaders#

type RawRouteHeaders = Readonly<Record<string, string | string[]>>

En-têtes bruts, clés en minuscules.

RawRouteInput#

type RawRouteInput = { params: unknown; query: unknown; body: unknown; headers: unknown; }

L’entrée brute d’une action, avant validation.

RawRouteParams#

type RawRouteParams = Readonly<Record<string, unknown>>

Variables de route brutes (une valeur par défaut n’est pas forcément une chaîne).

RawRouteQuery#

type RawRouteQuery = Readonly<Record<string, unknown>>

Query brute.

RouteInput#

type RouteInput<S extends IRouteSchema = IRouteSchema, Stream extends boolean = false> = { params: RoutePartOf<S, "params", RawRouteParams>; query: RoutePartOf<S, "query", RawRouteQuery>; body: Stream extends true ? Readable : RoutePartOf<S, "body", unknown>; headers: RoutePartOf<S, "headers", RawRouteHeaders>; }

L’argument UNIQUE d’une action à schéma : les quatre apports de la requête, toujours présents — validés et typés par le schéma quand il les déclare, servis bruts et typés large sinon.

RoutePart#

type RoutePart = keyof IRouteSchema

Parties de l’entrée d’une route, dans l’ordre où elles sont validées.


← Toutes les références d’API