Files
moreminimore-redesign/packages/x402/src/middleware.ts
2026-04-01 10:44:22 +01:00

25 lines
753 B
TypeScript

/**
* x402 Astro Middleware
*
* Injected by the x402 integration. Creates the enforcer and
* places it on Astro.locals.x402 for use in page frontmatter.
*
* The config is passed via the virtual module resolved by the integration.
*/
import { defineMiddleware } from "astro:middleware";
// The integration injects config via a virtual module.
// @ts-ignore -- virtual module, resolved at build time
import x402Config from "virtual:x402/config";
import { createEnforcer } from "./enforcer.js";
import type { X402Config } from "./types.js";
const config = x402Config as X402Config;
const enforcer = createEnforcer(config);
export const onRequest = defineMiddleware(async (context, next) => {
context.locals.x402 = enforcer;
return next();
});