API Reference
Resource<TResource, TOutput>
Section titled “Resource<TResource, TOutput>”Base class for synchronous Resource serializers.
abstract class Resource<TResource, TOutput extends ResourceObject> { constructor(resource: TResource); abstract toArray(): TOutput; meta(): ResourceMeta | undefined;}Static Methods
Section titled “Static Methods”| API | Description |
|---|---|
make(resource) | Serialize one resource as { data }. |
make(null) | Serialize a null resource as { data: null }. |
collection(resources) | Serialize an array as { data: [...] }. |
paginated(input) | Serialize an array with pagination metadata. |
Instance Helpers
Section titled “Instance Helpers”| API | Description |
|---|---|
when(condition, value) | Include a value when condition is truthy. |
unless(condition, value) | Include a value unless condition is truthy. |
mergeWhen(condition, object) | Conditionally merge an object into output. |
meta() | Add metadata to top-level make() responses. |
InferResource<TClass>
Section titled “InferResource<TClass>”Infers the resolved Resource output type.
- Uses static Zod schema output when
schemaexists. - Otherwise resolves
toArray()output. - Conditional fields become optional.
- Nested Resource envelopes resolve to their inner
data.
type UserResponse = InferResource<typeof UserResource>;generateOpenAPI(ResourceClass)
Section titled “generateOpenAPI(ResourceClass)”Returns an OpenAPI 3.0-compatible inner schema object from the Resource’s static Zod schema.
const schema = generateOpenAPI(UserResource);ResourceValidationError
Section titled “ResourceValidationError”Thrown when a Resource’s static Zod schema rejects serialized output.
class ResourceValidationError extends Error { resourceName: string; itemIndex: number | undefined; cause: z.ZodError;}response.ok(value)
Section titled “response.ok(value)”Wraps a value in { success: true, data }. Branded Resource envelopes are
flattened while preserving top-level metadata.
Exported Types
Section titled “Exported Types”ResourceEnvelopeCollectionEnvelopePaginatedEnvelopePaginationInputPaginationMetaResourceClassResourceInputResourceMetaResourceObjectSerializedResourceEnvelopeSerializedCollectionEnvelopeSerializedPaginatedEnvelopeResolveResourceOutputOkResponseOpenAPISchema