All checks were successful
Monorepo Pipeline / ⚡ Prioritize Release (push) Successful in 2s
Monorepo Pipeline / 🧹 Lint (push) Successful in 46s
Monorepo Pipeline / 🧪 Test (push) Successful in 55s
Monorepo Pipeline / 🏗️ Build (push) Successful in 1m48s
Monorepo Pipeline / 🚀 Release (push) Has been skipped
Monorepo Pipeline / 🐳 Build Directus (Base) (push) Has been skipped
Monorepo Pipeline / 🐳 Build Gatekeeper (Product) (push) Has been skipped
Monorepo Pipeline / 🐳 Build Build-Base (push) Has been skipped
Monorepo Pipeline / 🐳 Build Production Runtime (push) Has been skipped
@mintel/next-utils
A collection of reusable utilities and helpers for Mintel Next.js projects, focusing on internationalization, environment safety, and security.
✨ Features
🌍 Internationalization (i18n)
Standardized helpers for next-intl:
createMintelMiddleware: A logging-enabled middleware wrapper.createMintelI18nRequestConfig: Centralized request configuration for server-side translations.
🔐 Environment Validation
Zod-based validation to ensure your app never boots with missing secrets:
validateMintelEnv: Validates standard Mintel variables (Mail, Sentry, Umami).
🛡 Rate Limiting
rateLimit: A simple in-memory rate limiter for protecting server actions and form submissions.
🚀 Usage
i18n Middleware (src/middleware.ts)
import { createMintelMiddleware } from "@mintel/next-utils";
export default createMintelMiddleware({
locales: ["en", "de"],
defaultLocale: "en",
logRequests: true,
});
Env Validation (scripts/validate-env.ts)
import { validateMintelEnv } from "@mintel/next-utils";
validateMintelEnv();
Rate Limiting
import { rateLimit } from "@mintel/next-utils";
export async function myAction(data: any) {
await rateLimit(data.email);
// ... logic
}