4466ba436b
## Description This PR ensures that the default prettier config is used for examples and templates. This config is compatible with `prettier@3` as well (upgrading prettier is bigger change that can be a future PR). ## Changes - Updated `.prettierrc.json` in root with `"trailingComma": "es5"` (will be needed upgrading to prettier@3) - Added `examples/.prettierrc.json` with default config (this will change every example) - Added `packages/create-next-app/templates/.prettierrc.json` with default config (this will change every template) ## Related - Fixes #54402 - Closes #54409
36 lines
1,002 B
TypeScript
36 lines
1,002 B
TypeScript
import { useState } from "react";
|
|
import styles from "../styles.module.css";
|
|
|
|
export default function Index() {
|
|
const [response, setResponse] = useState<Record<string, unknown> | null>(
|
|
null,
|
|
);
|
|
|
|
const makeRequest = async () => {
|
|
const res = await fetch("/api/user");
|
|
|
|
setResponse({
|
|
status: res.status,
|
|
body: await res.json(),
|
|
limit: res.headers.get("X-RateLimit-Limit"),
|
|
remaining: res.headers.get("X-RateLimit-Remaining"),
|
|
});
|
|
};
|
|
|
|
return (
|
|
<main className={styles.container}>
|
|
<h1>Next.js API Routes Rate Limiting</h1>
|
|
<p>
|
|
This example uses <code className={styles.inlineCode}>lru-cache</code>{" "}
|
|
to implement a simple rate limiter for API routes (Serverless
|
|
Functions).
|
|
</p>
|
|
<button onClick={() => makeRequest()}>Make Request</button>
|
|
{response && (
|
|
<code className={styles.code}>
|
|
<pre>{JSON.stringify(response, null, 2)}</pre>
|
|
</code>
|
|
)}
|
|
</main>
|
|
);
|
|
}
|