@psyqueue/plugin-schema-versioning
v0.1.0
Published
> Payload migration and Zod validation for PsyQueue. Evolve job schemas without breaking existing jobs.
Readme
@psyqueue/plugin-schema-versioning
Payload migration and Zod validation for PsyQueue. Evolve job schemas without breaking existing jobs.
Installation
npm install @psyqueue/plugin-schema-versioningUsage
import { schemaVersioning } from '@psyqueue/plugin-schema-versioning'
import { z } from 'zod'
q.use(schemaVersioning())
q.handle('email.send', schemaVersioning.versioned({
current: 2,
versions: {
1: {
schema: z.object({ to: z.string(), body: z.string() }),
process: async (ctx) => { /* handle v1 */ },
migrate: (payload) => ({ ...payload, subject: 'No Subject' }),
},
2: {
schema: z.object({ to: z.string(), subject: z.string(), body: z.string() }),
process: async (ctx) => { /* handle v2 */ },
},
},
}))Configuration
No plugin-level options. Versioning is configured per-handler via schemaVersioning.versioned().
Exports
schemaVersioning()-- Plugin factoryschemaVersioning.versioned(config)-- Create versioned handlervalidatePayload-- Validation utility
Documentation
See Advanced Plugins for detailed usage.
License
MIT
