StackPanel
Internal DocsModulesBun

bun-app.proto.nix

Unified field definitions for Bun app configuration.

Unified field definitions for Bun app configuration.

This is the SINGLE SOURCE OF TRUTH for Bun module per-app options. It defines SpFields that simultaneously serve as:

1. Proto fields BunAppConfig message (for Go/TS codegen)
2. Nix option source bun/module.nix uses asOption to create lib.mkOption
3. UI panel source bun/ui.nix uses fields for auto-generated panels

NOTE: Some Bun options (runtimeInputs) are Nix-only and cannot be represented as SpFields. These remain as manual lib.mkOption definitions in module.nix alongside the auto-generated ones.

Usage from module.nix:

let bunSchema = import ./schema.nix { inherit lib; };
in { options = lib.mapAttrs (_: sp.asOption) bunSchema.fields; }

Usage from ui.nix:

let bunSchema = import ./schema.nix { inherit lib; };
in panelsLib.mkPanelFromSpFields { fields = bunSchema.fields; ... }

Proto generation:

bunSchema.protoFile rendered .proto file with BunAppConfig message