diff --git a/packages/eslint-config/base.cjs b/packages/eslint-config/base.cjs new file mode 100644 index 0000000..6ff0a72 --- /dev/null +++ b/packages/eslint-config/base.cjs @@ -0,0 +1,16 @@ +/** @type {import('eslint').Linter.Config} */ +module.exports = { + env: { + browser: true, + es2022: true, + node: true + }, + parserOptions: { + ecmaVersion: "latest", + sourceType: "module" + }, + rules: { + "no-console": "warn", + "no-debugger": "error" + } +}; diff --git a/packages/eslint-config/package.json b/packages/eslint-config/package.json new file mode 100644 index 0000000..1d92afd --- /dev/null +++ b/packages/eslint-config/package.json @@ -0,0 +1,11 @@ +{ + "name": "@todolist/eslint-config", + "version": "0.1.0", + "description": "Shared ESLint config presets for TodoList", + "main": "base.cjs", + "license": "GPL-3.0-or-later", + "private": true, + "files": [ + "base.cjs" + ] +} diff --git a/packages/tsconfig/base.json b/packages/tsconfig/base.json new file mode 100644 index 0000000..d204bc0 --- /dev/null +++ b/packages/tsconfig/base.json @@ -0,0 +1,17 @@ +{ + "$schema": "https://json.schemastore.org/tsconfig", + "compilerOptions": { + "target": "ES2022", + "module": "ESNext", + "moduleResolution": "Bundler", + "strict": true, + "noImplicitOverride": true, + "noUncheckedIndexedAccess": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "skipLibCheck": true, + "resolveJsonModule": true, + "esModuleInterop": true, + "forceConsistentCasingInFileNames": true + } +} diff --git a/packages/tsconfig/nest-app.json b/packages/tsconfig/nest-app.json new file mode 100644 index 0000000..e6c45a9 --- /dev/null +++ b/packages/tsconfig/nest-app.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json.schemastore.org/tsconfig", + "extends": "./base.json", + "compilerOptions": { + "module": "CommonJS", + "moduleResolution": "Node", + "lib": ["ES2022"], + "types": ["node"], + "experimentalDecorators": true, + "emitDecoratorMetadata": true, + "sourceMap": true + } +} diff --git a/packages/tsconfig/package.json b/packages/tsconfig/package.json new file mode 100644 index 0000000..d34f6cb --- /dev/null +++ b/packages/tsconfig/package.json @@ -0,0 +1,12 @@ +{ + "name": "@todolist/tsconfig", + "version": "0.1.0", + "description": "Shared TypeScript config presets for TodoList", + "license": "GPL-3.0-or-later", + "private": true, + "files": [ + "base.json", + "react-app.json", + "nest-app.json" + ] +} diff --git a/packages/tsconfig/react-app.json b/packages/tsconfig/react-app.json new file mode 100644 index 0000000..a785dfb --- /dev/null +++ b/packages/tsconfig/react-app.json @@ -0,0 +1,9 @@ +{ + "$schema": "https://json.schemastore.org/tsconfig", + "extends": "./base.json", + "compilerOptions": { + "lib": ["ES2022", "DOM", "DOM.Iterable"], + "jsx": "react-jsx", + "types": ["vite/client"] + } +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 91f5927..00cebb6 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -12,6 +12,10 @@ importers: specifier: ^2.9.3 version: 2.9.3 + packages/eslint-config: {} + + packages/tsconfig: {} + packages: '@turbo/darwin-64@2.9.3':