Hono helpers and middleware for Twilic binary request and response bodies.
pnpm add @twilic/hono hono @twilic/coreimport { Hono } from "hono";
import { twilicParser, twilicResponse } from "@twilic/hono";
const app = new Hono();
app.post("/users", twilicParser(), async (c) => {
const input = c.var.twilicBody;
return twilicResponse(c, { ok: true, received: input });
});TWILIC_CONTENT_TYPEparseTwilic(c, options?)twilicResponse(c, value, init?)twilicParser(options?)createTwilicHono(codec?)
twilicParser() and parseTwilic() limit the body to 1,048,576 bytes (1 MiB) by default. The same options apply to factory-created parser() and parse() helpers. Set limit to a non-negative safe integer in bytes:
twilicParser({ limit: 256 * 1024 });
await parseTwilic(c, { limit: 256 * 1024 });The reader counts received chunks, including requests without Content-Length, and stops before decoding an oversized body. Middleware responds with HTTP 413. A direct parse() call rejects with an error carrying status: 413. limit: 0 permits an empty body only. Previously accepted larger requests now require an explicit higher limit; decoded collection limits still apply separately.
Mount the parser before other middleware consumes the request stream. Also configure request timeouts and authentication for the route.
pnpm example:http-roundtrip:hono # Hono server (in twilic/examples)
pnpm example:http-roundtrip:clientSee http-roundtrip/.
See docs/CHANGELOG.md.
The package ships build artifacts from dist/.
Local dry run:
pnpm build
pnpm packGitHub Actions publish uses npm trusted publishing (OIDC)—no long-lived NPM_TOKEN secret.
One-time setup on npmjs.com: open the package → Settings → Trusted Publisher → GitHub Actions, then set Organization or user twilic, Repository hono, and Workflow filename publish-npm.yml (exact name, including .yml). See also GitHub Actions OIDC.
Release steps:
- Update docs/CHANGELOG.md and bump
versioninpackage.json. - Create and push matching tag
v<version>.
Example:
git tag v0.1.0
git push origin v0.1.0The workflow .github/workflows/publish-npm.yml verifies tag/version match, runs tests, and then runs npm publish (OIDC authentication via id-token: write).
See docs/CONTRIBUTING.md.
This project is licensed under the MIT License - see the LICENSE file for details.