-
Notifications
You must be signed in to change notification settings - Fork 0
class metadata
awekrx edited this page May 29, 2026
·
1 revision
import { classMetadata } from '@dev-suite/decorators/class-metadata'
class
Attach static metadata to classes for discovery, routing, or registration.
- Manual static metadata fields spread across classes
- Separate registries that duplicate class-to-metadata mapping
class InvoiceJob {
static metadata = {
queue: 'billing',
retryPolicy: 'exponential',
priority: 'high',
};
}
class ReceiptJob {
static metadata = {
queue: 'billing',
retryPolicy: 'linear',
priority: 'normal',
};
}import { classMetadata } from '@dev-suite/decorators/class-metadata';
@classMetadata({
metadata: {
queue: 'billing',
retryPolicy: 'exponential',
priority: 'high',
},
})
class InvoiceJob {}
@classMetadata({
metadata: {
queue: 'billing',
retryPolicy: 'linear',
priority: 'normal',
},
})
class ReceiptJob {}- Metadata is declared consistently at class boundary
- Easier to scan and auto-discover by reflection tooling
const handlers: Array<{ type: string; ctor: new () => unknown }> = [];
class UserCreatedHandler {}
handlers.push({ type: 'user.created', ctor: UserCreatedHandler });
class PaymentFailedHandler {}
handlers.push({ type: 'payment.failed', ctor: PaymentFailedHandler });import { classMetadata } from '@dev-suite/decorators/class-metadata';
@classMetadata({ metadata: { eventType: 'user.created' } })
class UserCreatedHandler {}
@classMetadata({ metadata: { eventType: 'payment.failed' } })
class PaymentFailedHandler {}- Removes out-of-band registration duplication
- Keeps event metadata colocated with handler implementation