Skip to content

UnixBuilder

Defined in: packages/core/src/kernel/types.ts:1969

Immutable builder for composing a fishbowl system. Each method returns a new builder.

Consumed — obtain one from Unix() (no args) and chain .use() / sugar methods, then .build() to produce a frozen image.

Accumulates Extensions and produces a frozen UnixImage via .build(). Immutability makes forking safe. Sugar methods (.mount(), .bin(), .env(), .file(), .service()) delegate to .use().

Conflicts between merged extensions surface as console.warn at .build() time, not as exceptions. For silent merging, use mergeExtensions({ silent: true }, ...) directly.

import { Unix, stdSystem } from '@fishnet/core'
const base = Unix().use(stdSystem())
const image = await base.file('/etc/motd', 'hi').build()

bin(name, fn): UnixBuilder

Defined in: packages/core/src/kernel/types.ts:1975

Sugar for .use({ bins: { [name]: fn } }).

string

BinFunction

UnixBuilder


boot(runtime, opts?): Promise<UnixInstance>

Defined in: packages/core/src/kernel/types.ts:1992

Boot an instance from the built image. Requires a runtime (e.g. testRuntime(), nodeRuntime()).

BootRuntime

BootOpts

Promise<UnixInstance>


build(): Promise<UnixImage>

Defined in: packages/core/src/kernel/types.ts:1990

Promise<UnixImage>


catalog(name, factory): UnixBuilder

Defined in: packages/core/src/kernel/types.ts:1989

string

() => Extension

UnixBuilder


env(key, value): UnixBuilder

Defined in: packages/core/src/kernel/types.ts:1977

Sugar for .use({ env: { [key]: value } }).

string

string

UnixBuilder


file(path, content): UnixBuilder

Defined in: packages/core/src/kernel/types.ts:1979

Sugar for .use({ files: { [path]: content } }).

string

string

UnixBuilder


mount(path, server): UnixBuilder

Defined in: packages/core/src/kernel/types.ts:1973

Sugar for .use({ mounts: { [path]: server } }).

string

Fileserver

UnixBuilder


run(command): UnixBuilder

Defined in: packages/core/src/kernel/types.ts:1983

Record a shell command to execute at build time. Executed sequentially by .build().

string

UnixBuilder


service(def): UnixBuilder

Defined in: packages/core/src/kernel/types.ts:1981

Sugar for .use({ services: [def] }).

ServiceDef

UnixBuilder


use(ext): UnixBuilder

Defined in: packages/core/src/kernel/types.ts:1971

Compose an Extension into the builder. Returns a new builder.

Extension

UnixBuilder