@aristobyte-ui/typescript-config 2.5.1 โ†’ 2.6.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.
Files changed (2) hide show
  1. package/README.md +151 -0
  2. package/package.json +1 -1
package/README.md ADDED
@@ -0,0 +1,151 @@
1
+ # `@aristobyte-ui/typescript-config`
2
+
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>
13
+
14
+ Centralized **TypeScript configuration presets** for the AristoByte UI ecosystem.
15
+ Opinionated, consistent, and production-ready.
16
+
17
+ ## ๐Ÿš€ Overview
18
+
19
+ `@aristobyte-ui/typescript-config` provides **shared TypeScript configurations** that enforce strict standards across all AristoByte UI packages.
20
+
21
+ This ensures:
22
+
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.
27
+
28
+ ## ๐Ÿ“ฆ Installation
29
+
30
+ ```bash
31
+ # Install via Yarn
32
+ yarn add -D @aristobyte-ui/typescript-config
33
+
34
+ # Or via npm
35
+ npm install -D @aristobyte-ui/typescript-config
36
+
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", "index.ts"],
64
+ "exclude": ["dist", "node_modules"]
65
+ }
66
+ ```
67
+
68
+ **Next.js projects:**
69
+
70
+ ```json
71
+ {
72
+ "extends": "@aristobyte-ui/typescript-config/next",
73
+ "include": ["app", "pages", "components"],
74
+ "exclude": ["dist", "node_modules"]
75
+ }
76
+ ```
77
+
78
+ **Package-ready builds (library publishing):**
79
+
80
+ ```json
81
+ {
82
+ "extends": "@aristobyte-ui/typescript-config/package",
83
+ "include": ["src"],
84
+ "exclude": ["dist", "node_modules"]
85
+ }
86
+ ```
87
+
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`:
98
+
99
+ ```json
100
+ {
101
+ "name": "@aristobyte-ui/button",
102
+ "version": "1.0.0",
103
+ "scripts": {
104
+ "build": "tsup"
105
+ },
106
+ "devDependencies": {
107
+ "@aristobyte-ui/typescript-config": "2.0.0",
108
+ "typescript": "^5.8.3"
109
+ }
110
+ }
111
+ ```
112
+
113
+ `tsconfig.json`:
114
+
115
+ ```json
116
+ {
117
+ "extends": "@aristobyte-ui/typescript-config/react",
118
+ "include": ["components", "index.ts"]
119
+ }
120
+ ```
121
+
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
134
+
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.
137
+
138
+ ## ๐Ÿ“œ License
139
+
140
+ [MIT](./LICENSE) ยฉ AristoByte
141
+
142
+ ## ๐Ÿ›ก Shields Showcase
143
+
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,7 +1,7 @@
1
1
  {
2
2
  "name": "@aristobyte-ui/typescript-config",
3
3
  "description": "Shared TypeScript config presets used across AristoByteUI platform and packages.",
4
- "version": "2.5.1",
4
+ "version": "2.6.1",
5
5
  "license": "MIT",
6
6
  "private": false,
7
7
  "main": "tsconfig.base.json",