create-prisma-php-app 3.3.2 → 3.3.3
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/dist/index.js +98 -35
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -7,7 +7,11 @@ import{execSync,spawnSync}from"child_process";import fs from"fs";import{fileURLT
|
|
|
7
7
|
* @param {boolean} [isDev=false] - Whether to install the dependencies as devDependencies.
|
|
8
8
|
*/
|
|
9
9
|
async function installNpmDependencies(baseDir, dependencies, isDev = false) {
|
|
10
|
-
|
|
10
|
+
if (!fs.existsSync(path.join(baseDir, "package.json"))) {
|
|
11
|
+
console.log("Initializing new Node.js project...");
|
|
12
|
+
} else {
|
|
13
|
+
console.log("Updating existing Node.js project...");
|
|
14
|
+
}
|
|
11
15
|
// Initialize a package.json if it doesn't exist
|
|
12
16
|
if (!fs.existsSync(path.join(baseDir, "package.json"))) {
|
|
13
17
|
execSync("npm init -y", {
|
|
@@ -357,24 +361,57 @@ async function main() {
|
|
|
357
361
|
if (updateAnswer?.isUpdate) {
|
|
358
362
|
const updateUninstallNpmDependencies = [];
|
|
359
363
|
const updateUninstallComposerDependencies = [];
|
|
364
|
+
// Helper function to check if a composer package is installed
|
|
365
|
+
const isComposerPackageInstalled = (packageName) => {
|
|
366
|
+
try {
|
|
367
|
+
const composerJsonPath = path.join(projectPath, "composer.json");
|
|
368
|
+
if (fs.existsSync(composerJsonPath)) {
|
|
369
|
+
const composerJson = JSON.parse(
|
|
370
|
+
fs.readFileSync(composerJsonPath, "utf8")
|
|
371
|
+
);
|
|
372
|
+
return !!(
|
|
373
|
+
composerJson.require && composerJson.require[packageName]
|
|
374
|
+
);
|
|
375
|
+
}
|
|
376
|
+
return false;
|
|
377
|
+
} catch {
|
|
378
|
+
return false;
|
|
379
|
+
}
|
|
380
|
+
};
|
|
381
|
+
// Helper function to check if an npm package is installed
|
|
382
|
+
const isNpmPackageInstalled = (packageName) => {
|
|
383
|
+
try {
|
|
384
|
+
const packageJsonPath = path.join(projectPath, "package.json");
|
|
385
|
+
if (fs.existsSync(packageJsonPath)) {
|
|
386
|
+
const packageJson = JSON.parse(
|
|
387
|
+
fs.readFileSync(packageJsonPath, "utf8")
|
|
388
|
+
);
|
|
389
|
+
return !!(
|
|
390
|
+
(packageJson.dependencies &&
|
|
391
|
+
packageJson.dependencies[packageName]) ||
|
|
392
|
+
(packageJson.devDependencies &&
|
|
393
|
+
packageJson.devDependencies[packageName])
|
|
394
|
+
);
|
|
395
|
+
}
|
|
396
|
+
return false;
|
|
397
|
+
} catch {
|
|
398
|
+
return false;
|
|
399
|
+
}
|
|
400
|
+
};
|
|
360
401
|
if (updateAnswer.backendOnly) {
|
|
361
402
|
nonBackendFiles.forEach((file) => {
|
|
362
403
|
const filePath = path.join(projectPath, "src", "app", file);
|
|
363
404
|
if (fs.existsSync(filePath)) {
|
|
364
|
-
fs.unlinkSync(filePath);
|
|
405
|
+
fs.unlinkSync(filePath);
|
|
365
406
|
console.log(`${file} was deleted successfully.`);
|
|
366
|
-
} else {
|
|
367
|
-
console.log(`${file} does not exist.`);
|
|
368
407
|
}
|
|
369
408
|
});
|
|
370
409
|
const backendOnlyFolders = ["js", "css"];
|
|
371
410
|
backendOnlyFolders.forEach((folder) => {
|
|
372
411
|
const folderPath = path.join(projectPath, "src", "app", folder);
|
|
373
412
|
if (fs.existsSync(folderPath)) {
|
|
374
|
-
fs.rmSync(folderPath, { recursive: true, force: true });
|
|
413
|
+
fs.rmSync(folderPath, { recursive: true, force: true });
|
|
375
414
|
console.log(`${folder} was deleted successfully.`);
|
|
376
|
-
} else {
|
|
377
|
-
console.log(`${folder} does not exist.`);
|
|
378
415
|
}
|
|
379
416
|
});
|
|
380
417
|
}
|
|
@@ -386,44 +423,53 @@ async function main() {
|
|
|
386
423
|
"swagger-docs"
|
|
387
424
|
);
|
|
388
425
|
if (fs.existsSync(swaggerDocsFolder)) {
|
|
389
|
-
fs.rmSync(swaggerDocsFolder, { recursive: true, force: true });
|
|
426
|
+
fs.rmSync(swaggerDocsFolder, { recursive: true, force: true });
|
|
390
427
|
console.log(`swagger-docs was deleted successfully.`);
|
|
391
428
|
}
|
|
392
429
|
const swaggerFiles = ["swagger-config.ts"];
|
|
393
430
|
swaggerFiles.forEach((file) => {
|
|
394
431
|
const filePath = path.join(projectPath, "settings", file);
|
|
395
432
|
if (fs.existsSync(filePath)) {
|
|
396
|
-
fs.unlinkSync(filePath);
|
|
433
|
+
fs.unlinkSync(filePath);
|
|
397
434
|
console.log(`${file} was deleted successfully.`);
|
|
398
|
-
} else {
|
|
399
|
-
console.log(`${file} does not exist.`);
|
|
400
435
|
}
|
|
401
436
|
});
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
"
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
437
|
+
// Only add to uninstall list if packages are actually installed
|
|
438
|
+
if (isNpmPackageInstalled("swagger-jsdoc")) {
|
|
439
|
+
updateUninstallNpmDependencies.push("swagger-jsdoc");
|
|
440
|
+
}
|
|
441
|
+
if (isNpmPackageInstalled("@types/swagger-jsdoc")) {
|
|
442
|
+
updateUninstallNpmDependencies.push("@types/swagger-jsdoc");
|
|
443
|
+
}
|
|
444
|
+
if (isNpmPackageInstalled("prompts")) {
|
|
445
|
+
updateUninstallNpmDependencies.push("prompts");
|
|
446
|
+
}
|
|
447
|
+
if (isNpmPackageInstalled("@types/prompts")) {
|
|
448
|
+
updateUninstallNpmDependencies.push("@types/prompts");
|
|
449
|
+
}
|
|
408
450
|
}
|
|
409
451
|
if (!updateAnswer.tailwindcss) {
|
|
410
452
|
const tailwindFiles = ["postcss.config.js"];
|
|
411
453
|
tailwindFiles.forEach((file) => {
|
|
412
454
|
const filePath = path.join(projectPath, file);
|
|
413
455
|
if (fs.existsSync(filePath)) {
|
|
414
|
-
fs.unlinkSync(filePath);
|
|
456
|
+
fs.unlinkSync(filePath);
|
|
415
457
|
console.log(`${file} was deleted successfully.`);
|
|
416
|
-
} else {
|
|
417
|
-
console.log(`${file} does not exist.`);
|
|
418
458
|
}
|
|
419
459
|
});
|
|
420
|
-
|
|
460
|
+
// Only add to uninstall list if packages are actually installed
|
|
461
|
+
const tailwindPackages = [
|
|
421
462
|
"tailwindcss",
|
|
422
463
|
"postcss",
|
|
423
464
|
"postcss-cli",
|
|
424
465
|
"@tailwindcss/postcss",
|
|
425
|
-
"cssnano"
|
|
426
|
-
|
|
466
|
+
"cssnano",
|
|
467
|
+
];
|
|
468
|
+
tailwindPackages.forEach((pkg) => {
|
|
469
|
+
if (isNpmPackageInstalled(pkg)) {
|
|
470
|
+
updateUninstallNpmDependencies.push(pkg);
|
|
471
|
+
}
|
|
472
|
+
});
|
|
427
473
|
}
|
|
428
474
|
if (!updateAnswer.websocket) {
|
|
429
475
|
const websocketFiles = [
|
|
@@ -433,10 +479,8 @@ async function main() {
|
|
|
433
479
|
websocketFiles.forEach((file) => {
|
|
434
480
|
const filePath = path.join(projectPath, "settings", file);
|
|
435
481
|
if (fs.existsSync(filePath)) {
|
|
436
|
-
fs.unlinkSync(filePath);
|
|
482
|
+
fs.unlinkSync(filePath);
|
|
437
483
|
console.log(`${file} was deleted successfully.`);
|
|
438
|
-
} else {
|
|
439
|
-
console.log(`${file} does not exist.`);
|
|
440
484
|
}
|
|
441
485
|
});
|
|
442
486
|
const websocketFolder = path.join(
|
|
@@ -446,18 +490,28 @@ async function main() {
|
|
|
446
490
|
"Websocket"
|
|
447
491
|
);
|
|
448
492
|
if (fs.existsSync(websocketFolder)) {
|
|
449
|
-
fs.rmSync(websocketFolder, { recursive: true, force: true });
|
|
493
|
+
fs.rmSync(websocketFolder, { recursive: true, force: true });
|
|
450
494
|
console.log(`Websocket folder was deleted successfully.`);
|
|
451
495
|
}
|
|
452
|
-
|
|
453
|
-
|
|
496
|
+
// Only add to uninstall list if packages are actually installed
|
|
497
|
+
if (isNpmPackageInstalled("chokidar-cli")) {
|
|
498
|
+
updateUninstallNpmDependencies.push("chokidar-cli");
|
|
499
|
+
}
|
|
500
|
+
if (isComposerPackageInstalled("cboden/ratchet")) {
|
|
501
|
+
updateUninstallComposerDependencies.push("cboden/ratchet");
|
|
502
|
+
}
|
|
454
503
|
}
|
|
455
504
|
if (!updateAnswer.prisma) {
|
|
456
|
-
|
|
505
|
+
const prismaPackages = [
|
|
457
506
|
"prisma",
|
|
458
507
|
"@prisma/client",
|
|
459
|
-
"@prisma/internals"
|
|
460
|
-
|
|
508
|
+
"@prisma/internals",
|
|
509
|
+
];
|
|
510
|
+
prismaPackages.forEach((pkg) => {
|
|
511
|
+
if (isNpmPackageInstalled(pkg)) {
|
|
512
|
+
updateUninstallNpmDependencies.push(pkg);
|
|
513
|
+
}
|
|
514
|
+
});
|
|
461
515
|
}
|
|
462
516
|
if (!updateAnswer.docker) {
|
|
463
517
|
const dockerFiles = [
|
|
@@ -469,14 +523,18 @@ async function main() {
|
|
|
469
523
|
dockerFiles.forEach((file) => {
|
|
470
524
|
const filePath = path.join(projectPath, file);
|
|
471
525
|
if (fs.existsSync(filePath)) {
|
|
472
|
-
fs.unlinkSync(filePath);
|
|
526
|
+
fs.unlinkSync(filePath);
|
|
473
527
|
console.log(`${file} was deleted successfully.`);
|
|
474
|
-
} else {
|
|
475
|
-
console.log(`${file} does not exist.`);
|
|
476
528
|
}
|
|
477
529
|
});
|
|
478
530
|
}
|
|
531
|
+
// Only uninstall if there are packages to uninstall
|
|
479
532
|
if (updateUninstallNpmDependencies.length > 0) {
|
|
533
|
+
console.log(
|
|
534
|
+
`Uninstalling npm packages: ${updateUninstallNpmDependencies.join(
|
|
535
|
+
", "
|
|
536
|
+
)}`
|
|
537
|
+
);
|
|
480
538
|
await uninstallNpmDependencies(
|
|
481
539
|
projectPath,
|
|
482
540
|
updateUninstallNpmDependencies,
|
|
@@ -484,6 +542,11 @@ async function main() {
|
|
|
484
542
|
);
|
|
485
543
|
}
|
|
486
544
|
if (updateUninstallComposerDependencies.length > 0) {
|
|
545
|
+
console.log(
|
|
546
|
+
`Uninstalling composer packages: ${updateUninstallComposerDependencies.join(
|
|
547
|
+
", "
|
|
548
|
+
)}`
|
|
549
|
+
);
|
|
487
550
|
await uninstallComposerDependencies(
|
|
488
551
|
projectPath,
|
|
489
552
|
updateUninstallComposerDependencies
|