@alien-rpc/service
v0.4.1
Published
Service library for alien-rpc
Readme
@alien-rpc/service
Service-side route definition and request handling runtime for alien-rpc.
Installation
npm install @alien-rpc/service @sinclair/[email protected] alien-middlewareUse TypeBox v0.34.x with the service runtime.
Install alien-ws as well when compiling websocket routes.
Minimal Use
Define routes in source modules:
import { route } from '@alien-rpc/service'
export const hello = route('/hello/:name').get(async name => {
return { message: `Hello, ${name}!` }
})Compile the generated server manifest in your adapter layer:
import { chain } from 'alien-middleware'
import { compileRoutes } from '@alien-rpc/service'
import routes from './server/generated/api.js'
export default chain(
compileRoutes(routes, {
prefix: '/api/',
})
)Documentation
- Concepts and lifecycle: docs/context.md
- Runnable example: examples/route-handler.ts
- Exact public signatures: generated
dist/index.d.ts - Optional entrypoint signatures: generated
dist/typebox.d.tsanddist/formats.d.ts - Source-owned API behavior:
src/route.ts,src/compileRoutes.ts,src/response.ts,src/pagination.ts, andsrc/websocket.ts
Public Entry Points
import { compileRoutes, paginate, route, ws } from '@alien-rpc/service'
import type {
RouteDefinition,
RouteIterator,
RouteResult,
} from '@alien-rpc/service'import { ArrayParam, DateString, NumberParam } from '@alien-rpc/service/typebox'
import { addStringFormat } from '@alien-rpc/service/formats'