Fastify plugin and helpers for Twilic binary request and response bodies.
pnpm add @twilic/fastify fastify @twilic/coreimport Fastify from "fastify";
import { twilicParser, twilicPlugin, twilicReply } from "@twilic/fastify";
const app = Fastify();
await app.register(twilicPlugin);
app.post("/users", { preHandler: twilicParser() }, (request, reply) => {
return twilicReply(reply, { ok: true, received: request.twilicBody });
});
// or use the reply decorator:
app.get("/ping", (_request, reply) => reply.twilic({ pong: true }));TWILIC_CONTENT_TYPEparseTwilic(request)twilicReply(reply, value, init?)twilicParser(options?)twilicPlugincreateTwilicFastify(codec?)
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 fastify, 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.1
git push origin v0.1.1The 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.