@degenerate/endpoints
v0.7.1
Published
This contains the ShareData Adaptive Framework Ecosystem (SAFE) network endpoint code
Readme
Back to @degenerate documentation Back to @degenerate packages documentation
@degenerate/endpoints Package
The @degenerate/endpoints package is a core component of the SAFE system, responsible for handling various API endpoints within the system. This package provides a set of routes and middleware to manage and process incoming requests, ensuring that the system operates within the defined constraints and policies.
Features
Route Management: Provides a structured way to define and manage API routes.
Middleware Integration: Supports the integration of various middleware for request processing, validation, and error handling.
Error Handling: Includes built-in error handlers to manage unauthorized access, bad requests, and other errors.
Extensibility: Allows the addition of custom routes and middleware to cater to specific requirements.
Installation
To install the @degenerate/endpoints package, use the following command:
npm install @degenerate/endpointsExample Server
ts-node ./packages/endpoints/src/examples/express-server/server.tsOpenAPI
The example server exposes a machine-readable description of its HTTP surface at:
GET /openapi.jsonThis route is public (no JWT) so codegen, Swagger UI, and contract-testing tools can fetch it freely. The document is an OpenAPI 3.0 spec generated by buildOpenApiDocument() from the same Zod schemas the routes validate against — request and response shapes never drift from what the handlers actually accept. To build the document outside the server (e.g. to write it to a file):
import { buildOpenApiDocument } from '@degenerate/endpoints';
const spec = buildOpenApiDocument();The operation surface is described by the OperationDescriptor arrays under src/routes/**/**.openapi.ts; a coverage test asserts the descriptors and the mounted Express routes stay in lockstep.
