@xemahq/xema-decorators
v0.2.3
Published
Xema platform xema-decorators SDK. NestJS decorators (`@XemaResource`, `@XemaRoute`, `@XemaPublicRoute`, `@XemaInternalRoute`, `@XemaIgnoreRoute`, `@XemaCapability`, `@XemaCapabilities`), convention-inference engine, and `XemaRuntimeModule` — the declarat
Downloads
17,207
Readme
@xemahq/xema-decorators
Declarative NestJS decorators for routes and capabilities.
Overview
The annotation layer that lets a service declare its routes, resources, and
capabilities directly on its controllers. Decorators like @XemaResource,
@XemaRoute, @XemaPublicRoute, and @XemaCapability mark intent; a
convention-inference engine derives actions, permissions, operation ids, and
the resolved space from naming conventions. At boot, XemaRuntimeModule scans
the application and emits the route, capability, and service manifests — so
those manifests are generated from the code rather than hand-maintained.
When to use it
- Use it to declare a NestJS service's route and capability surface as annotations instead of separate hand-written manifests.
- Reach for the inference engine standalone in tests or codemods that need to derive actions or permissions from route metadata.
Installation
pnpm add @xemahq/xema-decoratorsUsage
import { XemaResource, XemaRoute, XemaPublicRoute } from '@xemahq/xema-decorators';
@XemaResource('invoice')
@Controller('invoices')
export class InvoiceController {
@XemaPublicRoute()
@Get()
list() { /* ... */ }
@XemaRoute()
@Post()
create() { /* ... */ }
}Peer requirements
@nestjs/common,@nestjs/core— host framework.reflect-metadata— decorator metadata runtime.
License
Apache-2.0 © Xema — xema.dev
