create-alistt69-kit 0.3.5 → 0.3.6

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 (63) hide show
  1. package/LICENSE +20 -20
  2. package/README.md +189 -189
  3. package/bin/index.js +24 -24
  4. package/package.json +44 -44
  5. package/src/core/apply-features.js +14 -14
  6. package/src/core/collect-project-info.js +170 -170
  7. package/src/core/copy-base-template.js +11 -11
  8. package/src/core/create-project.js +99 -99
  9. package/src/core/install-dependencies.js +27 -27
  10. package/src/core/parse-cli-args.js +122 -122
  11. package/src/core/prepare-target-directory.js +69 -69
  12. package/src/core/render-project-readme.js +278 -278
  13. package/src/core/replace-tokens.js +45 -45
  14. package/src/core/restore-special-files.js +18 -18
  15. package/src/features/agents-md/files/AGENTS.md +36 -36
  16. package/src/features/agents-md/index.js +13 -13
  17. package/src/features/autoprefixer/files/postcss.config.cjs +4 -4
  18. package/src/features/autoprefixer/index.js +31 -31
  19. package/src/features/define-feature.js +32 -32
  20. package/src/features/eslint/files/eslint.config.mjs +135 -135
  21. package/src/features/eslint/index.js +43 -43
  22. package/src/features/index.js +28 -28
  23. package/src/features/prerender/files/prerender.routes.mjs +5 -5
  24. package/src/features/prerender/files/scripts/prerender.mjs +114 -114
  25. package/src/features/prerender/index.js +40 -40
  26. package/src/features/react-router/files/scripts/generate/page.mjs +366 -366
  27. package/src/features/react-router/files/src/app/App.tsx +18 -18
  28. package/src/features/react-router/files/src/app/providers/error-boundary/lib/provider/index.tsx +44 -44
  29. package/src/features/react-router/files/src/app/providers/error-boundary/ui/error-screen/index.tsx +151 -151
  30. package/src/features/react-router/files/src/app/providers/index.ts +17 -17
  31. package/src/features/react-router/files/src/app/providers/router/lib/provider/index.tsx +21 -21
  32. package/src/features/react-router/files/src/app/providers/router/model/router/index.tsx +24 -24
  33. package/src/features/react-router/files/src/app/providers/router/types/index.ts +10 -10
  34. package/src/features/react-router/files/src/app/providers/router/ui/app/index.tsx +36 -36
  35. package/src/features/react-router/files/src/index.tsx +23 -23
  36. package/src/features/react-router/files/src/pages/error/index.ts +1 -1
  37. package/src/features/react-router/files/src/pages/error/lazy.ts +3 -3
  38. package/src/features/react-router/files/src/pages/error/page.tsx +7 -7
  39. package/src/features/react-router/files/src/pages/main/index.ts +1 -1
  40. package/src/features/react-router/files/src/pages/main/lazy.ts +3 -3
  41. package/src/features/react-router/files/src/pages/main/page.tsx +7 -7
  42. package/src/features/react-router/index.js +36 -36
  43. package/src/features/stylelint/files/stylelint.config.mjs +13 -13
  44. package/src/features/stylelint/index.js +37 -37
  45. package/src/templates/base/.editorconfig +11 -11
  46. package/src/templates/base/README.md +2 -2
  47. package/src/templates/base/babel.config.json +12 -12
  48. package/src/templates/base/gitignore +27 -27
  49. package/src/templates/base/package.json +48 -48
  50. package/src/templates/base/public/index.html +12 -12
  51. package/src/templates/base/src/app/App.tsx +12 -12
  52. package/src/templates/base/src/app/providers/error-boundary/lib/provider/index.tsx +44 -44
  53. package/src/templates/base/src/app/providers/error-boundary/ui/error-screen/index.tsx +150 -150
  54. package/src/templates/base/src/app/providers/index.ts +5 -5
  55. package/src/templates/base/src/index.tsx +19 -19
  56. package/src/templates/base/src/styles/index.scss +13 -13
  57. package/src/templates/base/src/styles/normalize.scss +36 -36
  58. package/src/templates/base/src/widgets/created-by/index.tsx +1 -1
  59. package/src/templates/base/tsconfig.json +25 -25
  60. package/src/utils/agents-md.js +52 -52
  61. package/src/utils/console-format.js +11 -11
  62. package/src/utils/package-json.js +96 -96
  63. package/src/utils/package-manager.js +22 -22
package/LICENSE CHANGED
@@ -1,21 +1,21 @@
1
- MIT License
2
-
3
- Copyright (c) 2026 alistt69
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
1
+ MIT License
2
+
3
+ Copyright (c) 2026 alistt69
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
21
  SOFTWARE.
package/README.md CHANGED
@@ -1,189 +1,189 @@
1
- <table width="100%">
2
- <tr>
3
- <td width="190" align="center">
4
- <img src="assets/alistt69-packages-logo.svg" alt="Logo" width="170" height="170" style="margin-top: 50px;" />
5
- </td>
6
- <td>
7
- <h1>create-alistt69-kit</h1>
8
-
9
- > **One command. Zero config fatigue.**
10
- > Bootstrap a **React + TypeScript + Webpack** app with a solid starter setup and optional tooling you can enable when you need it.
11
-
12
- [![npm version](https://img.shields.io/npm/v/create-alistt69-kit.svg)](https://www.npmjs.com/package/create-alistt69-kit)
13
- [![Node.js Version](https://img.shields.io/badge/node-%3E%3D18.18-brightgreen)](https://nodejs.org/)
14
- [![npm downloads](https://img.shields.io/npm/dm/create-alistt69-kit.svg)](https://www.npmjs.com/package/create-alistt69-kit)
15
- [![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](./LICENSE)
16
- [![CI](https://github.com/alistt69/create-alistt69-kit/actions/workflows/ci.yml/badge.svg)](https://github.com/alistt69/create-alistt69-kit/actions/workflows/ci.yml)
17
- </td>
18
- </tr>
19
- </table>
20
-
21
- ## ✨ Overview
22
-
23
- `create-alistt69-kit` is a project scaffolding tool for quickly creating a modern frontend app without burning time on repetitive setup.
24
-
25
- It generates a ready-to-run **React + TypeScript + Webpack** starter with a practical baseline and optional extras you can turn on when needed.
26
-
27
- ## 🔧 What’s inside
28
-
29
- | Tool | Purpose | Included |
30
- |------|----------------------------------|----------|
31
- | [React](https://react.dev/) | Web framework | Default |
32
- | [TypeScript](https://www.typescriptlang.org/) | Static typing | Default |
33
- | [Webpack](https://webpack.js.org/) | Bundling and build pipeline | Default |
34
- | [SCSS Modules](https://github.com/css-modules/css-modules) | Scoped styling | Default |
35
- | [SVGR](https://react-svgr.com/) | Import SVGs as React components | Default |
36
- | [Webpack Bundle Analyzer](https://github.com/webpack-contrib/webpack-bundle-analyzer) | Bundle size inspection | Default |
37
- | [ESLint](https://eslint.org/) + [eslint-stylistic](https://eslint.style/) | Code quality and stylistic rules | Optional |
38
- | [Stylelint](https://stylelint.io/) | Stylesheet linting | Optional |
39
- | [Autoprefixer](https://github.com/postcss/autoprefixer) | Automatic CSS vendor prefixes | Optional |
40
- | [React Router](https://reactrouter.com/) | Client-side routing | Optional |
41
- | [AGENTS.md](https://agents.md/) | Root instructions file for AI coding agents | Optional |
42
- | [Puppeteer](https://pptr.dev/) + [serve-handler](https://github.com/vercel/serve-handler) | Static HTML prerender after production build | Optional |
43
-
44
- ## 🎯 Why use it?
45
-
46
- Setting up a frontend project from scratch usually means repeating the same stuff every time:
47
-
48
- - webpack config
49
- - TypeScript config
50
- - style handling
51
- - routing
52
- - linters
53
- - folder structure
54
- - project generators
55
-
56
- This starter removes that boilerplate so you can get straight to building.
57
-
58
- ## ⚡ Generated project helpers
59
-
60
- Some optional features also add local project generators to the scaffolded app.
61
-
62
- ### Page generator
63
-
64
- When `React Router DOM` is enabled, the project includes a built-in page generator.
65
-
66
- ```bash
67
- npm run generate:page about
68
- ```
69
- This will create:
70
-
71
- * `src/pages/about/index.ts`
72
- * `src/pages/about/lazy.ts`
73
- * `src/pages/about/page.tsx`
74
-
75
- If the standard router files are present, the generator will also register the page automatically in:
76
-
77
- * `src/app/providers/router/types/index.ts`
78
- * `src/app/providers/router/model/config/index.ts`
79
- * `src/app/providers/router/model/router/index.tsx`
80
-
81
- If prerender is enabled, the generator also configure the new route for it automatically.
82
-
83
- You can customize generator targets inside `scripts/generate/page.mjs`:
84
- * `ROUTER_TYPES_PATH`
85
- * `ROUTER_CONFIG_PATH`
86
- * `ROUTER_FILE_PATH`
87
- * `PRERENDER_ROUTES_PATH`
88
-
89
- **Please note,** that route auto-registration relies on special marker comments `@route-...` & `@prerender-...` inside the router files.
90
- Do not remove these markers unless you want to disable automatic updates!
91
-
92
- ## 🌟 Prerender
93
-
94
- When `Prerender` is enabled, the generated project gets a postbuild prerender step powered by [Puppeteer](https://pptr.dev/).
95
-
96
- Files:
97
-
98
- * `prerender.routes.mjs`
99
- * `scripts/prerender.mjs`
100
-
101
- Example `prerender.routes.mjs`:
102
- ```javascript
103
- export default async function getPrerenderRoutes() {
104
- return [
105
- '/',
106
- '/about',
107
- // @prerender-routes
108
- ];
109
- }
110
- ```
111
- _Useful commands inside the generated project:_
112
-
113
- ```bash
114
- # Builds webpack assets only
115
- npm run build:assets
116
-
117
- # Renders configured routes into static HTML
118
- npm run prerender
119
-
120
- # Runs build:assets && prerender
121
- npm run build
122
- ```
123
-
124
- ## 📦 Requirements
125
-
126
- - **Node.js** `18.18` or higher
127
- - **npm**, **pnpm**, or **yarn**
128
-
129
- ## 🔥 Quick start
130
-
131
- Create a new app interactively:
132
-
133
- ```bash
134
- npm create alistt69-kit@latest
135
- ```
136
-
137
- Follow the prompts — or skip them entirely:
138
-
139
- ```bash
140
- npm create alistt69-kit@latest my-app -- --defaults
141
- ```
142
-
143
- ## 🛠️ Usage examples
144
-
145
- ```bash
146
- # Interactive setup
147
- npm create alistt69-kit@latest my-app
148
-
149
- # All defaults, no prompts
150
- npm create alistt69-kit@latest my-app -- --defaults
151
-
152
- # Skip dependency installation
153
- npm create alistt69-kit@latest my-app -- --no-install
154
-
155
- # Enable only selected features
156
- npm create alistt69-kit@latest my-app -- --features=eslint,react-router
157
-
158
- # Enable all optional features
159
- npm create alistt69-kit@latest my-app -- --features=all
160
-
161
- # Use pnpm as package manager
162
- npm create alistt69-kit@latest my-app -- --pm pnpm
163
-
164
- # Overwrite existing directory
165
- npm create alistt69-kit@latest my-app -- --defaults --overwrite
166
- ```
167
-
168
- ## ⚙️ CLI options
169
-
170
- | Option | Alias | Description |
171
- |---------------------|--------|-------------|
172
- | `--defaults` | `-def` | Skip prompts, use defaults |
173
- | `--overwrite` | — | Overwrite target directory if it exists |
174
- | `--no-install` | — | Skip dependency installation |
175
- | `--features <list>` | — | Enable specific features (`agents-md`, `eslint`, `stylelint`, `autoprefixer`, `react-router`, `prerender`) |
176
- | `--pm <name>` | — | Choose package manager (`npm`, `pnpm`, `yarn`) |
177
- | `--help` | `-h` | Show help |
178
-
179
- ## 🧪 Default behavior
180
-
181
- - All features are enabled by default
182
- - Package manager: `npm` (can be overridden with `--pm`)
183
- - Dependencies are installed automatically (skip with `--no-install`)
184
-
185
- ## 📄 License
186
-
187
- MIT — free and open for everyone.
188
-
189
- _See [LICENSE](./LICENSE)._
1
+ <table width="100%">
2
+ <tr>
3
+ <td width="190" align="center">
4
+ <img src="assets/alistt69-packages-logo.svg" alt="Logo" width="170" height="170" style="margin-top: 50px;" />
5
+ </td>
6
+ <td>
7
+ <h1>@alistt69/create-kit</h1>
8
+
9
+ > **One command. Zero config fatigue.**
10
+ > Bootstrap a **React + TypeScript + Webpack** app with a solid starter setup and optional tooling you can enable when you need it.
11
+
12
+ [![npm version](https://img.shields.io/npm/v/create-alistt69-kit.svg)](https://www.npmjs.com/package/create-alistt69-kit)
13
+ [![Node.js Version](https://img.shields.io/badge/node-%3E%3D18.18-brightgreen)](https://nodejs.org/)
14
+ [![npm downloads](https://img.shields.io/npm/dm/create-alistt69-kit.svg)](https://www.npmjs.com/package/create-alistt69-kit)
15
+ [![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](./LICENSE)
16
+ [![CI](https://github.com/alistt69/create-kit/actions/workflows/ci.yml/badge.svg)](https://github.com/alistt69/create-kit/actions/workflows/ci.yml)
17
+ </td>
18
+ </tr>
19
+ </table>
20
+
21
+ ## ✨ Overview
22
+
23
+ `create-alistt69-kit` is a project scaffolding tool for quickly creating a modern frontend app without burning time on repetitive setup.
24
+
25
+ It generates a ready-to-run **React + TypeScript + Webpack** starter with a practical baseline and optional extras you can turn on when needed.
26
+
27
+ ## 🔧 What’s inside
28
+
29
+ | Tool | Purpose | Included |
30
+ |------|----------------------------------|----------|
31
+ | [React](https://react.dev/) | Web framework | Default |
32
+ | [TypeScript](https://www.typescriptlang.org/) | Static typing | Default |
33
+ | [Webpack](https://webpack.js.org/) | Bundling and build pipeline | Default |
34
+ | [SCSS Modules](https://github.com/css-modules/css-modules) | Scoped styling | Default |
35
+ | [SVGR](https://react-svgr.com/) | Import SVGs as React components | Default |
36
+ | [Webpack Bundle Analyzer](https://github.com/webpack-contrib/webpack-bundle-analyzer) | Bundle size inspection | Default |
37
+ | [ESLint](https://eslint.org/) + [eslint-stylistic](https://eslint.style/) | Code quality and stylistic rules | Optional |
38
+ | [Stylelint](https://stylelint.io/) | Stylesheet linting | Optional |
39
+ | [Autoprefixer](https://github.com/postcss/autoprefixer) | Automatic CSS vendor prefixes | Optional |
40
+ | [React Router](https://reactrouter.com/) | Client-side routing | Optional |
41
+ | [AGENTS.md](https://agents.md/) | Root instructions file for AI coding agents | Optional |
42
+ | [Puppeteer](https://pptr.dev/) + [serve-handler](https://github.com/vercel/serve-handler) | Static HTML prerender after production build | Optional |
43
+
44
+ ## 🎯 Why use it?
45
+
46
+ Setting up a frontend project from scratch usually means repeating the same stuff every time:
47
+
48
+ - webpack config
49
+ - TypeScript config
50
+ - style handling
51
+ - routing
52
+ - linters
53
+ - folder structure
54
+ - project generators
55
+
56
+ This starter removes that boilerplate so you can get straight to building.
57
+
58
+ ## ⚡ Generated project helpers
59
+
60
+ Some optional features also add local project generators to the scaffolded app.
61
+
62
+ ### Page generator
63
+
64
+ When `React Router DOM` is enabled, the project includes a built-in page generator.
65
+
66
+ ```bash
67
+ npm run generate:page about
68
+ ```
69
+ This will create:
70
+
71
+ * `src/pages/about/index.ts`
72
+ * `src/pages/about/lazy.ts`
73
+ * `src/pages/about/page.tsx`
74
+
75
+ If the standard router files are present, the generator will also register the page automatically in:
76
+
77
+ * `src/app/providers/router/types/index.ts`
78
+ * `src/app/providers/router/model/config/index.ts`
79
+ * `src/app/providers/router/model/router/index.tsx`
80
+
81
+ If prerender is enabled, the generator also configure the new route for it automatically.
82
+
83
+ You can customize generator targets inside `scripts/generate/page.mjs`:
84
+ * `ROUTER_TYPES_PATH`
85
+ * `ROUTER_CONFIG_PATH`
86
+ * `ROUTER_FILE_PATH`
87
+ * `PRERENDER_ROUTES_PATH`
88
+
89
+ **Please note,** that route auto-registration relies on special marker comments `@route-...` & `@prerender-...` inside the router files.
90
+ Do not remove these markers unless you want to disable automatic updates!
91
+
92
+ ## 🌟 Prerender
93
+
94
+ When `Prerender` is enabled, the generated project gets a postbuild prerender step powered by [Puppeteer](https://pptr.dev/).
95
+
96
+ Files:
97
+
98
+ * `prerender.routes.mjs`
99
+ * `scripts/prerender.mjs`
100
+
101
+ Example `prerender.routes.mjs`:
102
+ ```javascript
103
+ export default async function getPrerenderRoutes() {
104
+ return [
105
+ '/',
106
+ '/about',
107
+ // @prerender-routes
108
+ ];
109
+ }
110
+ ```
111
+ _Useful commands inside the generated project:_
112
+
113
+ ```bash
114
+ # Builds webpack assets only
115
+ npm run build:assets
116
+
117
+ # Renders configured routes into static HTML
118
+ npm run prerender
119
+
120
+ # Runs build:assets && prerender
121
+ npm run build
122
+ ```
123
+
124
+ ## 📦 Requirements
125
+
126
+ - **Node.js** `18.18` or higher
127
+ - **npm**, **pnpm**, or **yarn**
128
+
129
+ ## 🔥 Quick start
130
+
131
+ Create a new app interactively:
132
+
133
+ ```bash
134
+ npm create alistt69-kit@latest
135
+ ```
136
+
137
+ Follow the prompts — or skip them entirely:
138
+
139
+ ```bash
140
+ npm create alistt69-kit@latest my-app -- --defaults
141
+ ```
142
+
143
+ ## 🛠️ Usage examples
144
+
145
+ ```bash
146
+ # Interactive setup
147
+ npm create alistt69-kit@latest my-app
148
+
149
+ # All defaults, no prompts
150
+ npm create alistt69-kit@latest my-app -- --defaults
151
+
152
+ # Skip dependency installation
153
+ npm create alistt69-kit@latest my-app -- --no-install
154
+
155
+ # Enable only selected features
156
+ npm create alistt69-kit@latest my-app -- --features=eslint,react-router
157
+
158
+ # Enable all optional features
159
+ npm create alistt69-kit@latest my-app -- --features=all
160
+
161
+ # Use pnpm as package manager
162
+ npm create alistt69-kit@latest my-app -- --pm pnpm
163
+
164
+ # Overwrite existing directory
165
+ npm create alistt69-kit@latest my-app -- --defaults --overwrite
166
+ ```
167
+
168
+ ## ⚙️ CLI options
169
+
170
+ | Option | Alias | Description |
171
+ |---------------------|--------|-------------|
172
+ | `--defaults` | `-def` | Skip prompts, use defaults |
173
+ | `--overwrite` | — | Overwrite target directory if it exists |
174
+ | `--no-install` | — | Skip dependency installation |
175
+ | `--features <list>` | — | Enable specific features (`agents-md`, `eslint`, `stylelint`, `autoprefixer`, `react-router`, `prerender`) |
176
+ | `--pm <name>` | — | Choose package manager (`npm`, `pnpm`, `yarn`) |
177
+ | `--help` | `-h` | Show help |
178
+
179
+ ## 🧪 Default behavior
180
+
181
+ - All features are enabled by default
182
+ - Package manager: `npm` (can be overridden with `--pm`)
183
+ - Dependencies are installed automatically (skip with `--no-install`)
184
+
185
+ ## 📄 License
186
+
187
+ MIT — free and open for everyone.
188
+
189
+ _See [LICENSE](./LICENSE)._
package/bin/index.js CHANGED
@@ -1,25 +1,25 @@
1
- #!/usr/bin/env node
2
-
3
- import { cancel } from '@clack/prompts';
4
- import process from 'node:process';
5
- import { createProject } from '../src/core/create-project.js';
6
- import { formatHelpMessage, parseCliArgs } from '../src/core/parse-cli-args.js';
7
-
8
- try {
9
- const cliArgs = parseCliArgs(process.argv.slice(2));
10
-
11
- if (cliArgs.showHelp) {
12
- console.log(formatHelpMessage());
13
- process.exit(0);
14
- }
15
-
16
- await createProject(cliArgs);
17
- } catch (error) {
18
- cancel(
19
- error instanceof Error
20
- ? `Failed to create project: ${error.message}`
21
- : 'Failed to create project',
22
- );
23
-
24
- process.exitCode = 1;
1
+ #!/usr/bin/env node
2
+
3
+ import { cancel } from '@clack/prompts';
4
+ import process from 'node:process';
5
+ import { createProject } from '../src/core/create-project.js';
6
+ import { formatHelpMessage, parseCliArgs } from '../src/core/parse-cli-args.js';
7
+
8
+ try {
9
+ const cliArgs = parseCliArgs(process.argv.slice(2));
10
+
11
+ if (cliArgs.showHelp) {
12
+ console.log(formatHelpMessage());
13
+ process.exit(0);
14
+ }
15
+
16
+ await createProject(cliArgs);
17
+ } catch (error) {
18
+ cancel(
19
+ error instanceof Error
20
+ ? `Failed to create project: ${error.message}`
21
+ : 'Failed to create project',
22
+ );
23
+
24
+ process.exitCode = 1;
25
25
  }
package/package.json CHANGED
@@ -1,44 +1,44 @@
1
- {
2
- "name": "create-alistt69-kit",
3
- "version": "0.3.5",
4
- "description": "Opinionated React + TypeScript + Webpack project generator by alistt69",
5
- "keywords": [
6
- "create",
7
- "cli",
8
- "scaffold",
9
- "generator",
10
- "react",
11
- "typescript",
12
- "webpack"
13
- ],
14
- "homepage": "https://github.com/alistt69/create-alistt69-kit#readme",
15
- "bugs": {
16
- "url": "https://github.com/alistt69/create-alistt69-kit/issues"
17
- },
18
- "repository": {
19
- "type": "git",
20
- "url": "git+https://github.com/alistt69/create-alistt69-kit.git"
21
- },
22
- "license": "MIT",
23
- "author": "alistt69",
24
- "type": "module",
25
- "bin": {
26
- "create-alistt69-kit": "bin/index.js"
27
- },
28
- "files": [
29
- "bin",
30
- "src",
31
- "README.md",
32
- "LICENSE"
33
- ],
34
- "scripts": {
35
- "dev": "node ./bin/index.js",
36
- "smoke": "node ./scripts/smoke/index.mjs"
37
- },
38
- "engines": {
39
- "node": ">=18.18.0"
40
- },
41
- "dependencies": {
42
- "@clack/prompts": "^0.10.1"
43
- }
44
- }
1
+ {
2
+ "name": "create-alistt69-kit",
3
+ "version": "0.3.6",
4
+ "description": "Opinionated React + TypeScript + Webpack project generator by alistt69",
5
+ "keywords": [
6
+ "create",
7
+ "cli",
8
+ "scaffold",
9
+ "generator",
10
+ "react",
11
+ "typescript",
12
+ "webpack"
13
+ ],
14
+ "homepage": "https://github.com/alistt69/create-kit#readme",
15
+ "bugs": {
16
+ "url": "https://github.com/alistt69/create-kit/issues"
17
+ },
18
+ "repository": {
19
+ "type": "git",
20
+ "url": "git+https://github.com/alistt69/create-kit.git"
21
+ },
22
+ "license": "MIT",
23
+ "author": "alistt69",
24
+ "type": "module",
25
+ "bin": {
26
+ "create-alistt69-kit": "bin/index.js"
27
+ },
28
+ "files": [
29
+ "bin",
30
+ "src",
31
+ "README.md",
32
+ "LICENSE"
33
+ ],
34
+ "scripts": {
35
+ "dev": "node ./bin/index.js",
36
+ "smoke": "node ./scripts/smoke/index.mjs"
37
+ },
38
+ "engines": {
39
+ "node": ">=18.18.0"
40
+ },
41
+ "dependencies": {
42
+ "@clack/prompts": "^0.10.1"
43
+ }
44
+ }
@@ -1,15 +1,15 @@
1
- import { featuresById } from '../features/index.js';
2
-
3
- export async function applyFeatures({ projectPath, selectedFeatureIds }) {
4
- for (const featureId of selectedFeatureIds) {
5
- const feature = featuresById.get(featureId);
6
-
7
- if (!feature) {
8
- throw new Error(`Unknown feature: ${featureId}`);
9
- }
10
-
11
- await feature.applyFeature({
12
- projectPath,
13
- });
14
- }
1
+ import { featuresById } from '../features/index.js';
2
+
3
+ export async function applyFeatures({ projectPath, selectedFeatureIds }) {
4
+ for (const featureId of selectedFeatureIds) {
5
+ const feature = featuresById.get(featureId);
6
+
7
+ if (!feature) {
8
+ throw new Error(`Unknown feature: ${featureId}`);
9
+ }
10
+
11
+ await feature.applyFeature({
12
+ projectPath,
13
+ });
14
+ }
15
15
  }