@aristobyte-ui/typescript-config 1.0.7 โ 1.0.9
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 +115 -31
- package/package.json +15 -6
package/README.md
CHANGED
|
@@ -1,67 +1,151 @@
|
|
|
1
|
-
#
|
|
1
|
+
# `@aristobyte-ui/typescript-config`
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
<p align="center">
|
|
4
|
+
<img src="https://img.shields.io/badge/TypeScript-5.8-blue?style=for-the-badge&logo=typescript&logoColor=white" alt="TypeScript" />
|
|
5
|
+
<img src="https://img.shields.io/badge/Build-Turbo-green?style=for-the-badge&logo=turbo&logoColor=white" alt="TurboRepo" />
|
|
6
|
+
<img src="https://img.shields.io/badge/Lint-Strict-red?style=for-the-badge&logo=eslint&logoColor=white" alt="ESLint" />
|
|
7
|
+
<img src="https://img.shields.io/badge/License-MIT-black?style=for-the-badge&logo=open-source-initiative&logoColor=white" alt="License" />
|
|
8
|
+
<img src="https://img.shields.io/badge/AristoByte-UI-purple?style=for-the-badge&logo=react&logoColor=white" alt="AristoByte UI" />
|
|
9
|
+
<img src="https://img.shields.io/badge/Node-20.17.0+-339933?style=for-the-badge&logo=node.js&logoColor=white" alt="Node.js >=20.17.0" />
|
|
10
|
+
<img src="https://img.shields.io/badge/Yarn-1.22+-2C8EBB?style=for-the-badge&logo=yarn&logoColor=white" alt="Yarn >=1.22" />
|
|
11
|
+
<img src="https://img.shields.io/badge/NPM-10.8+-CB3837?style=for-the-badge&logo=npm&logoColor=white" alt="NPM >=10.8" />
|
|
12
|
+
</p>
|
|
4
13
|
|
|
5
|
-
|
|
14
|
+
Centralized **TypeScript configuration presets** for the AristoByte UI ecosystem.
|
|
15
|
+
Opinionated, consistent, and production-ready.
|
|
6
16
|
|
|
7
|
-
## Overview
|
|
17
|
+
## ๐ Overview
|
|
8
18
|
|
|
9
|
-
|
|
19
|
+
`@aristobyte-ui/typescript-config` provides **shared TypeScript configurations** that enforce strict standards across all AristoByte UI packages.
|
|
10
20
|
|
|
11
|
-
|
|
21
|
+
This ensures:
|
|
12
22
|
|
|
13
|
-
|
|
23
|
+
- ๐ **Consistency** across the monorepo ecosystem.
|
|
24
|
+
- โก **Developer Velocity** by removing redundant boilerplate.
|
|
25
|
+
- ๐ฆ **Scalability** with unified upgrades and evolving presets.
|
|
26
|
+
- ๐งน **Clean output** with correct declaration mapping for distributable packages.
|
|
14
27
|
|
|
15
|
-
##
|
|
28
|
+
## ๐ฆ Installation
|
|
16
29
|
|
|
17
|
-
|
|
18
|
-
|
|
30
|
+
```bash
|
|
31
|
+
# Install via Yarn
|
|
32
|
+
yarn add -D @aristobyte-ui/typescript-config
|
|
19
33
|
|
|
20
|
-
|
|
21
|
-
|
|
34
|
+
# Or via npm
|
|
35
|
+
npm install -D @aristobyte-ui/typescript-config
|
|
22
36
|
|
|
23
|
-
|
|
24
|
-
|
|
37
|
+
# Or via pnpm
|
|
38
|
+
pnpm add -D @aristobyte-ui/typescript-config
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
## ๐ Usage
|
|
42
|
+
|
|
43
|
+
In your `tsconfig.json,` extend one of the provided presets.
|
|
44
|
+
|
|
45
|
+
**Base configuration (for libraries):**
|
|
46
|
+
|
|
47
|
+
```json
|
|
48
|
+
{
|
|
49
|
+
"extends": "@aristobyte-ui/typescript-config/base",
|
|
50
|
+
"compilerOptions": {
|
|
51
|
+
"outDir": "dist",
|
|
52
|
+
"declarationDir": "dist/types"
|
|
53
|
+
},
|
|
54
|
+
"include": ["src", "index.ts"]
|
|
55
|
+
}
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
**React packages:**
|
|
59
|
+
|
|
60
|
+
```json
|
|
61
|
+
{
|
|
62
|
+
"extends": "@aristobyte-ui/typescript-config/react",
|
|
63
|
+
"include": ["components", "utils", "index.ts"],
|
|
64
|
+
"exclude": ["dist", "node_modules"]
|
|
65
|
+
}
|
|
66
|
+
```
|
|
25
67
|
|
|
26
|
-
|
|
68
|
+
**Next.js projects:**
|
|
27
69
|
|
|
28
|
-
|
|
70
|
+
```json
|
|
71
|
+
{
|
|
72
|
+
"extends": "@aristobyte-ui/typescript-config/next",
|
|
73
|
+
"include": ["app", "pages", "components"],
|
|
74
|
+
"exclude": ["dist", "node_modules"]
|
|
75
|
+
}
|
|
76
|
+
```
|
|
29
77
|
|
|
30
|
-
|
|
78
|
+
**Package-ready builds (library publishing):**
|
|
31
79
|
|
|
32
80
|
```json
|
|
33
81
|
{
|
|
34
|
-
"extends": "@aristobyte/typescript-config/
|
|
82
|
+
"extends": "@aristobyte-ui/typescript-config/package",
|
|
83
|
+
"include": ["src"],
|
|
84
|
+
"exclude": ["dist", "node_modules"]
|
|
35
85
|
}
|
|
36
86
|
```
|
|
37
87
|
|
|
38
|
-
|
|
88
|
+
## ๐ Presets Available
|
|
89
|
+
|
|
90
|
+
- `base` โ Strict, modern TypeScript defaults for libraries.
|
|
91
|
+
- `react` โ Extends `base` with React + JSX optimizations.
|
|
92
|
+
- `next` โ Opinionated config optimized for Next.js projects.
|
|
93
|
+
- `package` โ Publishing-friendly output with declarations and ESNext module resolution.
|
|
94
|
+
|
|
95
|
+
## ๐ง Example in a Package
|
|
96
|
+
|
|
97
|
+
`package.json`:
|
|
39
98
|
|
|
40
99
|
```json
|
|
41
100
|
{
|
|
42
|
-
"
|
|
101
|
+
"name": "@aristobyte-ui/button",
|
|
102
|
+
"version": "1.0.0",
|
|
103
|
+
"scripts": {
|
|
104
|
+
"build": "tsup"
|
|
105
|
+
},
|
|
106
|
+
"devDependencies": {
|
|
107
|
+
"@aristobyte-ui/typescript-config": "*",
|
|
108
|
+
"typescript": "^5.8.3"
|
|
109
|
+
}
|
|
43
110
|
}
|
|
44
111
|
```
|
|
45
112
|
|
|
46
|
-
|
|
113
|
+
`tsconfig.json`:
|
|
47
114
|
|
|
48
115
|
```json
|
|
49
116
|
{
|
|
50
|
-
"extends": "@aristobyte/typescript-config/
|
|
117
|
+
"extends": "@aristobyte-ui/typescript-config/react",
|
|
118
|
+
"include": ["components", "index.ts"]
|
|
51
119
|
}
|
|
52
120
|
```
|
|
53
121
|
|
|
54
|
-
##
|
|
122
|
+
## ๐ Why This Matters
|
|
123
|
+
|
|
124
|
+
| Feature | Benefit |
|
|
125
|
+
| -------------------------------- | ------------------------------------- |
|
|
126
|
+
| `strict: true` | Eliminates runtime edge cases early |
|
|
127
|
+
| `noUncheckedIndexedAccess: true` | Safer array/object access |
|
|
128
|
+
| `declaration: true` | Ensures correct `.d.ts` output |
|
|
129
|
+
| `jsx: react-jsx` | Optimized for React 17+ and beyond |
|
|
130
|
+
| `incremental` | Faster rebuilds in monorepo workflows |
|
|
131
|
+
| `moduleResolution: NodeNext` | Modern interoperability for ESM/CJS |
|
|
132
|
+
|
|
133
|
+
## ๐ Philosophy
|
|
55
134
|
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
- Enhances incremental build performance and tooling compatibility.
|
|
59
|
-
- Aligns configurations for React libraries and Next.js apps out-of-the-box.
|
|
135
|
+
At **AristoByte UI**, we believe **configuration should empower, not obstruct**.
|
|
136
|
+
This package encapsulates our best practices into **ready-to-consume presets** that evolve alongside the ecosystem.
|
|
60
137
|
|
|
61
|
-
##
|
|
138
|
+
## ๐ License
|
|
62
139
|
|
|
63
|
-
|
|
140
|
+
[MIT](./LICENSE) ยฉ AristoByte
|
|
64
141
|
|
|
65
|
-
|
|
142
|
+
## ๐ก Shields Showcase
|
|
66
143
|
|
|
67
|
-
|
|
144
|
+
<p align="center">
|
|
145
|
+
<img src="https://img.shields.io/badge/Consistency-100%25-green?style=for-the-badge&logo=typescript" />
|
|
146
|
+
<img src="https://img.shields.io/badge/Maintained-Active-brightgreen?style=for-the-badge&logo=github" />
|
|
147
|
+
<img src="https://img.shields.io/badge/Strictness-High-critical?style=for-the-badge&logo=eslint" />
|
|
148
|
+
<img src="https://img.shields.io/badge/Declarations-Enabled-blue?style=for-the-badge&logo=typescript" />
|
|
149
|
+
<img src="https://img.shields.io/badge/Monorepo-Turbo-green?style=for-the-badge&logo=monorepo" />
|
|
150
|
+
<img src="https://img.shields.io/badge/Interop-ESM%2FCJS-orange?style=for-the-badge&logo=javascript" />
|
|
151
|
+
</p>
|
package/package.json
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aristobyte-ui/typescript-config",
|
|
3
3
|
"description": "Shared TypeScript config presets used across AristoByteUI platform and packages.",
|
|
4
|
-
"version": "1.0.
|
|
4
|
+
"version": "1.0.9",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"private": false,
|
|
7
7
|
"main": "tsconfig.base.json",
|
|
8
8
|
"author": "AristoByte <info@aristobyte.com>",
|
|
9
|
-
"homepage": "https://
|
|
9
|
+
"homepage": "https://www.npmjs.com/package/@aristobyte-ui/typescript-config",
|
|
10
10
|
"repository": {
|
|
11
11
|
"type": "git",
|
|
12
|
-
"url": "https://github.com/aristobyte-team/aristobyte-ui.git",
|
|
12
|
+
"url": "git+https://github.com/aristobyte-team/aristobyte-ui.git",
|
|
13
13
|
"directory": "packages/typescript-config"
|
|
14
14
|
},
|
|
15
15
|
"bugs": {
|
|
@@ -22,9 +22,19 @@
|
|
|
22
22
|
},
|
|
23
23
|
"keywords": [
|
|
24
24
|
"typescript",
|
|
25
|
-
"config",
|
|
26
25
|
"tsconfig",
|
|
26
|
+
"config",
|
|
27
|
+
"typescript-config",
|
|
28
|
+
"shared-config",
|
|
29
|
+
"compiler-options",
|
|
30
|
+
"typescript-presets",
|
|
27
31
|
"monorepo",
|
|
32
|
+
"workspace",
|
|
33
|
+
"frontend",
|
|
34
|
+
"react",
|
|
35
|
+
"nextjs",
|
|
36
|
+
"node",
|
|
37
|
+
"library",
|
|
28
38
|
"aristobyte",
|
|
29
39
|
"aristobyte-ui"
|
|
30
40
|
],
|
|
@@ -42,6 +52,5 @@
|
|
|
42
52
|
],
|
|
43
53
|
"publishConfig": {
|
|
44
54
|
"access": "public"
|
|
45
|
-
}
|
|
46
|
-
"dependencies": {}
|
|
55
|
+
}
|
|
47
56
|
}
|