@site-index/vite-runtime
v0.1.5
Published
Vite-backed runtime for executing site-index pipelines.
Maintainers
Readme
@site-index/vite-runtime
Vite-backed runtime for executing site-index pipelines through Vite SSR module loading.
Install
npm install @site-index/vite-runtimeRequirements:
- Node.js
>=22 - peer dependency:
vite ^8.0.10
When to use
Use this package when building adapters or integrations that need direct Vite-backed pipeline execution.
When not to use
- Most users should use
site-indexor@site-index/vite-plugindirectly.
Public exports
export { createRuntimeService } from "./domains/runtime/factory.js";
export { RuntimeServiceBuilder } from "./domains/runtime/builder.js";
export { RuntimeService } from "./domains/runtime/service.js";
export type { Options, RuntimeViteConfig } from "./types.js";Public API
Factory:
createRuntimeService(): RuntimeServiceBuilderBuilder:
class RuntimeServiceBuilder {
withOptions(options: Options): this;
withViteConfig(config: RuntimeViteConfig): this;
withViteServer(server: Vite.ViteDevServer): this;
build(): RuntimeService;
}Runtime service:
class RuntimeService {
buildArtifacts(): Promise<SiteIndex.Result<SiteIndex.Artifact[]>>;
getArtifacts(): readonly SiteIndex.Artifact[];
getWatchedFiles(): ReadonlySet<string>;
close(): Promise<void>;
}Options:
type Options = Pick<SiteIndex.Options, "siteUrl" | "extensions">;Runtime Vite config:
type RuntimeViteConfig = {
root: Vite.ResolvedConfig["root"];
mode: Vite.ResolvedConfig["mode"];
configFile?: Vite.ResolvedConfig["configFile"];
};Behavior
- uses Vite SSR loading for executing discovered site-index modules
- can run with an existing Vite dev server
- can create its own middleware-mode Vite server from config
- tracks watched files through Vite's SSR module graph
- serializes
buildArtifacts()calls through an internal queue - snapshots latest artifacts and watched files
- clears snapshots and closes internally created server resources on
close() - does not close externally provided Vite dev servers
Example
import { createRuntimeService } from "@site-index/vite-runtime";
const runtime = createRuntimeService()
.withOptions({
siteUrl: "https://example.com",
})
.withViteConfig({
root: process.cwd(),
mode: "production",
})
.build();
try {
const result = await runtime.buildArtifacts();
// use result.data and result.warnings
} finally {
await runtime.close();
}