Hapi HTTP server adapter for fdnext.
@itxtech/fdnext-server wraps the fdnext runtime in a Hapi HTTP server. It translates Hapi requests into runtime dispatch calls, providing a production-ready HTTP API for part number decoding, Flash ID inspection, and database search.
The server itself is a thin adapter — all HTTP routing, response contracts, and External Link handling are delegated to @itxtech/fdnext-core.
pnpm add @itxtech/fdnext-serverpnpm install
pnpm server:devWith a custom resource directory:
pnpm -C packages/server dev -- --resources /path/to/resourcespnpm -C packages/server build
pnpm server:startAfter building, the fdnext-server binary is available:
fdnext-server [--host 0.0.0.0] [--port 8080] [--resources /path/to/resources]| Flag | Default | Description |
|---|---|---|
--host |
0.0.0.0 |
Bind address |
--port |
8080 |
Listen port |
--resources |
embedded | External resource directory (overrides built-in resources) |
The monorepo root provides ecosystem.config.cjs:
pm2 start ecosystem.config.cjs
pm2 status
pm2 logs fdnext-serverSee Dockerfile in the repository root for a minimal container image.
import { createHttpServer } from "@itxtech/fdnext-server";
const app = createHttpServer({
host: "0.0.0.0",
port: 8080,
resourceDir: "/path/to/resources" // optional
});
await app.listen();
// Access the engine directly
const result = app.engine.decodePart({ query: "MT29F64G08CBABA", lang: "eng" });The Hapi server defaults to allowing all origins (*), suitable for local development or deployments where CORS is managed by an upstream gateway.
- Integration Guide — Server startup and deployment
- Server API — Full HTTP route table, parameters, and response contracts
AGPL-3.0-or-later — See LICENSE for details.