@igorskyflyer/tsconfig 1.0.0 → 1.0.1

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/LICENSE CHANGED
@@ -1,21 +1,21 @@
1
- MIT License
2
-
3
- Copyright (c) 2026 Igor Dimitrijević (igorskyflyer)
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Igor Dimitrijević (igorskyflyer)
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -1,219 +1,219 @@
1
- <div align="center">
2
- <img src="https://raw.githubusercontent.com/igorskyflyer/npm-tsconfig/main/media/tsconfig.png" alt="Icon of TSConfig" width="256" height="256">
3
- <h1>TSConfig</h1>
4
- </div>
5
-
6
- <blockquote align="center">Strict By Default • ES2024 • Node & Browser • Zero Config </blockquote>
7
-
8
- <h4 align="center">
9
- 🔧 Opinionated, reusable TSConfig base for modern TypeScript projects by igorskyflyer. 🧠
10
- </h4>
11
-
12
- <br>
13
-
14
- ## Table of Contents
15
-
16
- - ✨ [**Features**](#features)
17
- - 🕵🏼 [**Usage**](#usage)
18
- - ⚙️ [**Implementation**](#implementation)
19
- - 🎯 [**Motivation**](#motivation)
20
- - 📝 [**Changelog**](#changelog)
21
- - 🪪 [**License**](#license)
22
- - 💖 [**Support**](#support)
23
- - 🧬 [**Related**](#related)
24
- - 👨🏻‍💻 [**Author**](#author)
25
-
26
- <br>
27
-
28
- ## Features
29
-
30
- - 🔧 Strict `TypeScript` rules enabled by default
31
- - 📦 Separate configs for `Node` and `browser` environments
32
- - 🎯 `ES2024` target - `modern` and future-ready
33
- - 🗂️ Predefined `src/`, `dist/` and `test/` structure
34
- - 🔍 Catches `unused` locals, parameters and implicit `any`
35
- - 🗺️ `Source maps` and `declaration` maps included
36
- - ⚡ `Zero-config` setup - extend and go
37
-
38
- <br>
39
-
40
- ## Usage
41
-
42
- Install it by executing any of the following, depending on the preferred package manager:
43
-
44
- ```bash
45
- pnpm add -D @igorskyflyer/tsconfig
46
- ```
47
-
48
- ```bash
49
- yarn add -D @igorskyflyer/tsconfig
50
- ```
51
-
52
- ```bash
53
- npm i -D @igorskyflyer/tsconfig
54
- ```
55
-
56
- <br>
57
-
58
- Then extend the preferred config in `tsconfig.json`:
59
-
60
- **Node (default):**
61
- ```jsonc
62
- {
63
- "extends": "@igorskyflyer/tsconfig"
64
- }
65
- ```
66
-
67
- **Node (explicit):**
68
- ```jsonc
69
- {
70
- "extends": "@igorskyflyer/tsconfig/node"
71
- }
72
- ```
73
-
74
- **Browser:**
75
- ```jsonc
76
- {
77
- "extends": "@igorskyflyer/tsconfig/browser"
78
- }
79
- ```
80
-
81
- **Base only:**
82
- ```jsonc
83
- {
84
- "extends": "@igorskyflyer/tsconfig/base"
85
- }
86
- ```
87
-
88
- <br>
89
-
90
- ## Implementation
91
-
92
- All configs extend `base`, which defines the shared structure and strict rules.
93
-
94
- ### Base
95
- ```jsonc
96
- {
97
- "include": ["src/**/*"],
98
- "exclude": ["node_modules/**/*", "test/**/*", "dist/**/*"],
99
- "compilerOptions": {
100
- "rootDir": "./src", // source files root
101
- "outDir": "./dist", // compiled output root
102
- "declaration": true, // generate .d.ts files
103
- "declarationMap": true, // generate .d.ts.map files
104
- "sourceMap": true, // generate .js.map files
105
- "verbatimModuleSyntax": true, // enforce explicit import/export types
106
- "strict": true, // enable all strict checks
107
- "noUnusedLocals": true, // error on unused local variables
108
- "noUnusedParameters": true, // error on unused function parameters
109
- "noImplicitAny": true, // error on implicit 'any' types
110
- "noImplicitReturns": true, // error on missing return statements
111
- "skipLibCheck": true, // skip type-checking of .d.ts files
112
- "forceConsistentCasingInFileNames": true, // enforce consistent file casing
113
- "noEmitOnError": true // skip emit if type errors exist
114
- }
115
- }
116
- ```
117
-
118
- ### Node
119
-
120
- Extends `base` and adds `Node` environment targeting:
121
- ```jsonc
122
- {
123
- "extends": "./tsconfig.base.json",
124
- "compilerOptions": {
125
- "target": "ES2024", // modern JS output
126
- "lib": ["ES2024"], // modern built-in types
127
- "module": "NodeNext", // Node ESM-compatible modules
128
- "moduleResolution": "NodeNext" // Node ESM module resolution
129
- }
130
- }
131
- ```
132
-
133
- ### Browser
134
-
135
- Extends `base` and adds `browser` environment targeting:
136
- ```jsonc
137
- {
138
- "extends": "./tsconfig.base.json",
139
- "compilerOptions": {
140
- "target": "ES2024", // modern JS output
141
- "lib": ["ES2024", "DOM", "DOM.Iterable"], // modern + DOM types
142
- "module": "ESNext", // bundler-compatible modules
143
- "moduleResolution": "Bundler" // bundler module resolution
144
- }
145
- }
146
- ```
147
-
148
- <br>
149
-
150
- ## Motivation
151
-
152
- Managing `TypeScript` configuration across multiple projects is tedious and error-prone. Each project ends up with its own `tsconfig.json`, slightly different, slightly outdated, with no single source of truth.
153
-
154
- `@igorskyflyer/tsconfig` solves this by providing one opinionated, versioned config that propagates across all projects via a simple `extends`. *Update once, apply everywhere* - just like all packages of the `@igorskyflyer` ecosystem do!
155
-
156
- <br>
157
-
158
- ## Changelog
159
-
160
- Read about the latest changes in the [**CHANGELOG**](https://github.com/igorskyflyer/npm-tsconfig/blob/main/CHANGELOG.md).
161
-
162
- <br>
163
-
164
- ## License
165
-
166
- Licensed under the [**MIT license**](https://github.com/igorskyflyer/npm-tsconfig/blob/main/LICENSE).
167
-
168
- <br>
169
-
170
- ## Support
171
-
172
- <div align="center">
173
- Engineering and documenting open-source projects<br>
174
- involves a significant investment of time.
175
- <br><br>
176
- If this project or its implementation has provided value,<br>
177
- support is greatly appreciated.
178
- <br><br>
179
- <a href="https://ko-fi.com/igorskyflyer" target="_blank"><img src="https://raw.githubusercontent.com/igorskyflyer/igorskyflyer/main/assets/ko-fi.png" alt="Donate to igorskyflyer" width="180" height="46"></a>
180
- <br><br>
181
- <em>Thank you for supporting these efforts!</em> 🙏😊
182
- </div>
183
-
184
- <br>
185
-
186
- ## Related
187
-
188
- [**@igorskyflyer/duoscribi**](https://www.npmjs.com/package/@igorskyflyer/duoscribi)
189
-
190
- > _✒ DúöScríbî allows you to convert letters with diacritics to regular letters. 🤓_
191
-
192
- <br>
193
-
194
- [**@igorskyflyer/zep**](https://www.npmjs.com/package/@igorskyflyer/zep)
195
-
196
- > _🧠 Zep is a zero-dependency, efficient debounce module. ⏰_
197
-
198
- <br>
199
-
200
- [**@igorskyflyer/common-types**](https://www.npmjs.com/package/@igorskyflyer/common-types)
201
-
202
- > _🔦 Provides frequently used types for your TypeScript projects. 🦄_
203
-
204
- <br>
205
-
206
- [**@igorskyflyer/zitto**](https://www.npmjs.com/package/@igorskyflyer/zitto)
207
-
208
- > _🤫 Zitto - quiet config, loud clarity. A zero-dependency TypeScript/JavaScript helper for merging defaults and options across Node, Deno, Bun, and browsers. 🍯_
209
-
210
- <br>
211
-
212
- [**@igorskyflyer/magic-queryselector**](https://www.npmjs.com/package/@igorskyflyer/magic-queryselector)
213
-
214
- > _🪄 A TypeScript-types patch for querySelector/querySelectorAll, make them return types you expect them to! 🔮_
215
-
216
- <br>
217
-
218
- ## Author
219
- Created by **Igor Dimitrijević ([*@igorskyflyer*](https://github.com/igorskyflyer/))**.
1
+ <div align="center">
2
+ <img src="https://raw.githubusercontent.com/igorskyflyer/npm-tsconfig/main/media/tsconfig.png" alt="Icon of TSConfig" width="256" height="256">
3
+ <h1>TSConfig</h1>
4
+ </div>
5
+
6
+ <blockquote align="center">Strict By Default • ES2024 • Node & Browser • Zero Config </blockquote>
7
+
8
+ <h4 align="center">
9
+ 🔧 Opinionated, reusable TSConfig base for modern TypeScript projects by igorskyflyer. 🧠
10
+ </h4>
11
+
12
+ <br>
13
+
14
+ ## Table of Contents
15
+
16
+ - ✨ [**Features**](#features)
17
+ - 🕵🏼 [**Usage**](#usage)
18
+ - ⚙️ [**Implementation**](#implementation)
19
+ - 🎯 [**Motivation**](#motivation)
20
+ - 📝 [**Changelog**](#changelog)
21
+ - 🪪 [**License**](#license)
22
+ - 💖 [**Support**](#support)
23
+ - 🧬 [**Related**](#related)
24
+ - 👨🏻‍💻 [**Author**](#author)
25
+
26
+ <br>
27
+
28
+ ## Features
29
+
30
+ - 🔧 Strict `TypeScript` rules enabled by default
31
+ - 📦 Separate configs for `Node` and `browser` environments
32
+ - 🎯 `ES2024` target - `modern` and future-ready
33
+ - 🗂️ Predefined `src/`, `dist/` and `test/` structure
34
+ - 🔍 Catches `unused` locals, parameters and implicit `any`
35
+ - 🗺️ `Source maps` and `declaration` maps included
36
+ - ⚡ `Zero-config` setup - extend and go
37
+
38
+ <br>
39
+
40
+ ## Usage
41
+
42
+ Install it by executing any of the following, depending on the preferred package manager:
43
+
44
+ ```bash
45
+ pnpm add -D @igorskyflyer/tsconfig
46
+ ```
47
+
48
+ ```bash
49
+ yarn add -D @igorskyflyer/tsconfig
50
+ ```
51
+
52
+ ```bash
53
+ npm i -D @igorskyflyer/tsconfig
54
+ ```
55
+
56
+ <br>
57
+
58
+ Then extend the preferred config in `tsconfig.json`:
59
+
60
+ **Node (default):**
61
+ ```jsonc
62
+ {
63
+ "extends": "@igorskyflyer/tsconfig"
64
+ }
65
+ ```
66
+
67
+ **Node (explicit):**
68
+ ```jsonc
69
+ {
70
+ "extends": "@igorskyflyer/tsconfig/node"
71
+ }
72
+ ```
73
+
74
+ **Browser:**
75
+ ```jsonc
76
+ {
77
+ "extends": "@igorskyflyer/tsconfig/browser"
78
+ }
79
+ ```
80
+
81
+ **Base only:**
82
+ ```jsonc
83
+ {
84
+ "extends": "@igorskyflyer/tsconfig/base"
85
+ }
86
+ ```
87
+
88
+ <br>
89
+
90
+ ## Implementation
91
+
92
+ All configs extend `base`, which defines the shared structure and strict rules.
93
+
94
+ ### Base
95
+ ```jsonc
96
+ {
97
+ "include": ["src/**/*"],
98
+ "exclude": ["node_modules/**/*", "test/**/*", "dist/**/*"],
99
+ "compilerOptions": {
100
+ "rootDir": "./src", // source files root
101
+ "outDir": "./dist", // compiled output root
102
+ "declaration": true, // generate .d.ts files
103
+ "declarationMap": true, // generate .d.ts.map files
104
+ "sourceMap": true, // generate .js.map files
105
+ "verbatimModuleSyntax": true, // enforce explicit import/export types
106
+ "strict": true, // enable all strict checks
107
+ "noUnusedLocals": true, // error on unused local variables
108
+ "noUnusedParameters": true, // error on unused function parameters
109
+ "noImplicitAny": true, // error on implicit 'any' types
110
+ "noImplicitReturns": true, // error on missing return statements
111
+ "skipLibCheck": true, // skip type-checking of .d.ts files
112
+ "forceConsistentCasingInFileNames": true, // enforce consistent file casing
113
+ "noEmitOnError": true // skip emit if type errors exist
114
+ }
115
+ }
116
+ ```
117
+
118
+ ### Node
119
+
120
+ Extends `base` and adds `Node` environment targeting:
121
+ ```jsonc
122
+ {
123
+ "extends": "./tsconfig.base.json",
124
+ "compilerOptions": {
125
+ "target": "ES2024", // modern JS output
126
+ "lib": ["ES2024"], // modern built-in types
127
+ "module": "NodeNext", // Node ESM-compatible modules
128
+ "moduleResolution": "NodeNext" // Node ESM module resolution
129
+ }
130
+ }
131
+ ```
132
+
133
+ ### Browser
134
+
135
+ Extends `base` and adds `browser` environment targeting:
136
+ ```jsonc
137
+ {
138
+ "extends": "./tsconfig.base.json",
139
+ "compilerOptions": {
140
+ "target": "ES2024", // modern JS output
141
+ "lib": ["ES2024", "DOM", "DOM.Iterable"], // modern + DOM types
142
+ "module": "ESNext", // bundler-compatible modules
143
+ "moduleResolution": "Bundler" // bundler module resolution
144
+ }
145
+ }
146
+ ```
147
+
148
+ <br>
149
+
150
+ ## Motivation
151
+
152
+ Managing `TypeScript` configuration across multiple projects is tedious and error-prone. Each project ends up with its own `tsconfig.json`, slightly different, slightly outdated, with no single source of truth.
153
+
154
+ `@igorskyflyer/tsconfig` solves this by providing one opinionated, versioned config that propagates across all projects via a simple `extends`. *Update once, apply everywhere* - just like all packages of the `@igorskyflyer` ecosystem do!
155
+
156
+ <br>
157
+
158
+ ## Changelog
159
+
160
+ Read about the latest changes in the [**CHANGELOG**](https://github.com/igorskyflyer/npm-tsconfig/blob/main/CHANGELOG.md).
161
+
162
+ <br>
163
+
164
+ ## License
165
+
166
+ Licensed under the [**MIT license**](https://github.com/igorskyflyer/npm-tsconfig/blob/main/LICENSE).
167
+
168
+ <br>
169
+
170
+ ## Support
171
+
172
+ <div align="center">
173
+ Engineering and documenting open-source projects<br>
174
+ involves a significant investment of time.
175
+ <br><br>
176
+ If this project or its implementation has provided value,<br>
177
+ support is greatly appreciated.
178
+ <br><br>
179
+ <a href="https://ko-fi.com/igorskyflyer" target="_blank"><img src="https://raw.githubusercontent.com/igorskyflyer/igorskyflyer/main/assets/ko-fi.png" alt="Donate to igorskyflyer" width="180" height="46"></a>
180
+ <br><br>
181
+ <em>Thank you for supporting these efforts!</em> 🙏😊
182
+ </div>
183
+
184
+ <br>
185
+
186
+ ## Related
187
+
188
+ [**@igorskyflyer/duoscribi**](https://www.npmjs.com/package/@igorskyflyer/duoscribi)
189
+
190
+ > _✒ DúöScríbî allows you to convert letters with diacritics to regular letters. 🤓_
191
+
192
+ <br>
193
+
194
+ [**@igorskyflyer/zep**](https://www.npmjs.com/package/@igorskyflyer/zep)
195
+
196
+ > _🧠 Zep is a zero-dependency, efficient debounce module. ⏰_
197
+
198
+ <br>
199
+
200
+ [**@igorskyflyer/common-types**](https://www.npmjs.com/package/@igorskyflyer/common-types)
201
+
202
+ > _🔦 Provides frequently used types for your TypeScript projects. 🦄_
203
+
204
+ <br>
205
+
206
+ [**@igorskyflyer/zitto**](https://www.npmjs.com/package/@igorskyflyer/zitto)
207
+
208
+ > _🤫 Zitto - quiet config, loud clarity. A zero-dependency TypeScript/JavaScript helper for merging defaults and options across Node, Deno, Bun, and browsers. 🍯_
209
+
210
+ <br>
211
+
212
+ [**@igorskyflyer/magic-queryselector**](https://www.npmjs.com/package/@igorskyflyer/magic-queryselector)
213
+
214
+ > _🪄 A TypeScript-types patch for querySelector/querySelectorAll, make them return types you expect them to! 🔮_
215
+
216
+ <br>
217
+
218
+ ## Author
219
+ Created by **Igor Dimitrijević ([*@igorskyflyer*](https://github.com/igorskyflyer/))**.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@igorskyflyer/tsconfig",
3
- "version": "1.0.0",
3
+ "version": "1.0.1",
4
4
  "description": "🔧 Opinionated, reusable TSConfig base for modern TypeScript projects by igorskyflyer. 🧠",
5
5
  "files": [
6
6
  "tsconfig.base.json",
@@ -1,27 +1,25 @@
1
- {
2
- "$schema": "https://json.schemastore.org/tsconfig",
3
- "include": [
4
- "src/**/*"
5
- ],
6
- "exclude": [
7
- "node_modules/**/*",
8
- "test/**/*",
9
- "dist/**/*"
10
- ],
11
- "compilerOptions": {
12
- "rootDir": "./src",
13
- "outDir": "./dist",
14
- "declaration": true,
15
- "declarationMap": true,
16
- "sourceMap": true,
17
- "verbatimModuleSyntax": true,
18
- "strict": true,
19
- "noUnusedLocals": true,
20
- "noUnusedParameters": true,
21
- "noImplicitAny": true,
22
- "noImplicitReturns": true,
23
- "skipLibCheck": true,
24
- "forceConsistentCasingInFileNames": true,
25
- "noEmitOnError": true
26
- }
27
- }
1
+ {
2
+ "$schema": "https://json.schemastore.org/tsconfig",
3
+ "include": [
4
+ "src/**/*"
5
+ ],
6
+ "exclude": [
7
+ "node_modules/**/*",
8
+ "test/**/*",
9
+ "dist/**/*"
10
+ ],
11
+ "compilerOptions": {
12
+ "declaration": true,
13
+ "declarationMap": true,
14
+ "sourceMap": true,
15
+ "verbatimModuleSyntax": true,
16
+ "strict": true,
17
+ "noUnusedLocals": true,
18
+ "noUnusedParameters": true,
19
+ "noImplicitAny": true,
20
+ "noImplicitReturns": true,
21
+ "skipLibCheck": true,
22
+ "forceConsistentCasingInFileNames": true,
23
+ "noEmitOnError": true
24
+ }
25
+ }