Skip to content

Commit

Permalink
docs: update french docs with t3-oss#934
Browse files Browse the repository at this point in the history
  • Loading branch information
joachimjusth committed Jan 5, 2023
1 parent 020209c commit b2cf488
Show file tree
Hide file tree
Showing 6 changed files with 64 additions and 72 deletions.
56 changes: 20 additions & 36 deletions www/src/pages/fr/folder-structure.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ Le fichier `[...nextauth].ts` est la route d'authentification NextAuth.js. Il es
Le fichier `[trpc].ts` est le point d'entrée de l'API tRPC. Il est utilisé pour gérer les requêtes tRPC. Voir [utilisation de tRPC](usage/trpc#-pagesapitrpctrpcts) pour plus d'informations sur ce fichier, et la [documentation Next.js sur les routes dynamiques](https://nextjs.org/docs/routing/dynamic-routes) pour plus d'informations sur les routes fourre-tout / slug.

</div>
<div data-components="trpc prisma">
<div data-components="trpc prisma nextauth">

### `src/server`

Expand All @@ -72,72 +72,56 @@ Le dossier `server` est utilisé pour séparer clairement le code côté serveur
</div>
<div data-components="nextauth+trpc">

### `src/server/common`
### `src/server/auth.ts`

Le dossier "common" contient du code côté serveur couramment réutilisé.

</div>
<div data-components="nextauth+trpc">

#### `src/server/common/get-server-auth-session.ts`

Le fichier `get-server-auth-session.ts` est utilisé pour obtenir la session NextAuth.js côté serveur. Voir [utilisation de NextAuth.js](usage/next-auth#utilisation-avec-trpc) pour plus d'informations.
Contient des utilitaires d'authentification tels que la récupération de la session de l'utilisateur côté serveur. Voir [utilisation de NextAuth.js](usage/next-auth#utilisation-avec-trpc) pour plus d'informations.

</div>
<div data-components="prisma">

#### `src/server/db/client.ts`
#### `src/server/db.ts`

Le fichier `client.ts` est utilisé pour instancier le client Prisma au niveau global. Voir [Utilisation de Prisma](usage/prisma#prisma-client) pour plus d'informations.
Le fichier `db.ts` est utilisé pour instancier le client Prisma au niveau global. Voir [Utilisation de Prisma](usage/prisma#prisma-client) et [meilleures pratiques pour utiliser Prisma avec Next.js](https://www.prisma.io/docs/guides/database/troubleshooting-orm/help-articles/nextjs-prisma-client-dev-practices) pour plus d'informations.

</div>
<div data-components="trpc">

### `src/server/trpc`
### `src/server/api`

Le dossier `trpc` contient le code côté serveur de tRPC.
Le dossier `api` contient le code côté serveur de tRPC.

</div>
<div data-components="trpc">

#### `src/server/trpc/context.ts`
#### `src/server/api/routers`

Le fichier `context.ts` est utilisé pour créer le contexte utilisé dans les requêtes tRPC. Voir [utilisation de tRPC](usage/trpc#-servertrpccontextts) pour plus d'informations.
Le dossier `routers` contient tous vos sous-routeurs tRPC.

</div>
<div data-components="trpc">

#### `src/server/trpc/trpc.ts`
#### `src/server/api/routers/example.ts`

Le fichier `trpc.ts` est utilisé pour exporter les assistants de procédure. Voir [utilisation de tRPC](usage/trpc#-servertrpctrpcts) pour plus d'informations.
Le fichier `example.ts` est un exemple de routeur tRPC utilisant le helper `publicProcedure` pour montrer comment créer une route tRPC publique.

</div>
<div data-components="trpc">

### `src/server/trpc/router`

Le dossier `router` contient les routeurs tRPC.
En fonction des packages choisis, ce routeur contient plus ou moins de routes pour démontrer au mieux l'utilisation à vos besoins.

</div>
<div data-components="trpc">

#### `src/server/trpc/router/_app.ts`

Le fichier `_app.ts` est utilisé pour fusionner les routeurs tRPC et les exporter en tant que routeur unique, ainsi que les définitions de type. Voir [utilisation de tRPC](usage/trpc#-servertrpcrouterts) pour plus d'informations.

</div>
<div data-components="nextauth+trpc">
#### `src/server/api/trpc.ts`

#### `src/server/trpc/router/auth.ts`
Le fichier `trpc.ts` est le fichier de configuration principal de votre back-end tRPC. Ici, vous trouverez:

Le fichier `auth.ts` est un exemple de routeur tRPC utilisant l'assistant `protectedProcedure` pour montrer comment protéger une route tRPC avec NextAuth.js.
1. La définissons du contexte utilisé dans les requêtes tRPC. Voir [utilisation de tRPC](usage/trpc#-servertrpccontextts) pour plus d'informations.
2. Le helper de procédure d'exportation. Voir [utilisation de tRPC](usage/trpc#-servertrpctrpcts) pour plus d'informations.

</div>
<div data-components="trpc">

#### `src/server/trpc/router/example.ts`
#### `src/server/api/root.ts`

Le fichier `example.ts` est un exemple de routeur tRPC utilisant l'assistant `publicProcedure` pour montrer comment créer une route tRPC publique.
Le fichier `root.ts` est utilisé pour fusionner les routeurs tRPC et les exporter en tant que routeur unique, ainsi que la définition du type de routeur. Voir [utilisation du tRPC](usage/trpc#-servertrpcrourts) pour plus d'informations.

</div>
<div>
Expand Down Expand Up @@ -170,9 +154,9 @@ Le dossier `utils` est utilisé pour stocker les fonctions utilitaires courammen
</div>
<div data-components="trpc">

#### `src/utils/trpc.ts`
#### `src/utils/api.ts`

Le fichier `trpc.ts` est le point d'entrée frontal de tRPC. Voir [utilisation de tRPC](usage/trpc#-utilstrpcts) pour plus d'informations.
Le fichier `api.ts` est le point d'entrée frontal de tRPC. Voir [utilisation de tRPC](usage/trpc#-utilstrpcts) pour plus d'informations.

</div>
<div>
Expand Down
3 changes: 3 additions & 0 deletions www/src/pages/fr/t3-collection.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,9 @@ Vous avez réalisé un projet à l'aide de la stack T3 et souhaitez le partager
| The Doom | [moltivie/slug](https://github.com/Moltivie/the-t3-stack) | [the-t3-stack.vercel.app](https://the-t3-stack.vercel.app) |
| Railtrack | [noahflk/railtrack](https://github.com/noahflk/railtrack) | [railtrack.flk.li](https://railtrack.flk.li) |
| Boutique KARA - Site e-commerce | [mehrabmp/kara-shop](https://github.com/mehrabmp/kara-shop) | [karashop.vercel.app](https://karashop.vercel.app/) |
| Tauri T3 App - Application Tauri qui utilise la T3 Stack | [tauri-t3-app](https://github.com/AyanavaKarmakar/tauri-t3-app) | [tauri-t3-app.docs](https://github.com/AyanavaKarmakar/tauri-t3-app#readme) |
| Azon - Site e-commerce | [andrewsolonets/Azon-Shop](https://github.com/andrewsolonets/Azon-Shop) | [azon-shop.vercel.app](https://azon-shop.vercel.app/) |
| Analyzemyrepo.com - Informations utiles pour **tout** GitHub repo | [CrowdDotDev/analyzemyrepo](https://github.com/CrowdDotDev/analyzemyrepo) | [analyzemyrepo.com](https://analyzemyrepo.com) |

## Entreprises utilisant la stack T3

Expand Down
2 changes: 1 addition & 1 deletion www/src/pages/fr/usage/first-steps.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,6 @@ Vous devriez maintenant pouvoir vous connecter.

## Prochaines étapes

- Si votre application inclut tRPC, consultez `src/pages/index.tsx` et `src/server/trpc/router/example.ts` pour voir comment fonctionnent les requêtes tRPC.
- Si votre application inclut tRPC, consultez `src/pages/index.tsx` et `src/server/api/routers/example.ts` pour voir comment fonctionnent les requêtes tRPC.
- Consultez la documentation `create-t3-app`, ainsi que la documentation des packages inclus dans votre application.
- Rejoignez notre [Discord](https://t3.gg/discord) et donnez-nous une étoile sur [GitHub](https://github.com/t3-oss/create-t3-app) ! :)
10 changes: 5 additions & 5 deletions www/src/pages/fr/usage/next-auth.md
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ Cela se fait en deux étapes :

1. Récupérez la session à partir des en-têtes de requête à l'aide de la fonction [`unstable_getServerSession`](https://next-auth.js.org/configuration/nextjs#unstable_getserversession). Ne vous inquiétez pas, cette fonction est sûre à utiliser - le nom inclut "unstable" uniquement parce que l'implémentation de l'API peut changer à l'avenir. L'avantage d'utiliser `unstable_getServerSession` au lieu de `getSession` est qu'il s'agit d'une fonction côté serveur uniquement et qu'elle ne déclenche pas d'appels de récupération inutiles. `create-t3-app` crée une fonction d'assistance qui résume cette API particulière.

```ts:server/common/get-server-auth-session.ts
```ts:server/auth.ts
export const getServerAuthSession = async (ctx: {
req: GetServerSidePropsContext["req"];
res: GetServerSidePropsContext["res"];
Expand All @@ -84,8 +84,8 @@ export const getServerAuthSession = async (ctx: {

En utilisant cette fonction d'assistance, nous pouvons récupérer la session et la transmettre au contexte tRPC :

```ts:server/trpc/context.ts
import { getServerAuthSession } from "../common/get-server-auth-session";
```ts:server/api/trpc.ts
import { getServerAuthSession } from "../auth";

export const createContext = async (opts: CreateNextContextOptions) => {
const { req, res } = opts;
Expand All @@ -98,7 +98,7 @@ export const createContext = async (opts: CreateNextContextOptions) => {

2. Créez un middleware tRPC qui vérifie si l'utilisateur est authentifié. Nous utilisons ensuite le middleware dans une `protectedProcedure`. Tout appelant à ces procédures doit être authentifié, sinon une erreur sera générée qui pourra être gérée de manière appropriée par le client.

```ts:server/trpc/trpc.ts
```ts:server/api/trpc.ts
const isAuthed = t.middleware(({ ctx, next }) => {
if (!ctx.session || !ctx.session.user) {
throw new TRPCError({ code: "UNAUTHORIZED" });
Expand All @@ -116,7 +116,7 @@ export const protectedProcedure = t.procedure.use(isAuthed);

L'objet de session est une représentation légère et minimale de l'utilisateur et ne contient que quelques champs. Lorsque vous utilisez les `protectedProcedures`, vous avez accès à l'identifiant de l'utilisateur qui peut être utilisé pour extraire plus de données de la base de données.

```ts:server/trpc/router/user.ts
```ts:server/api/routers/user.ts
const userRouter = router({
me: protectedProcedure.query(async ({ ctx }) => {
const user = await prisma.user.findUnique({
Expand Down
4 changes: 2 additions & 2 deletions www/src/pages/fr/usage/prisma.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ Prisma est un ORM pour TypeScript, qui vous permet de définir votre schéma et

## Prisma Client

Situé dans `/server/db/client.ts`, le client Prisma est instancié en tant que variable globale (cette façon est recommandé comme [meilleure pratique](https://www.prisma.io/docs/guides/database/troubleshooting-orm/help-articles/nextjs-prisma-client-dev-practices#problem) par l'équipe de Prisma) et exporté pour être utilisé dans vos routes API. Nous incluons le client Prisma dans [Context](/fr/usage/trpc#-servertrpccontextts) par défaut et recommandons de l'utiliser au lieu de l'importer séparément dans chaque fichier.
Situé dans `/server/db.ts`, le client Prisma est instancié en tant que variable globale (cette façon est recommandé comme [meilleure pratique](https://www.prisma.io/docs/guides/database/troubleshooting-orm/help-articles/nextjs-prisma-client-dev-practices#problem) par l'équipe de Prisma) et exporté pour être utilisé dans vos routes API. Nous incluons le client Prisma dans le [Context](/fr/usage/trpc#-servertrpccontextts) par défaut et recommandons de l'utiliser au lieu de l'importer séparément dans chaque fichier.

## Schéma

Expand Down Expand Up @@ -39,7 +39,7 @@ La base de données par défaut est une base de données SQLite, idéale pour le
```

```ts:prisma/seed.ts
import { prisma } from "../src/server/db/client";
import { prisma } from "../src/server/db";

async function main() {
const id = "cl9ebqhxk00003b600tymydho";
Expand Down
Loading

0 comments on commit b2cf488

Please sign in to comment.