Documentation

Configuration Types

TypeScript type reference for Frame-Master configuration.

FrameMasterConfig

Main configuration type for Frame-Master.

types
type FrameMasterConfig = {
/**
* HTTP server config - Bun.Serve options
*/
HTTPServer: Omit<
Bun.Serve.Options<undefined, string> & {
static?: {} | undefined;
},
"fetch"
>;
/**
* Frame-Master Plugins to load
*/
plugins: FrameMasterPlugin<any>[];
/**
* Plugin options
*/
pluginsOptions?: Partial<{
disableHttpServerOptionsConflictWarning?: boolean;
}>;
};

HTTPServer

Bun server configuration options.

All Bun.Serve options except fetch (handled by Frame-Master).

frame-master.config.ts
import type { FrameMasterConfig } from "frame-master";
export default {
HTTPServer: {
port: 3000,
hostname: "0.0.0.0",
development: process.env.NODE_ENV !== "production",
maxRequestBodySize: 1024 * 1024 * 10, // 10MB
},
plugins: [],
} satisfies FrameMasterConfig;

plugins

Array of plugins to load.

frame-master.config.ts
import type { FrameMasterConfig } from "frame-master";
import myPlugin from "./plugins/my-plugin";
export default {
plugins: [
myPlugin(),
{
name: "inline-plugin",
version: "1.0.0",
serverStart: {
main: () => console.log("Server started!"),
},
},
],
} satisfies FrameMasterConfig;

Type-safe Configuration

Using TypeScript for configuration validation.

frame-master.config.ts
import type { FrameMasterConfig } from "frame-master";
// Use 'satisfies' for full TypeScript autocomplete and validation
export default {
HTTPServer: {
port: 3000,
},
plugins: [],
} satisfies FrameMasterConfig;
💡
Use satisfies FrameMasterConfig for full IDE support and type checking.

Global Types

Global type declarations.

globals
declare global {
var __PROCESS_ENV__: Record<string, string>;
}

__PROCESS_ENV__ is injected client-side containing NODE_ENV and all environment variables prefixed with PUBLIC_.

🎯Next Steps