definePolicy
definePolicy<
TConfig>(definition): (config?) =>Policy
Defined in: src/policies/sdk/define-policy.ts:92
Create a policy factory from a declarative definition.
The returned factory function accepts optional user config, merges it with defaults, wires up skip logic, and injects a debug logger at request time.
Type Parameters
Section titled “Type Parameters”TConfig
Section titled “TConfig”TConfig extends PolicyConfig = PolicyConfig
Parameters
Section titled “Parameters”definition
Section titled “definition”PolicyDefinition<TConfig>
Policy name, priority, defaults, and handler.
Returns
Section titled “Returns”A factory function: (config?) => Policy.
(
config?):Policy
Parameters
Section titled “Parameters”config?
Section titled “config?”TConfig
Returns
Section titled “Returns”Example
Section titled “Example”import { definePolicy, Priority } from "@homegrower-club/stoma";
const myPolicy = definePolicy<MyConfig>({ name: "my-policy", priority: Priority.AUTH, defaults: { headerName: "x-custom" }, handler: async (c, next, { config, debug }) => { debug("checking header"); const value = c.req.header(config.headerName!); if (!value) throw new GatewayError(401, "unauthorized", "Missing header"); await next(); },});
// Usage: myPolicy({ headerName: "x-api-key" })