Skip to main content
Bun-targeted. Compiles an openturn project (app/game.ts + app/page.tsx + app/openturn.ts) into a ready-to-deploy bundle. Used by openturn build and openturn deploy under the hood. Import directly if you are building custom deployment tooling.

Install

Project discovery

discoverOpenturnProject(projectDir?)

Walks a directory and returns the resolved paths.

OpenturnProjectPaths

validateOpenturnProject(paths)

Verify the expected exports exist (game, match, metadata, a default-exported Page).

resolveOpenturnProject(projectDir?)

Run discoverOpenturnProject and validateOpenturnProject in one call and return the validated OpenturnProjectPaths. buildOpenturnProject uses this internally; call it directly when you need the paths but not the full build artifact.

Metadata

OpenturnDeploymentMetadata

The metadata export from app/openturn.ts.

OpenturnDeploymentRuntime

"local" | "multiplayer".

OpenturnMultiplayerManifest

Re-exported from @openturn/manifest:

Build

buildOpenturnProject(options?)

Produce assets and (for multiplayer) a Worker bundle.

BuildOpenturnProjectOptions

{ outDir?, projectDir?, deploymentID?, projectID? }.

BuildOpenturnProjectResult

OpenturnDeploymentManifest

Re-exported from @openturn/manifest. The authoritative shape is defined there; @openturn/deploy is the build-time writer.

BuildOpenturnProjectServerBundle

OpenturnWorkerScriptMetadata

OpenturnWorkerScriptBinding

Loading a deployment for tests

loadOpenturnProjectDeployment(input?)

Resolve a GameDeployment-shaped record from an in-memory project (without a full build). Used in tests that want the game + match without running Vite.

GeneratedGameDeploymentDescriptor

The descriptor produced by metadata + match resolution.

HTML generation

createDeploymentHTML(manifest)

Produce an index.html that loads the manifest’s entry + styles. Used by the build pipeline; exported for custom hosting.

Errors

OpenturnDeployError

Thrown on discovery, validation, or build failure. Has a code field for programmatic handling.

See also