@dasidev/dasi-ui 1.0.13 ā 1.0.14
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/bin/dasi-cli.cjs +24 -15
- package/package.json +1 -1
- package/template/tsconfig.app.json +28 -0
- package/template/tsconfig.node.json +19 -0
- package/template/tsconfig.vitest.json +11 -0
package/bin/dasi-cli.cjs
CHANGED
|
@@ -10,7 +10,7 @@ const { execSync } = require('child_process');
|
|
|
10
10
|
program
|
|
11
11
|
.name('dasi-ui')
|
|
12
12
|
.description('š DASI UI - Admin Dashboard Template')
|
|
13
|
-
.version('1.0.
|
|
13
|
+
.version('1.0.14');
|
|
14
14
|
|
|
15
15
|
program
|
|
16
16
|
.command('create [project-name]')
|
|
@@ -161,8 +161,14 @@ program
|
|
|
161
161
|
|
|
162
162
|
clearInterval(copyInterval);
|
|
163
163
|
|
|
164
|
-
// šÆ Step 3: Configuration updates with
|
|
164
|
+
// šÆ Step 3: Configuration updates with continuous animation
|
|
165
165
|
spinner.text = 'āļø Updating configuration...';
|
|
166
|
+
|
|
167
|
+
// Keep spinner active during configuration
|
|
168
|
+
const configInterval = setInterval(() => {
|
|
169
|
+
spinner.render();
|
|
170
|
+
}, 100);
|
|
171
|
+
|
|
166
172
|
await new Promise(resolve => setTimeout(resolve, 500));
|
|
167
173
|
|
|
168
174
|
const templatePackageJsonPath = path.join(projectPath, 'package.json.template');
|
|
@@ -198,15 +204,19 @@ VITE_DARK_MODE=${answers.darkMode}`;
|
|
|
198
204
|
await fs.writeFile(path.join(projectPath, '.env.example'), envContent);
|
|
199
205
|
await fs.copyFile(path.join(projectPath, '.env.example'), path.join(projectPath, '.env'));
|
|
200
206
|
|
|
207
|
+
clearInterval(configInterval);
|
|
208
|
+
|
|
201
209
|
// šÆ Step 4: Git initialization with continuous animation
|
|
202
210
|
if (answers.gitInit) {
|
|
203
211
|
spinner.text = 'š Initializing git repository...';
|
|
212
|
+
|
|
213
|
+
// Keep spinner active during git operations
|
|
214
|
+
const gitInterval = setInterval(() => {
|
|
215
|
+
spinner.render();
|
|
216
|
+
}, 100);
|
|
217
|
+
|
|
204
218
|
await new Promise(resolve => setTimeout(resolve, 500));
|
|
205
219
|
try {
|
|
206
|
-
// Set git config untuk menghindari prompt
|
|
207
|
-
execSync('git config user.name "DASI Developer"', { cwd: projectPath, stdio: 'ignore' });
|
|
208
|
-
execSync('git config user.email "dev@dasi.id"', { cwd: projectPath, stdio: 'ignore' });
|
|
209
|
-
|
|
210
220
|
execSync('git init', { cwd: projectPath, stdio: 'ignore' });
|
|
211
221
|
|
|
212
222
|
spinner.text = 'š Adding files to git...';
|
|
@@ -216,11 +226,6 @@ VITE_DARK_MODE=${answers.darkMode}`;
|
|
|
216
226
|
spinner.text = 'š¾ Creating initial commit...';
|
|
217
227
|
await new Promise(resolve => setTimeout(resolve, 400));
|
|
218
228
|
|
|
219
|
-
// šÆ Keep spinner active during git commit
|
|
220
|
-
const gitInterval = setInterval(() => {
|
|
221
|
-
spinner.render();
|
|
222
|
-
}, 100);
|
|
223
|
-
|
|
224
229
|
try {
|
|
225
230
|
execSync('git commit -m "š Initial commit: DASI UI Admin Template"', {
|
|
226
231
|
cwd: projectPath,
|
|
@@ -231,12 +236,12 @@ VITE_DARK_MODE=${answers.darkMode}`;
|
|
|
231
236
|
console.log(chalk.yellow('\nā ļø Git commit skipped, continuing...'));
|
|
232
237
|
}
|
|
233
238
|
|
|
234
|
-
clearInterval(gitInterval);
|
|
235
|
-
|
|
236
239
|
} catch (error) {
|
|
237
240
|
console.log(chalk.yellow('\nā ļø Git initialization failed, continuing...'));
|
|
238
241
|
spinner.start();
|
|
239
242
|
}
|
|
243
|
+
|
|
244
|
+
clearInterval(gitInterval);
|
|
240
245
|
}
|
|
241
246
|
|
|
242
247
|
// šÆ Step 5: Install dependencies with continuous spinner
|
|
@@ -244,7 +249,7 @@ VITE_DARK_MODE=${answers.darkMode}`;
|
|
|
244
249
|
spinner.text = 'š¦ Installing dependencies...';
|
|
245
250
|
spinner.color = 'yellow';
|
|
246
251
|
|
|
247
|
-
//
|
|
252
|
+
// Keep spinner active during npm install
|
|
248
253
|
const installInterval = setInterval(() => {
|
|
249
254
|
spinner.render();
|
|
250
255
|
}, 100);
|
|
@@ -264,7 +269,11 @@ VITE_DARK_MODE=${answers.darkMode}`;
|
|
|
264
269
|
clearInterval(installInterval);
|
|
265
270
|
}
|
|
266
271
|
|
|
267
|
-
// šÆ
|
|
272
|
+
// šÆ Final celebration with animation
|
|
273
|
+
spinner.text = 'š Finalizing setup...';
|
|
274
|
+
spinner.color = 'green';
|
|
275
|
+
await new Promise(resolve => setTimeout(resolve, 500));
|
|
276
|
+
|
|
268
277
|
spinner.succeed('ā
Admin dashboard created successfully!');
|
|
269
278
|
|
|
270
279
|
console.log(chalk.green(`
|
package/package.json
CHANGED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
{
|
|
2
|
+
"extends": "@vue/tsconfig/tsconfig.dom.json",
|
|
3
|
+
"include": [
|
|
4
|
+
"env.d.ts",
|
|
5
|
+
"src/**/*",
|
|
6
|
+
"src/**/*.vue",
|
|
7
|
+
"src/**/*.ts",
|
|
8
|
+
],
|
|
9
|
+
"exclude": [
|
|
10
|
+
"src/**/__tests__/*"
|
|
11
|
+
],
|
|
12
|
+
"compilerOptions": {
|
|
13
|
+
"target": "ESNext",
|
|
14
|
+
"module": "ESNext",
|
|
15
|
+
"strict": true,
|
|
16
|
+
"composite": true,
|
|
17
|
+
"allowJs": true,
|
|
18
|
+
"moduleResolution": "node",
|
|
19
|
+
"skipLibCheck": true,
|
|
20
|
+
"tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo",
|
|
21
|
+
"baseUrl": ".",
|
|
22
|
+
"paths": {
|
|
23
|
+
"@/*": [
|
|
24
|
+
"./src/*"
|
|
25
|
+
]
|
|
26
|
+
},
|
|
27
|
+
}
|
|
28
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
{
|
|
2
|
+
"extends": "@tsconfig/node20/tsconfig.json",
|
|
3
|
+
"include": [
|
|
4
|
+
"vite.config.*",
|
|
5
|
+
"vitest.config.*",
|
|
6
|
+
"cypress.config.*",
|
|
7
|
+
"nightwatch.conf.*",
|
|
8
|
+
"playwright.config.*"
|
|
9
|
+
],
|
|
10
|
+
"compilerOptions": {
|
|
11
|
+
"composite": true,
|
|
12
|
+
"noEmit": true,
|
|
13
|
+
"tsBuildInfoFile": "./node_modules/.tmp/tsconfig.node.tsbuildinfo",
|
|
14
|
+
|
|
15
|
+
"module": "ESNext",
|
|
16
|
+
"moduleResolution": "Bundler",
|
|
17
|
+
"types": ["node"]
|
|
18
|
+
}
|
|
19
|
+
}
|