@reasonabletech/config-typescript 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md ADDED
@@ -0,0 +1,81 @@
1
+ # @reasonabletech/config-typescript
2
+
3
+ [![npm version](https://img.shields.io/npm/v/@reasonabletech/config-typescript.svg)](https://www.npmjs.com/package/@reasonabletech/config-typescript)
4
+ [![npm downloads](https://img.shields.io/npm/dm/@reasonabletech/config-typescript.svg)](https://www.npmjs.com/package/@reasonabletech/config-typescript)
5
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
6
+ [![TypeScript](https://img.shields.io/badge/TypeScript-5.9-blue.svg)](https://www.typescriptlang.org/)
7
+
8
+ `@reasonabletech/config-typescript` provides shared `tsconfig` presets for applications, libraries, tooling, and extension packages. All presets build on a strict base that enables `noUncheckedIndexedAccess`, `exactOptionalPropertyTypes`, and modern `Bundler` module resolution — options that catch more bugs at compile time than TypeScript's default settings.
9
+
10
+ ## Installation
11
+
12
+ ```bash
13
+ pnpm add -D @reasonabletech/config-typescript typescript
14
+ ```
15
+
16
+ ## Requirements
17
+
18
+ | Dependency | Version | Required |
19
+ | ---------- | --------- | -------- |
20
+ | typescript | >= 5.0 | Yes |
21
+
22
+ This package provides TypeScript configuration presets and requires TypeScript 5.0+ for full compatibility with modern `compilerOptions` and module resolution settings.
23
+
24
+ ## Exported Entry Points
25
+
26
+ This package exports JSON presets via subpath imports:
27
+
28
+ - `@reasonabletech/config-typescript/<preset>.json`
29
+
30
+ ## Usage
31
+
32
+ ### Application Example
33
+
34
+ ```json
35
+ {
36
+ "extends": "@reasonabletech/config-typescript/app.json"
37
+ }
38
+ ```
39
+
40
+ ### Library Example
41
+
42
+ ```json
43
+ {
44
+ "extends": "@reasonabletech/config-typescript/library.json",
45
+ "compilerOptions": {
46
+ "outDir": "dist"
47
+ }
48
+ }
49
+ ```
50
+
51
+ ## Available Presets
52
+
53
+ | Preset | Intended Use |
54
+ | --------------------------------------------------------- | -------------------------------------------------------- |
55
+ | `@reasonabletech/config-typescript/base.json` | Base strict TypeScript defaults for NodeNext projects |
56
+ | `@reasonabletech/config-typescript/app.json` | General application projects with `@/*` path alias |
57
+ | `@reasonabletech/config-typescript/library.json` | Libraries that emit declarations only |
58
+ | `@reasonabletech/config-typescript/browser-library.json` | Browser-targeted libraries with DOM libs |
59
+ | `@reasonabletech/config-typescript/platform-library.json` | Platform libraries with React/Next-related ambient types |
60
+ | `@reasonabletech/config-typescript/react-app.json` | React applications with JSX and `noEmit` |
61
+ | `@reasonabletech/config-typescript/react-library.json` | React libraries with JSX settings |
62
+ | `@reasonabletech/config-typescript/nextjs.json` | Next.js applications with bundler module resolution |
63
+ | `@reasonabletech/config-typescript/server.json` | Server applications with decorators and `@/*` path alias |
64
+ | `@reasonabletech/config-typescript/chrome-extension.json` | Chrome extension packages |
65
+ | `@reasonabletech/config-typescript/vscode-extension.json` | VS Code extension packages |
66
+ | `@reasonabletech/config-typescript/tooling.json` | Tooling scripts and build utilities |
67
+ | `@reasonabletech/config-typescript/eslint.json` | TypeScript settings for ESLint integration |
68
+ | `@reasonabletech/config-typescript/strict.json` | Additional strictness beyond `base.json` |
69
+ | `@reasonabletech/config-typescript/docs.json` | Documentation-focused TypeScript settings |
70
+
71
+ ## Changelog
72
+
73
+ See [CHANGELOG.md](./CHANGELOG.md) for release history.
74
+
75
+ This package follows [Semantic Versioning](https://semver.org/). Breaking changes are documented with migration guides when applicable.
76
+
77
+ ## Additional References
78
+
79
+ - [Usage Guide](./docs/guides/usage-guide.md)
80
+ - [Package Docs](./docs/README.md)
81
+ - [Base Config Details](./docs/api/base-config.md)
package/docs/README.md ADDED
@@ -0,0 +1,18 @@
1
+ # @reasonabletech/config-typescript Documentation
2
+
3
+ Reference documentation for shared TypeScript presets in the core-utils monorepo.
4
+
5
+ ## Start Here
6
+
7
+ - [Usage Guide](./guides/usage-guide.md)
8
+
9
+ ## API Reference
10
+
11
+ - [Base Configuration](./api/base-config.md)
12
+
13
+ ## Monorepo Context
14
+
15
+ - [Package README](../README.md)
16
+ - [Architecture](../../../docs/architecture.md) — How packages relate
17
+ - [Tooling](../../../docs/tooling.md) — Turbo, Changesets details
18
+ - [Contributing](../../../CONTRIBUTING.md)
@@ -0,0 +1,79 @@
1
+ # TypeScript Presets API Reference
2
+
3
+ This package publishes TypeScript presets as JSON config files.
4
+
5
+ ## How To Use
6
+
7
+ Use one preset in your `tsconfig.json` `extends`:
8
+
9
+ ```json
10
+ {
11
+ "extends": "@reasonabletech/config-typescript/base.json"
12
+ }
13
+ ```
14
+
15
+ All presets are exported with a `.json` suffix.
16
+
17
+ ## Preset Catalog
18
+
19
+ | Preset | Extends | Highlights |
20
+ | --- | --- | --- |
21
+ | `base.json` | — | ES2022 target, `module: NodeNext`, strict mode, declaration/source maps, incremental builds |
22
+ | `app.json` | `base.json` | App-friendly path alias default: `@/* -> src/*` |
23
+ | `library.json` | `base.json` | Library default `emitDeclarationOnly: true` |
24
+ | `react-app.json` | `base.json` | React app defaults (`jsx: react-jsx`, DOM libs, `noEmit: true`) |
25
+ | `react-library.json` | `base.json` | React library defaults (DOM libs, JSX transform/import source) |
26
+ | `nextjs.json` | `base.json` | Next.js defaults (`module: ESNext`, `moduleResolution: bundler`, Next plugin, `noEmit: true`) |
27
+ | `server.json` | `base.json` | Node service defaults with decorator metadata and app-style path alias |
28
+ | `browser-library.json` | `base.json` | Browser lib target (`ES2023`, DOM libs) |
29
+ | `platform-library.json` | `base.json` | Platform package baseline with React/Next/Node type sets |
30
+ | `chrome-extension.json` | `base.json` | Chrome extension type surface (`chrome`, `node`) |
31
+ | `vscode-extension.json` | `base.json` | VS Code extension type surface (`vscode`, `node`) |
32
+ | `eslint.json` | `base.json` | ESLint authoring preset (`emitDeclarationOnly`, include/exclude defaults) |
33
+ | `docs.json` | `base.json` | Documentation-focused preset (`skipLibCheck: false`) |
34
+ | `tooling.json` | `base.json` | Tooling/script projects with base strict defaults |
35
+ | `strict.json` | `base.json` | Extra strictness (`exactOptionalPropertyTypes`, indexed-access checks, override guards) |
36
+
37
+ ## Common Usage Patterns
38
+
39
+ ### Application
40
+
41
+ ```json
42
+ {
43
+ "extends": "@reasonabletech/config-typescript/app.json",
44
+ "compilerOptions": {
45
+ "outDir": "./dist"
46
+ },
47
+ "include": ["src/**/*"]
48
+ }
49
+ ```
50
+
51
+ ### Library
52
+
53
+ ```json
54
+ {
55
+ "extends": "@reasonabletech/config-typescript/library.json",
56
+ "compilerOptions": {
57
+ "outDir": "./dist",
58
+ "rootDir": "./src"
59
+ },
60
+ "include": ["src/**/*"]
61
+ }
62
+ ```
63
+
64
+ ### Strict Variant
65
+
66
+ ```json
67
+ {
68
+ "extends": "@reasonabletech/config-typescript/strict.json"
69
+ }
70
+ ```
71
+
72
+ ## Source of Truth
73
+
74
+ Preset implementations live under:
75
+
76
+ - `packages/config-typescript/lib/base.json`
77
+ - `packages/config-typescript/lib/*.json`
78
+
79
+ Review those files for exact compiler option values.
@@ -0,0 +1,47 @@
1
+ # Migration Guide
2
+
3
+ This guide documents breaking changes and how to migrate between major versions of @reasonabletech/config-typescript.
4
+
5
+ ## Current Version
6
+
7
+ The current major version is **0.x** (pre-1.0). The API is stabilizing but may have breaking changes before 1.0.
8
+
9
+ ## Future Migration Notes
10
+
11
+ _No breaking changes documented yet. This section will be updated when breaking changes are released._
12
+
13
+ ---
14
+
15
+ ## Migration Template
16
+
17
+ When documenting a breaking change, use this structure:
18
+
19
+ ### Migrating from X.x to Y.0
20
+
21
+ #### Breaking Changes
22
+
23
+ 1. **Change description** - Brief explanation of what changed
24
+
25
+ **Before:**
26
+ ```typescript
27
+ // Old usage
28
+ ```
29
+
30
+ **After:**
31
+ ```typescript
32
+ // New usage
33
+ ```
34
+
35
+ 2. **Another change** - Description
36
+
37
+ #### Deprecations
38
+
39
+ - `oldFunction()` is deprecated in favor of `newFunction()`
40
+
41
+ #### New Features
42
+
43
+ - Feature description
44
+
45
+ ---
46
+
47
+ _Last updated: [date]_
@@ -0,0 +1,87 @@
1
+ # @reasonabletech/config-typescript Usage Guide
2
+
3
+ This guide covers canonical setup for TypeScript presets in greenfield packages and apps.
4
+
5
+ ## Installation
6
+
7
+ ```bash
8
+ pnpm add -D @reasonabletech/config-typescript typescript
9
+ ```
10
+
11
+ ## Quick Start
12
+
13
+ ```json
14
+ {
15
+ "extends": "@reasonabletech/config-typescript/base.json"
16
+ }
17
+ ```
18
+
19
+ ## Choose the Right Preset
20
+
21
+ ### Application Presets
22
+
23
+ - `@reasonabletech/config-typescript/app.json`
24
+ - `@reasonabletech/config-typescript/react-app.json`
25
+ - `@reasonabletech/config-typescript/nextjs.json`
26
+ - `@reasonabletech/config-typescript/server.json`
27
+
28
+ ### Library Presets
29
+
30
+ - `@reasonabletech/config-typescript/library.json`
31
+ - `@reasonabletech/config-typescript/react-library.json`
32
+ - `@reasonabletech/config-typescript/browser-library.json`
33
+ - `@reasonabletech/config-typescript/platform-library.json`
34
+
35
+ ### Specialized Presets
36
+
37
+ - `@reasonabletech/config-typescript/chrome-extension.json`
38
+ - `@reasonabletech/config-typescript/vscode-extension.json`
39
+ - `@reasonabletech/config-typescript/tooling.json`
40
+ - `@reasonabletech/config-typescript/eslint.json`
41
+ - `@reasonabletech/config-typescript/strict.json`
42
+ - `@reasonabletech/config-typescript/docs.json`
43
+
44
+ ## Configuration Examples
45
+
46
+ ### React App
47
+
48
+ ```json
49
+ {
50
+ "extends": "@reasonabletech/config-typescript/react-app.json",
51
+ "compilerOptions": {
52
+ "baseUrl": "."
53
+ },
54
+ "include": ["src"]
55
+ }
56
+ ```
57
+
58
+ ### Library
59
+
60
+ ```json
61
+ {
62
+ "extends": "@reasonabletech/config-typescript/library.json",
63
+ "compilerOptions": {
64
+ "outDir": "dist"
65
+ },
66
+ "include": ["src"]
67
+ }
68
+ ```
69
+
70
+ ## Troubleshooting
71
+
72
+ ### `extends` cannot be resolved
73
+
74
+ Ensure the package is installed in the same workspace/project where `tsconfig.json` is evaluated.
75
+
76
+ ### Incompatible runtime module resolution
77
+
78
+ Use the preset aligned with your runtime:
79
+
80
+ - Node/Bun style runtimes: `base.json`, `app.json`, `server.json`
81
+ - Next.js app router projects: `nextjs.json`
82
+
83
+ ## Related Documentation
84
+
85
+ - [Package Docs Index](../README.md)
86
+ - [Base Config Details](../api/base-config.md)
87
+ - [Package README](../../README.md)
@@ -0,0 +1,60 @@
1
+ # @reasonabletech/config-typescript Examples
2
+
3
+ These examples show practical `tsconfig` setups using exported `.json` presets.
4
+
5
+ ## Files In This Directory
6
+
7
+ - [base-config.ts](./base-config.ts): baseline TypeScript project examples
8
+ - [react-app-config.ts](./react-app-config.ts): React and Next.js app-oriented examples
9
+
10
+ ## Installation
11
+
12
+ ```bash
13
+ pnpm add -D typescript @reasonabletech/config-typescript
14
+ ```
15
+
16
+ ## Quick Start
17
+
18
+ ```json
19
+ {
20
+ "extends": "@reasonabletech/config-typescript/base.json",
21
+ "include": ["src/**/*"]
22
+ }
23
+ ```
24
+
25
+ ## Preset Path Format
26
+
27
+ Use package subpaths with `.json`:
28
+
29
+ - `@reasonabletech/config-typescript/base.json`
30
+ - `@reasonabletech/config-typescript/react-app.json`
31
+ - `@reasonabletech/config-typescript/react-library.json`
32
+ - `@reasonabletech/config-typescript/nextjs.json`
33
+ - `@reasonabletech/config-typescript/server.json`
34
+ - `@reasonabletech/config-typescript/strict.json`
35
+
36
+ ## Example: App + Test Config Split
37
+
38
+ `tsconfig.json`:
39
+
40
+ ```json
41
+ {
42
+ "extends": "@reasonabletech/config-typescript/app.json",
43
+ "compilerOptions": {
44
+ "outDir": "./dist"
45
+ },
46
+ "include": ["src/**/*"]
47
+ }
48
+ ```
49
+
50
+ `tsconfig.test.json`:
51
+
52
+ ```json
53
+ {
54
+ "extends": "./tsconfig.json",
55
+ "compilerOptions": {
56
+ "types": ["vitest/globals", "node"]
57
+ },
58
+ "include": ["src/**/*", "tests/**/*"]
59
+ }
60
+ ```
@@ -0,0 +1,46 @@
1
+ /**
2
+ * Base configuration examples for projects that consume
3
+ * @reasonabletech/config-typescript.
4
+ */
5
+
6
+ const baseTsConfig = {
7
+ extends: "@reasonabletech/config-typescript/base.json",
8
+ compilerOptions: {
9
+ outDir: "./dist",
10
+ rootDir: "./src",
11
+ baseUrl: ".",
12
+ paths: {
13
+ "@/*": ["src/*"],
14
+ "@/utils/*": ["src/utils/*"],
15
+ },
16
+ },
17
+ include: ["src/**/*"],
18
+ exclude: ["node_modules", "dist", "**/*.test.ts", "**/*.spec.ts"],
19
+ };
20
+
21
+ const strictTsConfig = {
22
+ extends: "@reasonabletech/config-typescript/strict.json",
23
+ compilerOptions: {
24
+ outDir: "./dist",
25
+ },
26
+ include: ["src/**/*"],
27
+ };
28
+
29
+ const libraryTsConfig = {
30
+ extends: "@reasonabletech/config-typescript/library.json",
31
+ compilerOptions: {
32
+ outDir: "./dist",
33
+ rootDir: "./src",
34
+ },
35
+ include: ["src/**/*"],
36
+ };
37
+
38
+ const serverTsConfig = {
39
+ extends: "@reasonabletech/config-typescript/server.json",
40
+ compilerOptions: {
41
+ outDir: "./dist",
42
+ },
43
+ include: ["src/**/*"],
44
+ };
45
+
46
+ export { baseTsConfig, strictTsConfig, libraryTsConfig, serverTsConfig };
@@ -0,0 +1,64 @@
1
+ /**
2
+ * React-oriented configuration examples.
3
+ */
4
+
5
+ const reactAppTsConfig = {
6
+ extends: "@reasonabletech/config-typescript/react-app.json",
7
+ compilerOptions: {
8
+ baseUrl: ".",
9
+ paths: {
10
+ "@/*": ["src/*"],
11
+ "@/components/*": ["src/components/*"],
12
+ "@/hooks/*": ["src/hooks/*"],
13
+ },
14
+ types: ["vite/client", "node"],
15
+ },
16
+ include: ["src/**/*", "vite-env.d.ts"],
17
+ exclude: ["node_modules", "dist"],
18
+ };
19
+
20
+ const reactLibraryTsConfig = {
21
+ extends: "@reasonabletech/config-typescript/react-library.json",
22
+ compilerOptions: {
23
+ outDir: "./dist",
24
+ rootDir: "./src",
25
+ },
26
+ include: ["src/**/*"],
27
+ exclude: ["**/*.test.tsx", "**/*.spec.tsx"],
28
+ };
29
+
30
+ const nextJsTsConfig = {
31
+ extends: "@reasonabletech/config-typescript/nextjs.json",
32
+ compilerOptions: {
33
+ baseUrl: ".",
34
+ paths: {
35
+ "@/*": ["src/*"],
36
+ },
37
+ },
38
+ include: ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"],
39
+ };
40
+
41
+ const reactTestTsConfig = {
42
+ extends: "./tsconfig.json",
43
+ compilerOptions: {
44
+ types: ["vitest/globals", "jsdom", "@testing-library/jest-dom"],
45
+ },
46
+ include: ["src/**/*", "tests/**/*", "**/*.test.ts", "**/*.test.tsx"],
47
+ };
48
+
49
+ const reactPackageScripts = {
50
+ scripts: {
51
+ dev: "vite",
52
+ build: "tsc --noEmit && vite build",
53
+ typecheck: "tsc --noEmit",
54
+ test: "vitest",
55
+ },
56
+ };
57
+
58
+ export {
59
+ reactAppTsConfig,
60
+ reactLibraryTsConfig,
61
+ nextJsTsConfig,
62
+ reactTestTsConfig,
63
+ reactPackageScripts,
64
+ };
package/lib/app.json ADDED
@@ -0,0 +1,10 @@
1
+ {
2
+ "$schema": "https://json.schemastore.org/tsconfig",
3
+ "extends": "./base.json",
4
+ "compilerOptions": {
5
+ "baseUrl": ".",
6
+ "paths": {
7
+ "@/*": ["src/*"]
8
+ }
9
+ }
10
+ }
package/lib/base.json ADDED
@@ -0,0 +1,35 @@
1
+ {
2
+ "$schema": "https://json.schemastore.org/tsconfig",
3
+ "compilerOptions": {
4
+ "target": "ES2022",
5
+ "lib": ["ES2022"],
6
+ "composite": true,
7
+ "declaration": true,
8
+ "declarationMap": true,
9
+ "sourceMap": true,
10
+ "esModuleInterop": true,
11
+ "forceConsistentCasingInFileNames": true,
12
+ "inlineSources": false,
13
+ "isolatedModules": true,
14
+ "module": "NodeNext",
15
+ "moduleResolution": "NodeNext",
16
+ "customConditions": ["source"],
17
+ "allowImportingTsExtensions": false,
18
+ "noUnusedLocals": false,
19
+ "noUnusedParameters": false,
20
+ "preserveWatchOutput": true,
21
+ "skipLibCheck": true,
22
+ "strict": true,
23
+ "noEmit": false,
24
+ "strictNullChecks": true,
25
+ "allowSyntheticDefaultImports": true,
26
+ "resolveJsonModule": true,
27
+ "noImplicitReturns": false,
28
+ "noFallthroughCasesInSwitch": true,
29
+ "exactOptionalPropertyTypes": false,
30
+ "noUncheckedIndexedAccess": false,
31
+ "useUnknownInCatchVariables": true,
32
+ "incremental": true,
33
+ "types": ["node"]
34
+ }
35
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "$schema": "https://json.schemastore.org/tsconfig",
3
+ "extends": "./base.json",
4
+ "compilerOptions": {
5
+ "lib": ["ES2023", "DOM", "DOM.Iterable"]
6
+ }
7
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "$schema": "https://json.schemastore.org/tsconfig",
3
+ "extends": "./base.json",
4
+ "compilerOptions": {
5
+ "lib": ["ES2023", "DOM", "DOM.Iterable"],
6
+ "types": ["chrome", "node"]
7
+ }
8
+ }
package/lib/docs.json ADDED
@@ -0,0 +1,7 @@
1
+ {
2
+ "$schema": "https://json.schemastore.org/tsconfig",
3
+ "extends": "./base.json",
4
+ "compilerOptions": {
5
+ "skipLibCheck": false
6
+ }
7
+ }
@@ -0,0 +1,10 @@
1
+ {
2
+ "$schema": "https://json.schemastore.org/tsconfig",
3
+ "display": "ESLint Config",
4
+ "extends": "./base.json",
5
+ "compilerOptions": {
6
+ "emitDeclarationOnly": true
7
+ },
8
+ "include": ["**/*.ts"],
9
+ "exclude": ["node_modules", "dist"]
10
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "$schema": "https://json.schemastore.org/tsconfig",
3
+ "extends": "./base.json",
4
+ "compilerOptions": {
5
+ "emitDeclarationOnly": true
6
+ }
7
+ }
@@ -0,0 +1,21 @@
1
+ {
2
+ "$schema": "https://json.schemastore.org/tsconfig",
3
+ "extends": "./base.json",
4
+ "compilerOptions": {
5
+ "lib": ["ES2023", "DOM", "DOM.Iterable"],
6
+ "module": "ESNext",
7
+ "moduleResolution": "bundler",
8
+ "allowJs": true,
9
+ "jsx": "preserve",
10
+ "jsxImportSource": "react",
11
+ "composite": false,
12
+ "declaration": false,
13
+ "declarationMap": false,
14
+ "noEmit": true,
15
+ "plugins": [
16
+ {
17
+ "name": "next"
18
+ }
19
+ ]
20
+ }
21
+ }
@@ -0,0 +1,10 @@
1
+ {
2
+ "$schema": "https://json.schemastore.org/tsconfig",
3
+ "extends": "./base.json",
4
+ "compilerOptions": {
5
+ "lib": ["ES2022", "DOM", "DOM.Iterable"],
6
+ "jsx": "react-jsx",
7
+ "jsxImportSource": "react",
8
+ "types": ["next", "react", "react-dom", "node"]
9
+ }
10
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "$schema": "https://json.schemastore.org/tsconfig",
3
+ "extends": "./base.json",
4
+ "compilerOptions": {
5
+ "allowJs": true,
6
+ "composite": false,
7
+ "declaration": false,
8
+ "declarationMap": false,
9
+ "emitDeclarationOnly": false,
10
+ "noEmit": true,
11
+ "jsx": "react-jsx",
12
+ "lib": ["ES2023", "DOM", "DOM.Iterable"]
13
+ }
14
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "$schema": "https://json.schemastore.org/tsconfig",
3
+ "extends": "./base.json",
4
+ "compilerOptions": {
5
+ "lib": ["ES2022", "DOM", "DOM.Iterable"],
6
+ "jsx": "react-jsx",
7
+ "jsxImportSource": "react"
8
+ }
9
+ }
@@ -0,0 +1,12 @@
1
+ {
2
+ "$schema": "https://json.schemastore.org/tsconfig",
3
+ "extends": "./base.json",
4
+ "compilerOptions": {
5
+ "experimentalDecorators": true,
6
+ "emitDecoratorMetadata": true,
7
+ "baseUrl": ".",
8
+ "paths": {
9
+ "@/*": ["src/*"]
10
+ }
11
+ }
12
+ }
@@ -0,0 +1,12 @@
1
+ {
2
+ "$schema": "https://json.schemastore.org/tsconfig",
3
+ "extends": "./base.json",
4
+ "compilerOptions": {
5
+ "exactOptionalPropertyTypes": true,
6
+ "noUncheckedIndexedAccess": true,
7
+ "noImplicitOverride": true,
8
+ "noPropertyAccessFromIndexSignature": true,
9
+ "allowUnusedLabels": false,
10
+ "allowUnreachableCode": false
11
+ }
12
+ }
@@ -0,0 +1,4 @@
1
+ {
2
+ "$schema": "https://json.schemastore.org/tsconfig",
3
+ "extends": "./base.json"
4
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "$schema": "https://json.schemastore.org/tsconfig",
3
+ "extends": "./base.json",
4
+ "compilerOptions": {
5
+ "downlevelIteration": true,
6
+ "types": ["vscode", "node"]
7
+ }
8
+ }
package/package.json ADDED
@@ -0,0 +1,65 @@
1
+ {
2
+ "name": "@reasonabletech/config-typescript",
3
+ "version": "0.1.0",
4
+ "description": "Shared TypeScript configuration presets",
5
+ "keywords": [
6
+ "reasonabletech",
7
+ "config",
8
+ "typescript",
9
+ "tsconfig",
10
+ "typescript-config",
11
+ "typescript-preset",
12
+ "compiler-options"
13
+ ],
14
+ "type": "module",
15
+ "files": [
16
+ "lib/**/*.json",
17
+ "docs/**/*",
18
+ "examples/**/*"
19
+ ],
20
+ "exports": {
21
+ "./base.json": "./lib/base.json",
22
+ "./app.json": "./lib/app.json",
23
+ "./library.json": "./lib/library.json",
24
+ "./browser-library.json": "./lib/browser-library.json",
25
+ "./chrome-extension.json": "./lib/chrome-extension.json",
26
+ "./eslint.json": "./lib/eslint.json",
27
+ "./nextjs.json": "./lib/nextjs.json",
28
+ "./platform-library.json": "./lib/platform-library.json",
29
+ "./react-app.json": "./lib/react-app.json",
30
+ "./react-library.json": "./lib/react-library.json",
31
+ "./server.json": "./lib/server.json",
32
+ "./strict.json": "./lib/strict.json",
33
+ "./tooling.json": "./lib/tooling.json",
34
+ "./vscode-extension.json": "./lib/vscode-extension.json",
35
+ "./docs.json": "./lib/docs.json"
36
+ },
37
+ "license": "MIT",
38
+ "publishConfig": {
39
+ "access": "public",
40
+ "registry": "https://registry.npmjs.org/"
41
+ },
42
+ "author": "Reasonable Tech Company",
43
+ "repository": {
44
+ "type": "git",
45
+ "url": "https://github.com/ReasonableTech/core-utils.git",
46
+ "directory": "packages/config-typescript"
47
+ },
48
+ "bugs": {
49
+ "url": "https://github.com/ReasonableTech/core-utils/issues"
50
+ },
51
+ "homepage": "https://github.com/ReasonableTech/core-utils/tree/main/packages/config-typescript",
52
+ "sideEffects": false,
53
+ "engines": {
54
+ "node": ">=22"
55
+ },
56
+ "scripts": {
57
+ "build": "echo 'No build needed for configuration package'",
58
+ "clean": "rm -rf .turbo node_modules tsconfig.tsbuildinfo",
59
+ "lint": "echo \"No lint target for config-only package\"",
60
+ "lint:check": "echo \"No lint target for config-only package\"",
61
+ "test": "echo 'No tests for configuration package'",
62
+ "typecheck": "echo 'No TypeScript files to check in configuration package'",
63
+ "verify:release": "pnpm typecheck && pnpm lint:check && pnpm test && pnpm build"
64
+ }
65
+ }