setup.js 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. #!/usr/bin/env node
  2. /* eslint-disable @typescript-eslint/no-require-imports */
  3. const fs = require("fs");
  4. const path = require("path");
  5. const targetDir = process.cwd();
  6. const sourceDir = path.resolve(__dirname, "..");
  7. console.log("NCore UI Kit Environment Setup Tool");
  8. console.log("=====================================");
  9. console.log(`Hedef Proje Dizini: ${targetDir}`);
  10. console.log("");
  11. // 1. .vscode/settings.json
  12. const sourceVscodeDir = path.join(sourceDir, ".vscode");
  13. const targetVscodeDir = path.join(targetDir, ".vscode");
  14. if (fs.existsSync(sourceVscodeDir)) {
  15. if (!fs.existsSync(targetVscodeDir)) {
  16. fs.mkdirSync(targetVscodeDir, {
  17. recursive: true
  18. });
  19. }
  20. const sourceSettings = path.join(sourceVscodeDir, "settings.json");
  21. const targetSettings = path.join(targetVscodeDir, "settings.json");
  22. if (fs.existsSync(sourceSettings)) {
  23. fs.copyFileSync(sourceSettings, targetSettings);
  24. console.log("✅ .vscode/settings.json kopyalandı.");
  25. }
  26. }
  27. // 2. eslint.config.mjs
  28. const sourceEslint = path.join(sourceDir, "eslint.config.mjs");
  29. const targetEslint = path.join(targetDir, "eslint.config.mjs");
  30. if (fs.existsSync(sourceEslint)) {
  31. fs.copyFileSync(sourceEslint, targetEslint);
  32. console.log("✅ eslint.config.mjs kopyalandı.");
  33. }
  34. // 3. eslint-local-rules
  35. const sourceLocalRules = path.join(sourceDir, "eslint-local-rules");
  36. const targetLocalRules = path.join(targetDir, "eslint-local-rules");
  37. if (fs.existsSync(sourceLocalRules)) {
  38. if (!fs.existsSync(targetLocalRules)) {
  39. fs.mkdirSync(targetLocalRules, {
  40. recursive: true
  41. });
  42. }
  43. // Copy all files in the directory
  44. const files = fs.readdirSync(sourceLocalRules);
  45. files.forEach(file => {
  46. const sourceFile = path.join(sourceLocalRules, file);
  47. const targetFile = path.join(targetLocalRules, file);
  48. if (fs.lstatSync(sourceFile).isFile()) {
  49. fs.copyFileSync(sourceFile, targetFile);
  50. }
  51. });
  52. console.log("✅ eslint-local-rules/ kopyalandı.");
  53. }
  54. // 4. tsconfig.json
  55. const sourceTsconfig = path.join(sourceDir, "tsconfig.json");
  56. const targetTsconfig = path.join(targetDir, "tsconfig.json");
  57. if (fs.existsSync(sourceTsconfig)) {
  58. fs.copyFileSync(sourceTsconfig, targetTsconfig);
  59. console.log("✅ tsconfig.json kopyalandı.");
  60. }
  61. console.log("");
  62. console.log("Kurulum tamamlandı! Lütfen package.json'ınızda aşağıdaki eklentilerin kurulu olduğundan emin olun:");
  63. console.log("- typescript-eslint");
  64. console.log("- eslint-plugin-local-rules");
  65. console.log("- jsonc-eslint-parser vb.");
  66. console.log("NCore standartlarıyla iyi kodlamalar dileriz!");