Jump to content

Estrutura de Pastas

Por favor, selecione seus pacotes para ver a estrutura de pastas de um aplicativo recém-estruturado com essas seleções. Mais abaixo, você encontrará uma descrição de cada pacote.

  

prisma

A pasta prisma contém o arquivo schema.prisma que é usado para configurar a conexão com o banco de dados e o schema do banco de dados. Ela também é onde são salvos os arquivos de migração e/ou scripts de seed, se usados. Veja Uso do Prisma para mais informações.

public

A pasta public contém recursos estáticos que são servidos pelo servidor web. O favicon.ico é um exemplo de um recurso estático.

src/env

Usado para a validação de variáveis ambiente e definição de tipos - veja Variáveis de Ambiente.

src/pages

A pasta pages contém todas as páginas da aplicação Next.js. O arquivo index.tsx na raiz da pasta /pages é a página inicial da aplicação. O arquivo _app.tsx é usado para envolver a aplicação com providers. Veja a Documentação do Next.js para mais informações.

src/pages/api

A pasta api contém todas as rotas API da aplicação Next.js. O arquivo examples.ts contém um exemplo de rota que usa o recurso de Rotas API do Next.js junto com o prisma. O arquivo restricted.ts contém um exemplo de rota que usa o recurso de Rotas API do Next.js e é protegido pelo NextAuth.js.

src/pages/api/auth/[...nextauth].ts

O arquivo [...nextauth].ts é a rota de autenticação com slug do NextAuth.js. Ele é usado para lidar com as requisições de autenticação. Veja Uso do NextAuth.js para mais informações sobre o NextAuth.js, e a Documentação de Rotas Dinâmicas do Next.js para informações sobre rotas com parâmetros/slugs.

src/pages/api/trpc/[trpc].ts

O arquivo [trpc].ts é o ponto de entrada do tRPC. Ele é usado para lidar com as requisições do tRPC. Veja Uso do tRPC para mais informações sobre esse arquivo, e Documentação de Rotas Dinâmicas do Next.js para informações sobre rotas com parâmetros/slugs.

src/server

A pasta server é usada para de maneira clara separar código do servidor e código do cliente.

src/server/auth.ts

Contém utilitários para autenticação, como recuperar a sessão do usuário no lado do servidor. Veja uso do NextAuth.js para mais informações.

src/server/db.ts

O arquivo db.ts é usado para instanciar o cliente Prisma no escopo global. Veja uso do Prisma e melhores práticas para usar o Prisma com o Next.js para mais informações.

src/server/api

A pasta api contém o código do lado do servidor do tRPC.

src/server/api/routers

A pasta routers contém todos as sub-rotas do tRPC.

src/server/api/routers/example.ts

O arquivo example.ts é um exemplo de roteador tRPC que utiliza o utilitário publicProcedure para demonstrar como criar uma rota tRPC pública.

Dependendo dos pacotes escolhidos, este roteador contém mais ou menos rotas para melhor demonstrar o uso de acordo com suas necessidades.

src/server/trpc/trpc.ts

O arquivo trpc.ts é o arquivo de configuração principal para seu back-end tRPC. Aqui nós:

  1. Definimos o contexto usado nas requests tRPC. Veja uso do tRPC para mais informações.
  2. Exportamos os auxiliares de procedures. Veja uso do tRPC para mais informações.

src/server/api/root.ts

O arquivo root.ts é usado para mesclar as rotas tRPC e exportá-las como um único roteador, bem como a definição de tipo da rota. Veja uso do tRPC para mais informações.

src/styles

A pasta styles contém os estilos globais da aplicação.

src/types

A pasta types é usada para guardar tipos ou definições de tipos reutilizáveis.

src/types/next-auth.d.ts

O arquivo next-auth.d.ts é usado para estender o tipo padrão de sessão do NextAuth para incluir o ID de usuário. Veja Uso do NextAuth.js para mais informações.

src/utils

A pasta utils é usada para guardar funções utilitárias comuns reutilizáveis.

src/utils/api.ts

O arquivo api.ts é o ponto de entrada front-end para o tRPC. Veja uso do tRPC para mais informações.

.env

O arquivo .env é usado para armazenas as variáveis ambiente. Veja Variáveis de Ambiente para mais informações. Esse arquivo não deve ser commitado para o histórico do git.

.env.example

O arquivo .env.example mostra um exemplo de de variáveis ambiente baseado nas bibliotecas escolhidas. Esse arquivo deve ser commitado para o histórico do git.

.eslintrc.cjs

O arquivo .eslintrc.cjs é usado para configurar o ESLint. Veja Documentação do ESLint para mais informações.

next-env.d.ts

O arquivo next-env.d.ts garante que os tipos do Next.js sejam lidos pelo compilador do TypeScript. Você não deve remover ou editar, uma vez que pode mudar a qualquer momento. Veja Documentação do Next.js para mais informações.

next.config.mjs

O arquivo next.config.mjs é usado para configura o Next.js. Veja Documentação do Next.js para mais informações. Nota: a extensão .mjs é usada para permitir importações de módulos ESM.

postcss.config.cjs

O arquivo postcss.config.cjs é usado para o uso do Tailwind PostCSS. Veja Documentação do Tailwind PostCSS para mais informações.

prettier.config.mjs

O arquivo prettier.config.mjs é usado para configura o Prettier e incluir o prettier-plugin-tailwindcss para a formatação das classes CSS. Veja o post no Blog do Tailwind CSS para mais informações.

tsconfig.json

O arquivo tsconfig.json é usado para configurar o TypeScript. Algumas configurações diferentes do padrão, como strict mode, foram habilitadas para garantir o melhor uso do TypeScript no create-t3-app e suas bibliotecas. Veja Documentação do Typescript ou Uso do TypeScript para mais informações.