@arapucajs/tsconfig
v1.0.0
Published
Base TypeScript configuration files for ArapucaJS applications and packages
Readme
@arapucajs/tsconfig
Instalação
Instale o pacote via npm (ou bun):
npm i -D @arapucajs/tsconfig
# Ou, se preferir Bun:
bun add -d @arapucajs/tsconfigRecomendamos utilizar o Bun na versão 1.2 ou superior.
Dependências sugeridas:
npm i -D typescript ts-node @swc/core # ou bun add -d typescript ts-node @swc/core
Uso
Após instalar, use um dos arquivos de configuração base.
Para desenvolvimento de pacotes:
// tsconfig.json
{
"extends": "@arapucajs/tsconfig/tsconfig.package.json",
"compilerOptions": {
"rootDir": "./",
"outDir": "./build"
}
}Para aplicações ArapucaJS:
// tsconfig.json
{
"extends": "@arapucajs/tsconfig/tsconfig.app.json",
"compilerOptions": {
"rootDir": "./",
"outDir": "./build"
}
}Para código client-side (exemplo para projetos SSR ou SPA):
// resources/tsconfig.json
{
"extends": "@arapucajs/tsconfig/tsconfig.client.json"
}Para testes:
// tsconfig.json
{
"extends": "@arapucajs/tsconfig/tsconfig.test.json"
}Rodando os testes com Bun
bun test
---
### 2. **tsconfig.app.json**
```json
{
"extends": "./tsconfig.base.json",
"compilerOptions": {
"target": "ES2022",
"module": "ESNext",
"moduleResolution": "NodeNext",
"rootDir": "./",
"outDir": "./build",
"types": ["bun-types", "node"],
"esModuleInterop": true,
"skipLibCheck": true,
"forceConsistentCasingInFileNames": true
},
"include": ["./"],
"exclude": ["node_modules", "build", "dist"]
}3. tsconfig.package.json
{
"extends": "./tsconfig.base.json",
"compilerOptions": {
"target": "ES2022",
"module": "ESNext",
"moduleResolution": "NodeNext",
"declaration": true,
"declarationMap": true,
"outDir": "./build",
"rootDir": "./",
"types": ["bun-types", "node"],
"esModuleInterop": true,
"skipLibCheck": true,
"forceConsistentCasingInFileNames": true
},
"include": ["src"],
"exclude": ["node_modules", "build", "dist", "test", "tests"]
}4. tsconfig.client.json
{
"compilerOptions": {
"target": "ES2022",
"module": "ESNext",
"lib": ["DOM", "ES2022"],
"jsx": "react-jsx",
"esModuleInterop": true,
"strict": true
},
"include": ["."],
"exclude": ["node_modules", "build", "dist"]
}5. tsconfig.test.json
{
"extends": "./tsconfig.base.json",
"compilerOptions": {
"target": "ESNext",
"module": "ESNext",
"moduleResolution": "Bundler",
"types": ["bun-types", "node", "@types/node"],
"esModuleInterop": true,
"allowImportingTsExtensions": true
},
"include": ["test", "tests", "**/*.test.ts", "**/*.spec.ts"],
"exclude": ["node_modules", "build", "dist"]
}6. tsconfig.base.json
{
"compilerOptions": {
"strict": true,
"noEmit": false,
"allowJs": false,
"resolveJsonModule": true
}
}Como contribuir
Contribuições são bem-vindas! Consulte o CONTRIBUTING.md para seguir o padrão de Conventional Commits. Dessa forma o Release Please poderá gerar versões automaticamente.
