@p0u4a/elysia-beta-headers
v0.0.2
Published
Elysia plugin that makes it easy to use Request header values to feature gate beta functionality. Inspired by how OpenAI and Anthropic use beta headers for their experimental endpoints.
Readme
elysia-beta-headers
Elysia plugin that makes it easy to use Request header values to feature gate beta functionality. Inspired by how OpenAI and Anthropic use beta headers for their experimental endpoints.
Installation
bun add @p0u4a/elysia-beta-headersQuickstart
import Elysia from "elysia";
import { betaHeaders } from "../src/index.ts";
// Define your beta features
const BETA_FEATURES = ["newDashboard", "darkMode", "experimentalApi"] as const;
const app = new Elysia()
.use(
betaHeaders({
headerName: "X-MyApp-Beta", // The header that your API consumer will set to request beta features
features: BETA_FEATURES,
})
)
// Now beta feature flags are available in the route context with full type safety
.get("/dashboard", ({ newDashboard }) => {
if (newDashboard) {
return { version: "v2", message: "Welcome to the new dashboard!" };
}
return { version: "v1", message: "Classic dashboard" };
})
.listen(3000);
console.log(`Server running at http://localhost:${app.server?.port}`);
// Example request
// curl -H "X-Beta-Features: newDashboard" http://localhost:3000/Configuration
headerName
The name of the HTTP header to read beta features from.
Example: "X-MyApp-Beta"
features
Array of valid bet header values.
Example: ["featureA", "featureB", "featureC"]
separator (optional)
Separator used to split multiple features in the header value.
Default: ,
Contributing
Contributions welcome.
