Files
at-mintel/packages/next-utils/README.md
Marc Mintel c0a739867f
Some checks failed
Code Quality / lint-and-build (push) Failing after 25s
Release Packages / release (push) Failing after 40s
chore: prepare first release 1.0.1
2026-02-01 01:01:16 +01:00

48 lines
1.3 KiB
Markdown

# @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`)
```typescript
import { createMintelMiddleware } from "@mintel/next-utils";
export default createMintelMiddleware({
locales: ["en", "de"],
defaultLocale: "en",
logRequests: true,
});
```
### Env Validation (`scripts/validate-env.ts`)
```typescript
import { validateMintelEnv } from "@mintel/next-utils";
validateMintelEnv();
```
### Rate Limiting
```typescript
import { rateLimit } from "@mintel/next-utils";
export async function myAction(data: any) {
await rateLimit(data.email);
// ... logic
}
```