Créer un point d'entrée static
@duplojs/http/static permet d'exposer un fichier ou un dossier en lecture seule. Vous pouvez soit brancher directement le staticPlugin dans le Hub, soit enregistrer une route manuellement avec makeRouteFile ou makeRouteFolder.
Avec staticPlugin
ts
import { createHub } from "@duplojs/http";
import { SF } from "@duplojs/server-utils";
import { staticPlugin } from "@duplojs/http/static";
const logoFile = SF.createFileInterface("./public/logo.svg");
const assetsFolder = SF.createFolderInterface("./public");
export const hub = createHub({ environment: "DEV" })
.plug(
staticPlugin(logoFile, {
path: "/logo",
cacheControlConfig: {
maxAge: 3600,
public: true,
},
}),
)
.plug(
staticPlugin(assetsFolder, {
prefix: "/assets",
}),
);Le plugin choisit automatiquement le bon comportement selon la source passée.
sourceest unFileInterfaceou unFolderInterface.pathexpose un fichier unique sur une route précise.prefixexpose tout un dossier sous un préfixe d'URL.cacheControlConfigpermet d'ajouter les entêtescache-control.directoryFallBackFilepermet de servir un fichier par défaut pour un dossier, par exempleindex.html.
Avec makeRouteFile
ts
import { createHub } from "@duplojs/http";
import { SF } from "@duplojs/server-utils";
import { makeRouteFile } from "@duplojs/http/static";
const faviconRoute = makeRouteFile({
source: SF.createFileInterface("./public/favicon.ico"),
path: "/favicon.ico",
cacheControlConfig: {
maxAge: 86400,
public: true,
},
});
export const hub = createHub({ environment: "DEV" })
.register(faviconRoute);Utilisez cette fonction quand vous voulez enregistrer vous-même une route static pour un seul fichier.
sourcedésigne le fichier à servir.pathest la route HTTP à exposer.cacheControlConfigest optionnel.
Avec makeRouteFolder
ts
import { createHub } from "@duplojs/http";
import { SF } from "@duplojs/server-utils";
import { makeRouteFolder } from "@duplojs/http/static";
const docsRoute = makeRouteFolder({
source: SF.createFolderInterface("./public/docs"),
prefix: "/docs",
directoryFallBackFile: "index.html",
cacheControlConfig: {
maxAge: 600,
public: true,
},
});
export const hub = createHub({ environment: "DEV" })
.register(docsRoute);Cette version sert tous les fichiers d'un dossier à partir d'un préfixe commun.
sourcedésigne le dossier racine.prefixest le préfixe d'URL utilisé pour résoudre les fichiers.directoryFallBackFilepermet de servir un fichier par défaut pour un dossier, par exempleindex.html.cacheControlConfigest optionnel.
