assertValidIrForPolicy
Import from @varavel/vdl-plugin-sdk/utils/policy.
function assertValidIrForPolicy(ir): ValidatedPolicy[];
Asserts that policy IR structures follow VPP-3 conventions.
This helper validates @policy types in one fail-fast pass and returns
resolved policies with typed expressions for code generation.
Validation covers annotation shape, policy type shape, expression syntax,
reference existence, comparison compatibility, enum values and optional
access guards. Every violation throws PluginError.
Parameters
| Parameter | Type | Description |
|---|---|---|
ir | IrSchema | Fully resolved VDL IR schema to validate. |
Returns
Validated policies with resolved expressions, sorted by name.
Example
import { definePlugin } from "@varavel/vdl-plugin-sdk";
import { assertValidIrForPolicy } from "@varavel/vdl-plugin-sdk/utils/policy";
export const generate = definePlugin((input) => {
const policies = assertValidIrForPolicy(input.ir);
return {
files: [{ path: "policies.ts", content: `// ${policies.length} policies` }],
};
});