Unverified Commit 6c45a03f authored by Hong Minhee's avatar Hong Minhee
Browse files

Fastify integration documentation

- Add Fastify section to integration manual
- Update package README with badges and consistent formatting
- Add Fastify to VitePress references menu
- Add Fastify dependencies to docs package
parent 0729daea
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -91,6 +91,7 @@ const REFERENCES = {
    { text: "@fedify/cfworkers", link: "https://jsr.io/@fedify/cfworkers/doc" },
    { text: "@fedify/denokv", link: "https://jsr.io/@fedify/denokv/doc" },
    { text: "@fedify/express", link: "https://jsr.io/@fedify/express/doc" },
    { text: "@fedify/fastify", link: "https://jsr.io/@fedify/fastify/doc" },
    { text: "@fedify/h3", link: "https://jsr.io/@fedify/h3/doc" },
    { text: "@fedify/hono", link: "https://jsr.io/@fedify/hono/doc" },
    { text: "@fedify/koa", link: "https://jsr.io/@fedify/koa/doc" },
+53 −0
Original line number Diff line number Diff line
@@ -121,6 +121,59 @@ app.use(integrateFederation(federation, (req) => "context data goes here")); //
[Express]: https://expressjs.com/


Fastify
-------

*This API is available since Fedify 1.9.0.*

[Fastify] is a fast and low overhead web framework for Node.js, with
a powerful plugin architecture and sensible defaults.  The *@fedify/fastify*
package provides a plugin to integrate Fedify with Fastify:

::: code-group

~~~~ sh [npm]
npm add @fedify/fastify
~~~~

~~~~ sh [pnpm]
pnpm add @fedify/fastify
~~~~

~~~~ sh [Yarn]
yarn add @fedify/fastify
~~~~

~~~~ sh [Bun]
bun add @fedify/fastify
~~~~

:::

~~~~ typescript twoslash
// @noErrors: 2345
import Fastify from "fastify";
import { fedifyPlugin } from "@fedify/fastify";
import { createFederation } from "@fedify/fedify";

export const federation = createFederation<void>({
  // Omitted for brevity; see the related section for details.
});

const fastify = Fastify({ logger: true });

// Register the Fedify plugin:
await fastify.register(fedifyPlugin, {  // [!code highlight]
  federation,  // [!code highlight]
  contextDataFactory: () => undefined,  // [!code highlight]
});  // [!code highlight]

fastify.listen({ port: 3000 });
~~~~

[Fastify]: https://fastify.dev/


Koa
---

+2 −0
Original line number Diff line number Diff line
@@ -6,6 +6,7 @@
    "@fedify/amqp": "workspace:",
    "@fedify/cfworkers": "workspace:",
    "@fedify/express": "workspace:",
    "@fedify/fastify": "workspace:",
    "@fedify/fedify": "workspace:",
    "@fedify/h3": "workspace:",
    "@fedify/hono": "workspace:",
@@ -37,6 +38,7 @@
    "dayjs": "^1.11.13",
    "debug": "^4.4.1",
    "express": "catalog:",
    "fastify": "catalog:",
    "h3": "catalog:",
    "hono": "^4.6.14",
    "ioredis": "catalog:",
+2 −1
Original line number Diff line number Diff line
Fastify integration example
===========================

This is a simple example application that demonstrates of integration Fedify with Fastify.
This is a simple example application that demonstrates of integration Fedify
with Fastify.
+27 −8
Original line number Diff line number Diff line
<!-- deno-fmt-ignore-file -->

@fedify/fastify: Integrate Fedify with Fastify
==============================================

This package provides a simple way to integrate Fedify with Fastify.
[![npm][npm badge]][npm]
[![Matrix][Matrix badge]][Matrix]
[![Follow @fedify@hollo.social][@fedify@hollo.social badge]][@fedify@hollo.social]

~~~ typescript
import { fedifyPlugin } from "@fedify/fastify";
import { federation } from "./federation"; // Your `Federation` instance
This package provides a simple way to integrate [Fedify] with [Fastify].

The integration code looks like this:

~~~~ typescript
import Fastify from "fastify";
import { fedifyPlugin } from "@fedify/fastify";
import { federation } from "./federation.ts";  // Your `Federation` instance

const fastify = Fastify({ logger: true });

// Register the fedify plugin.
await fastify.register(fedifyPlugin, { federation });
await fastify.register(fedifyPlugin, {
  federation,
  contextDataFactory: () => undefined,
});

fastify.listen({ port: 3000 });
~~~~

// Your Fastify codes
~~~
[npm]: https://www.npmjs.com/package/@fedify/fastify
[npm badge]: https://img.shields.io/npm/v/@fedify/fastify?logo=npm
[Matrix]: https://matrix.to/#/#fedify:matrix.org
[Matrix badge]: https://img.shields.io/matrix/fedify%3Amatrix.org
[@fedify@hollo.social badge]: https://fedi-badge.deno.dev/@fedify@hollo.social/followers.svg
[@fedify@hollo.social]: https://hollo.social/@fedify
[Fedify]: https://fedify.dev/
[Fastify]: https://fastify.dev/
Loading