@aristobyte-ui/typescript-config 1.0.8 โ†’ 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.
Files changed (2) hide show
  1. package/README.md +115 -31
  2. package/package.json +15 -6
package/README.md CHANGED
@@ -1,67 +1,151 @@
1
- # @aristobyte/typescript-config
1
+ # `@aristobyte-ui/typescript-config`
2
2
 
3
- Centralized TypeScript configuration package for AristoByte monorepo.
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
- This package consolidates shared TypeScript configurations to ensure consistent type safety, module resolution, and build standards across all AristoByte projects, including `apps/storybook`, `docs`, and UI packages.
19
+ `@aristobyte-ui/typescript-config` provides **shared TypeScript configurations** that enforce strict standards across all AristoByte UI packages.
10
20
 
11
- Leveraging a base config (`tsconfig.base.json`), it provides extended presets for library builds and Next.js apps, streamlining developer experience and enforcing best practices at scale.
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
- ## Included Configurations
28
+ ## ๐Ÿ“ฆ Installation
16
29
 
17
- - **tsconfig.base.json**
18
- Core compiler settings with strictness, module resolution (NodeNext), declaration output, and path aliases for seamless cross-package imports.
30
+ ```bash
31
+ # Install via Yarn
32
+ yarn add -D @aristobyte-ui/typescript-config
19
33
 
20
- - **tsconfig.react.json**
21
- Extends the base config, optimized for building React component libraries with JSX support and declaration-only emission.
34
+ # Or via npm
35
+ npm install -D @aristobyte-ui/typescript-config
22
36
 
23
- - **tsconfig.next.json**
24
- Tailored for Next.js projects, featuring JSX preservation, ESNext modules, bundler-aware resolution, and integration with Next.js plugins.
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
- ## Usage
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
- In your project `tsconfig.json`, extend the relevant config depending on the context:
78
+ **Package-ready builds (library publishing):**
31
79
 
32
80
  ```json
33
81
  {
34
- "extends": "@aristobyte/typescript-config/tsconfig.base.json"
82
+ "extends": "@aristobyte-ui/typescript-config/package",
83
+ "include": ["src"],
84
+ "exclude": ["dist", "node_modules"]
35
85
  }
36
86
  ```
37
87
 
38
- or
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
- "extends": "@aristobyte/typescript-config/tsconfig.react.json"
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
- or
113
+ `tsconfig.json`:
47
114
 
48
115
  ```json
49
116
  {
50
- "extends": "@aristobyte/typescript-config/tsconfig.next.json"
117
+ "extends": "@aristobyte-ui/typescript-config/react",
118
+ "include": ["components", "index.ts"]
51
119
  }
52
120
  ```
53
121
 
54
- ## Benefits
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
- - Enforces strict type safety and consistent compiler behavior.
57
- - Simplifies path aliasing and module resolution across packages.
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
- ## Contribution
138
+ ## ๐Ÿ“œ License
62
139
 
63
- Feel free to propose improvements or extensions to adapt to evolving codebase requirements.
140
+ [MIT](./LICENSE) ยฉ AristoByte
64
141
 
65
- ---
142
+ ## ๐Ÿ›ก Shields Showcase
66
143
 
67
- ยฉ AristoByte Inc. โ€” Empowering scalable, maintainable TypeScript architectures.
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.8",
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://github.com/aristobyte-team/aristobyte-ui.git#readme",
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
  }