@velocms/plugin-types
v1.0.0-alpha.1
Published
TypeScript types for VeloCMS plugin development — re-exported from internal Zod schemas
Readme
@velocms/plugin-types
TypeScript types for VeloCMS plugin development, derived from the internal Zod schemas.
Provides: PluginManifest, HookName, HookPayloadMap, PluginCapability, CapabilityDeclaration, PluginContext.
Install
npm install @velocms/plugin-typesUsage
import type {
PluginManifest,
HookName,
PostHookPayload,
PluginContext,
} from "@velocms/plugin-types";
export const manifest: PluginManifest = {
id: "com.example.my-plugin",
name: "My Plugin",
version: "1.0.0",
description: "Does something useful",
capabilities: ["content:read"],
hooks: ["afterPostPublish"],
builtin: false,
enabled: true,
};
export async function afterPostPublish(
payload: PostHookPayload,
ctx: PluginContext
): Promise<PostHookPayload> {
ctx.log("Post published", { slug: payload.post.slug });
return payload;
}Types reference
| Export | Description |
|---|---|
| PluginManifest | The manifest object every plugin must export |
| HookName | Union of all hook names ("afterPostCreate" | ...) |
| PluginCapability | Union of all capability strings |
| HookPayloadMap | Maps each HookName to its payload type |
| PostHookPayload | Payload for post lifecycle hooks |
| BeforePostPublishPayload | Payload for beforePostPublish (writable) |
| MemberHookPayload | Payload for member lifecycle hooks |
| PageHookPayload | Payload for page lifecycle hooks |
| OrderHookPayload | Payload for commerce order hooks |
| PluginContext | Context passed to every handler |
| CapabilityDeclaration | Human-readable capability description |
| describeCapabilities() | Helper to build consent UIs |
Docs
License
MIT
