Référence d'API — @nodefony/framework — service
stable
Documentation › Référence d’API › @nodefony/framework › service
Générée depuis les déclarations de types publiées de
@nodefony/framework10.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" — 6 symboles.
Classes (4)#
AdminBroker#
class AdminBroker extends Service implements IAdminBroker
Implémentation du data plane admin (Studio) — collecte les IAdminApi et monte /nodefony/<namespace>/api/* via le Router.
readonly rootPrefix = "/nodefony"— Préfixe racine réservé au framework.readonly apiSegment = "api"— Segment marqueur du data plane.readonly defaultRole = "ROLE_NODEFONY_ADMIN"— Rôle exigé par défaut quand un endpoint n’en précise pas.constructor(module: Module)register(api: IAdminApi): this— Enregistre un producteur.unregister(namespace: string): boolean— Retire un producteur (et ses routes si déjà montées).has(namespace: string): boolean— Vérifie l’existence d’un service dans le container.getApi(namespace: string): IAdminApi— Producteur enregistré sous ce namespace, ouundefined.list(): readonly IAdminApi[]— Liste immuable des producteurs enregistrés.resolvePath(namespace: string, endpointPath: string): string— Calcule le chemin absolu d’un endpoint sans le monter.resolve(routeName: string): IAdminRoute— Résout une route admin par son nom framework — lookup O(1) utilisé par le controller pont (AdminApiController.dispatch) à chaque requête.routes(): readonly IAdminRoute[]— Introspection : toutes les routes admin résolues (montées ou montables).mountAll(): void— Monte toutes les routes de tous les producteurs enregistrés via le Router (Router.createRoute).
Eta#
class Eta extends Template
engine: EtaEngineconstructor(module: Module)render(str: string, data?: Record<string, unknown>): Promise<string>— Rend un template depuis une chaîne source (chemin chaud du Controller).renderFile(path: string, data?: Record<string, unknown>): Promise<string>— Rend un template depuis un chemin de fichier (lecture async non bloquante).
MemoryIdempotencyStore#
class MemoryIdempotencyStore extends Service implements IIdempotencyStore
Implémentation mémoire (per-pod) de IIdempotencyStore — cache borné de dédup des mutations admin rejouées.
constructor(module: Module)get size(): number— Nombre d’entrées vivantes (observabilité / tests).listPage(query: IIdempotencyListQuery): Promise<IPage<IIdempotencyKeyEntry>>— {@inheritDoc IIdempotencyStore.listPage}begin(key: string, fingerprint: string): IdempotencyOutcome— Réserve atomiquement la clé et renvoie le verdict à suivre.complete(key: string, response: IdempotentResponse): void— Mémorise la réponse d’une clé in-flight (TTL) → rejeux futurs =replayed.abort(key: string): void— Libère une clé in-flight dont l’exécution a échoué : rien n’est mémorisé (un échec doit pouvoir être réessayé).
Router#
class Router extends Service implements IRequestRouter
get [FRAMEWORK_ROUTER](): true— MarqueFRAMEWORK_ROUTER— sur le prototype, aucun champ par instance.static routes: Route[]routes: Route[]constructor(module: Module)getSingletonController<T extends object>(ctor: new (...args: never[]) => T, create: () => MaybePromise<T>): MaybePromise<T>— Retourne l’instance singleton d’une classe controller@Scope("singleton"), en la créant au premier appel viacreate.servesWebsocket(pathname: string): boolean— Dit si au moins une route déclare le transportWEBSOCKETpour ce chemin — contrôle d’avant101du pipeline WebSocket (cfIRequestRouter).resolve(context: ContextType, cleanPathOverride?: string, methodOverride?: string): Resolver— Résout une route pour un contexte donné.resolveController(contex: ContextType, name: string): ResolvermatchRoutes(path: string): RegExpExecArray[]getRoutes(name: string): Route[] | RoutesetRoute(): voidremoveRoutes(name: string): voidstatic createRoute(name: string, obj: RouteOptions): Routestatic setController(myconstructor: TypeController<Controller>, module: Module): TypeController<Controller>— Enregistre une classe contrôleur pour un module — l’entonnoir UNIQUE : le décorateur@controllersy passe, comme les contrôleurs internes que le framework enregistre directement (plan d’administrati …static getRoutesForController(myconstructor: TypeController<Controller>): Route[]— Retourne les routes enregistrées pour un controller donné — utilisé par le décorateur@controllerspour logger chaque route depuis le module propriétaire (msgidMODULE <name>au lieu deKERNEL).
Fonctions (1)#
isFrameworkRouter#
function isFrameworkRouter(router: IRequestRouter | null): router is Router
Dit si le service router d’un contexte est le Router de @nodefony/framework — la garde qui rétrécit le contrat IRequestRouter de @nodefony/http sans conversion, pour qui lit des membres propres au framework (le Resolver complet que rend resolve).
Constantes (1)#
FRAMEWORK_ROUTER#
const FRAMEWORK_ROUTER: unique symbol
Marque du Router de @nodefony/framework — ce que isFrameworkRouter lit. Symbol.for : la même marque pour deux copies installées du framework, là où instanceof échouerait en silence. Un faux routeur de test s’en réclame explicitement.