ServerAppOptions
interfaz
Opciones de createServerApp.
import type { ServerAppOptions } from "@meekojs/meeko/server";Source code src/server/runtime/app.ts:178
Declaración #
interface ServerAppOptions<Env = Readonly<Record<string, string | undefined>>> {
readonly manifest: AppManifest
readonly load: AppModuleLoader
readonly runtime?: ServerRuntimeDefinition<Env, any> | undefined
readonly production: boolean
readonly appName?: string | undefined
readonly loadRedis?: (() => Promise<unknown>) | undefined
readonly platform?: ServerPlatform<Env>
readonly assets?: AssetReader
readonly prerender?: PrerenderSource
readonly document?: DocumentOptions
readonly publicOrigin?: string
readonly prerendering?: boolean
readonly root?: string | undefined
readonly defaultSocketPubSub?: SocketPubSub
readonly plugins?: readonly PluginRegistration[]
}Type parameters #
-
Env= Readonly<Record<string, string | undefined>> Tipo de las variables o bindings del entorno.
Example #
import { createServerApp } from "@meekojs/meeko/server";
import type { ServerAppOptions } from "@meekojs/meeko/server";
import { load, manifest, runtime } from "virtual:meeko-server-app";
const options: ServerAppOptions = {
manifest, load, runtime,
production: true,
platform: { name: "node", env: process.env, waitUntil: () => {} },
publicOrigin: "https://example.com",
};
const app = await createServerApp(options);Propiedades #
runtime
#
readonly runtime?: ServerRuntimeDefinition<Env, any> | undefinedExport por defecto de server/runtime.ts. Si falta, o no devuelve sessions, Meeko crea las
sesiones: en memoria en desarrollo y, en producción, en Redis con MEEKO_REDIS_URL.
production
#
readonly production: booleanModo producción: exige un store de sesiones persistente y oculta los detalles de los errores.
appName
#
readonly appName?: string | undefinedNombre de la aplicación (el name de package.json), para el prefijo Redis por defecto de las
sesiones, meeko:<nombre>:prod:. La entrada que genera Meeko lo pasa.
loadRedis
#
readonly loadRedis?: (() => Promise<unknown>) | undefinedImporta el paquete redis del proyecto para las sesiones de producción con MEEKO_REDIS_URL
cuando server/runtime.ts no declara sessions. La entrada que genera Meeko lo pasa en Node,
Bun y Deno si el proyecto instala redis; Workers no lo tiene, porque no abre conexiones TCP.
platform
#
readonly platform?: ServerPlatform<Env>Plataforma que recibe la fábrica del runtime y que se usa cuando fetch no recibe otra.
prerender
#
readonly prerender?: PrerenderSourcePáginas prerenderizadas; sus URL se sirven sin loader ni render.
root
#
readonly root?: string | undefinedRaíz absoluta del proyecto, que recibe la fábrica del runtime como ServerRuntimeContext.root.
Las entradas que genera Meeko la pasan en meeko dev y en las salidas de Node, Bun y Deno.
defaultSocketPubSub
#
readonly defaultSocketPubSub?: SocketPubSubBroker de Socket si el runtime no declara ninguno, como el de Durable Objects en Cloudflare.
plugins
#
readonly plugins?: readonly PluginRegistration[]Plugins de aplicación del servidor (*.server.ts y universales), que se ejecutan una vez por
petición de página antes del render. La entrada que genera Meeko pasa los de app/plugins y
los módulos.