isaacscript 1.1.56 → 1.1.60

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 (77) hide show
  1. package/.cspell.json +1 -3
  2. package/.eslintrc.js +1 -15
  3. package/.vscode/extensions.json +1 -0
  4. package/.vscode/settings.json +4 -0
  5. package/dist/package.json +8 -6
  6. package/dist/src/checkForWindowsTerminalBugs.js +20 -52
  7. package/dist/src/checkForWindowsTerminalBugs.js.map +1 -1
  8. package/dist/src/commands/init/checkIfProjectPathExists.js +3 -7
  9. package/dist/src/commands/init/checkIfProjectPathExists.js.map +1 -1
  10. package/dist/src/commands/init/checkModTargetDirectory.js +3 -8
  11. package/dist/src/commands/init/checkModTargetDirectory.js.map +1 -1
  12. package/dist/src/commands/init/createMod.js +85 -11
  13. package/dist/src/commands/init/createMod.js.map +1 -1
  14. package/dist/src/commands/init/getModsDir.js +6 -13
  15. package/dist/src/commands/init/getModsDir.js.map +1 -1
  16. package/dist/src/commands/init/getProjectPath.js +4 -17
  17. package/dist/src/commands/init/getProjectPath.js.map +1 -1
  18. package/dist/src/commands/init/init.js +18 -15
  19. package/dist/src/commands/init/init.js.map +1 -1
  20. package/dist/src/commands/init/promptSaveSlot.js +4 -14
  21. package/dist/src/commands/init/promptSaveSlot.js.map +1 -1
  22. package/dist/src/commands/init/promptVSCode.js +3 -8
  23. package/dist/src/commands/init/promptVSCode.js.map +1 -1
  24. package/dist/src/commands/monitor/modDirectorySyncer/modDirectorySyncer.js +0 -1
  25. package/dist/src/commands/monitor/modDirectorySyncer/modDirectorySyncer.js.map +1 -1
  26. package/dist/src/commands/monitor/monitor.js +20 -9
  27. package/dist/src/commands/monitor/monitor.js.map +1 -1
  28. package/dist/src/commands/monitor/saveDatWriter/saveDatWriter.js +0 -1
  29. package/dist/src/commands/monitor/saveDatWriter/saveDatWriter.js.map +1 -1
  30. package/dist/src/commands/publish/publish.js +3 -3
  31. package/dist/src/constants.js +5 -1
  32. package/dist/src/constants.js.map +1 -1
  33. package/dist/src/main.js +2 -0
  34. package/dist/src/main.js.map +1 -1
  35. package/dist/src/monkeyPatch.js +2 -1
  36. package/dist/src/monkeyPatch.js.map +1 -1
  37. package/dist/src/parseArgs.js +62 -58
  38. package/dist/src/parseArgs.js.map +1 -1
  39. package/dist/src/plugins/addCrashDebugStatements.js +31 -0
  40. package/dist/src/plugins/addCrashDebugStatements.js.map +1 -0
  41. package/dist/src/prompt.js +90 -0
  42. package/dist/src/prompt.js.map +1 -0
  43. package/dist/src/types/GitHubCLIHostsYAML.js +3 -0
  44. package/dist/src/types/GitHubCLIHostsYAML.js.map +1 -0
  45. package/dist/src/util.js +6 -26
  46. package/dist/src/util.js.map +1 -1
  47. package/file-templates/dynamic/README.md +2 -2
  48. package/file-templates/dynamic/main.ts +4 -2
  49. package/file-templates/dynamic/metadata.xml +3 -3
  50. package/file-templates/dynamic/package.json +1 -1
  51. package/file-templates/static/.github/workflows/ci.yml +3 -0
  52. package/file-templates/static/.vscode/extensions.json +1 -0
  53. package/file-templates/static/.vscode/settings.json +4 -0
  54. package/file-templates/static/lint.sh +16 -9
  55. package/lint.sh +6 -10
  56. package/package.json +8 -6
  57. package/src/checkForWindowsTerminalBugs.ts +35 -73
  58. package/src/commands/init/checkIfProjectPathExists.ts +4 -7
  59. package/src/commands/init/checkModTargetDirectory.ts +7 -9
  60. package/src/commands/init/createMod.ts +132 -13
  61. package/src/commands/init/getModsDir.ts +8 -14
  62. package/src/commands/init/getProjectPath.ts +7 -19
  63. package/src/commands/init/init.ts +25 -13
  64. package/src/commands/init/promptSaveSlot.ts +6 -13
  65. package/src/commands/init/promptVSCode.ts +5 -9
  66. package/src/commands/monitor/modDirectorySyncer/modDirectorySyncer.ts +0 -2
  67. package/src/commands/monitor/monitor.ts +25 -10
  68. package/src/commands/monitor/saveDatWriter/saveDatWriter.ts +0 -2
  69. package/src/commands/publish/publish.ts +3 -3
  70. package/src/constants.ts +5 -0
  71. package/src/main.ts +2 -0
  72. package/src/monkeyPatch.ts +2 -1
  73. package/src/parseArgs.ts +34 -28
  74. package/src/plugins/addCrashDebugStatements.ts +29 -0
  75. package/src/prompt.ts +110 -0
  76. package/src/types/GitHubCLIHostsYAML.ts +7 -0
  77. package/src/util.ts +6 -28
package/.cspell.json CHANGED
@@ -1,13 +1,13 @@
1
1
  {
2
2
  "version": "0.2",
3
3
  "words": [
4
+ "APPDATA",
4
5
  "backticks",
5
6
  "btmills",
6
7
  "chcp",
7
8
  "chdir",
8
9
  "codium",
9
10
  "dbaeumer",
10
- "dryrun",
11
11
  "hkcu",
12
12
  "hkey",
13
13
  "isaacconfig",
@@ -17,10 +17,8 @@
17
17
  "luamod",
18
18
  "mingw",
19
19
  "nicalis",
20
- "onlyupload",
21
20
  "plusplus",
22
21
  "sarisia",
23
- "setversion",
24
22
  "Spritesheet",
25
23
  "Spritesheets",
26
24
  "steamapps",
package/.eslintrc.js CHANGED
@@ -20,19 +20,5 @@ module.exports = {
20
20
  },
21
21
 
22
22
  // We modify the linting rules from the base for some specific things
23
- // (listed in alphabetical order)
24
- rules: {
25
- // Documentation:
26
- // https://github.com/benmosher/eslint-plugin-import/blob/master/docs/rules/no-unused-modules.md
27
- // Not defined in parent configs
28
- // This helps to find dead code that should be deleted
29
- "import/no-unused-modules": [
30
- "error",
31
- {
32
- missingExports: true,
33
- unusedExports: true,
34
- ignoreExports: [".eslintrc.js", "src/main.ts"],
35
- },
36
- ],
37
- },
23
+ rules: {},
38
24
  };
@@ -3,6 +3,7 @@
3
3
  // https://go.microsoft.com/fwlink/?LinkId=827846
4
4
  {
5
5
  "recommendations": [
6
+ "esbenp.prettier-vscode", // The TypeScript formatter
6
7
  "dbaeumer.vscode-eslint", // The TypeScript linter
7
8
  "streetsidesoftware.code-spell-checker", // A spell-checker extension based on cspell
8
9
  ]
@@ -33,12 +33,16 @@
33
33
 
34
34
  // Automatically run the formatter when a JavaScript or TypeScript file is saved
35
35
  "[javascript]": {
36
+ "editor.defaultFormatter": "esbenp.prettier-vscode",
37
+ "editor.formatOnSave": true,
36
38
  "editor.codeActionsOnSave": [
37
39
  "source.fixAll.eslint",
38
40
  ],
39
41
  "editor.tabSize": 2,
40
42
  },
41
43
  "[typescript]": {
44
+ "editor.defaultFormatter": "esbenp.prettier-vscode",
45
+ "editor.formatOnSave": true,
42
46
  "editor.codeActionsOnSave": [
43
47
  "source.fixAll.eslint",
44
48
  ],
package/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "isaacscript",
3
- "version": "1.1.56",
3
+ "version": "1.1.60",
4
4
  "description": "A command line tool for managing Isaac mods written in TypeScript",
5
5
  "homepage": "https://isaacscript.github.io/",
6
6
  "bugs": {
@@ -23,24 +23,26 @@
23
23
  "fs-extra": "^10.0.0",
24
24
  "jsonc-parser": "^3.0.0",
25
25
  "moment": "^2.29.1",
26
- "npm-check-updates": "^12.0.2",
27
- "prompts": "^2.4.2",
26
+ "npm-check-updates": "^12.0.3",
27
+ "prompt": "^1.2.0",
28
+ "source-map": "^0.7.3",
28
29
  "source-map-support": "^0.5.21",
29
30
  "sync-directory": "^4.0.7",
30
31
  "typescript": "4.4.4",
31
32
  "typescript-to-lua": "1.1.1",
32
33
  "update-notifier": "^5.1.0",
34
+ "yaml": "^1.10.2",
33
35
  "yargs": "^17.3.0"
34
36
  },
35
37
  "devDependencies": {
36
38
  "@types/command-exists": "^1.2.0",
37
39
  "@types/figlet": "^1.5.4",
38
40
  "@types/fs-extra": "^9.0.13",
39
- "@types/node": "^16.11.11",
40
- "@types/prompts": "^2.0.14",
41
+ "@types/node": "^16.11.13",
42
+ "@types/prompt": "^1.1.2",
41
43
  "@types/source-map-support": "^0.5.4",
42
44
  "@types/update-notifier": "^5.1.0",
43
45
  "@types/yargs": "^17.0.7",
44
- "isaacscript-lint": "^1.0.72"
46
+ "isaacscript-lint": "^1.0.74"
45
47
  }
46
48
  }
@@ -25,17 +25,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
25
25
  exports.checkForWindowsTerminalBugs = void 0;
26
26
  const chalk_1 = __importDefault(require("chalk"));
27
27
  const fs_1 = __importDefault(require("fs"));
28
- const os_1 = __importDefault(require("os"));
29
28
  const path_1 = __importDefault(require("path"));
30
- const prompts_1 = __importDefault(require("prompts"));
29
+ const constants_1 = require("./constants");
31
30
  const file = __importStar(require("./file"));
31
+ const prompt_1 = require("./prompt");
32
32
  const util_1 = require("./util");
33
- // https://stackoverflow.com/questions/9080085/node-js-find-home-directory-in-platform-agnostic-way
34
- const homeDir = os_1.default.homedir();
35
- const BASH_PROFILE_PATH = path_1.default.join(homeDir, ".bash_profile");
36
- const WINDOWS_CODE_PAGE = "65001";
33
+ const BASH_PROFILE_PATH = path_1.default.join(constants_1.HOME_DIR, ".bash_profile");
37
34
  // By default, Git Bash for Windows uses MINGW64
38
- // This will not work correctly with the prompts library (or any other NodeJS input library)
35
+ // This will not work correctly with the inquirer library (or any other NodeJS input library)
39
36
  // Try to detect this and warn the end-user
40
37
  async function checkForWindowsTerminalBugs() {
41
38
  if (process.platform !== "win32") {
@@ -44,49 +41,18 @@ async function checkForWindowsTerminalBugs() {
44
41
  if (process.env.SHELL !== "C:\\Program Files\\Git\\usr\\bin\\bash.exe") {
45
42
  return;
46
43
  }
47
- await checkForCodePage();
48
44
  await checkForWindowsBugColor();
49
45
  }
50
46
  exports.checkForWindowsTerminalBugs = checkForWindowsTerminalBugs;
51
- async function checkForCodePage() {
52
- const chcpPath = "C:\\Windows\\System32\\chcp.com";
53
- const stdout = (0, util_1.execExe)(chcpPath).trim();
54
- // The output of "chcp" will be different depending on the language of the Windows installation,
55
- // so we only parse the final number
56
- const match = /(\d+)$/.exec(stdout);
57
- if (match === null) {
58
- (0, util_1.error)(`Failed to parse the results of "${chalk_1.default.green(chcpPath)}":`, stdout);
59
- }
60
- const activeCodePage = match[1].trim();
61
- if (activeCodePage === WINDOWS_CODE_PAGE) {
62
- return;
63
- }
64
- console.error(chalk_1.default.red(`Error: It looks like you are using Git Bash for Windows (MINGW64) with an incorrect code page of "${chalk_1.default.green(activeCodePage)}". (It should be equal to "${WINDOWS_CODE_PAGE}".)`));
65
- const response = await (0, prompts_1.default)({
66
- type: "confirm",
67
- name: "fixCodePage",
68
- message: 'Do you want me to fix this for you? (Type "y", then press "enter".)',
69
- initial: true,
70
- });
71
- if (response.fixCodePage === false) {
72
- (0, util_1.error)("Ok then. Good-bye.");
73
- }
74
- applyFixesToBashProfile();
75
- }
76
47
  async function checkForWindowsBugColor() {
77
48
  if (process.env.FORCE_COLOR === "true") {
78
49
  return;
79
50
  }
80
51
  console.error(chalk_1.default.red(`Error: It looks like you are using Git Bash for Windows (MINGW64) without the "${chalk_1.default.green("FORCE_COLOR")}" environment variable.`));
81
52
  console.error("This is necessary in order for colors to work properly in the terminal.");
82
- const response = await (0, prompts_1.default)({
83
- type: "confirm",
84
- name: "fixColors",
85
- message: 'Do you want me to fix this for you? (Type "y", then press "enter".)',
86
- initial: true,
87
- });
88
- if (response.fixColors === false) {
89
- (0, util_1.error)("Ok then. Good-bye.");
53
+ const shouldFixColors = await (0, prompt_1.getInputYesNo)("Do you want me to fix this for you?");
54
+ if (!shouldFixColors) {
55
+ return;
90
56
  }
91
57
  applyFixesToBashProfile();
92
58
  }
@@ -99,7 +65,18 @@ function applyFixesToBashProfile() {
99
65
  else {
100
66
  bashProfileContents = "";
101
67
  }
102
- // Prepare the text to append
68
+ const appendText = getBashProfileAppendText(bashProfileContents);
69
+ try {
70
+ fs_1.default.appendFileSync(BASH_PROFILE_PATH, appendText);
71
+ }
72
+ catch (err) {
73
+ (0, util_1.error)(`Failed to append text to "${BASH_PROFILE_PATH}":`, err);
74
+ }
75
+ console.log(chalk_1.default.green("Complete!"), `The terminal fixes have been added to: ${chalk_1.default.green(BASH_PROFILE_PATH)}`);
76
+ console.log(chalk_1.default.red("Please close and re-open your terminal, then run this program again."));
77
+ process.exit(0);
78
+ }
79
+ function getBashProfileAppendText(bashProfileContents) {
103
80
  let newText = "";
104
81
  if (bashProfileContents !== "" &&
105
82
  bashProfileContents[bashProfileContents.length - 1] !== "\n") {
@@ -113,16 +90,7 @@ function applyFixesToBashProfile() {
113
90
  newText += "\n";
114
91
  }
115
92
  newText += "# Terminal fixes added by IsaacScript\n";
116
- newText += `chcp.com ${WINDOWS_CODE_PAGE} > /dev/null\n`;
117
93
  newText += "export FORCE_COLOR=true\n";
118
- try {
119
- fs_1.default.appendFileSync(BASH_PROFILE_PATH, newText);
120
- }
121
- catch (err) {
122
- (0, util_1.error)(`Failed to append text to "${BASH_PROFILE_PATH}":`, err);
123
- }
124
- console.log(chalk_1.default.green("Complete!"), `I have added the terminal fixes to "${BASH_PROFILE_PATH}".`);
125
- console.log(chalk_1.default.red("Please close and re-open your terminal, then run this program again."));
126
- process.exit(0);
94
+ return newText;
127
95
  }
128
96
  //# sourceMappingURL=checkForWindowsTerminalBugs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"checkForWindowsTerminalBugs.js","sourceRoot":"","sources":["../../src/checkForWindowsTerminalBugs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"checkForWindowsTerminalBugs.js","sourceRoot":"","sources":["../../src/checkForWindowsTerminalBugs.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kDAA0B;AAC1B,4CAAoB;AACpB,gDAAwB;AACxB,2CAAuC;AACvC,6CAA+B;AAC/B,qCAAyC;AACzC,iCAA+B;AAE/B,MAAM,iBAAiB,GAAG,cAAI,CAAC,IAAI,CAAC,oBAAQ,EAAE,eAAe,CAAC,CAAC;AAE/D,gDAAgD;AAChD,6FAA6F;AAC7F,2CAA2C;AACpC,KAAK,UAAU,2BAA2B;IAC/C,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE;QAChC,OAAO;KACR;IAED,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,4CAA4C,EAAE;QACtE,OAAO;KACR;IAED,MAAM,uBAAuB,EAAE,CAAC;AAClC,CAAC;AAVD,kEAUC;AAED,KAAK,UAAU,uBAAuB;IACpC,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,KAAK,MAAM,EAAE;QACtC,OAAO;KACR;IAED,OAAO,CAAC,KAAK,CACX,eAAK,CAAC,GAAG,CACP,kFAAkF,eAAK,CAAC,KAAK,CAC3F,aAAa,CACd,yBAAyB,CAC3B,CACF,CAAC;IACF,OAAO,CAAC,KAAK,CACX,yEAAyE,CAC1E,CAAC;IAEF,MAAM,eAAe,GAAG,MAAM,IAAA,sBAAa,EACzC,qCAAqC,CACtC,CAAC;IACF,IAAI,CAAC,eAAe,EAAE;QACpB,OAAO;KACR;IAED,uBAAuB,EAAE,CAAC;AAC5B,CAAC;AAED,SAAS,uBAAuB;IAC9B,4CAA4C;IAC5C,IAAI,mBAA2B,CAAC;IAChC,IAAI,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,EAAE;QAClC,mBAAmB,GAAG,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;KACpD;SAAM;QACL,mBAAmB,GAAG,EAAE,CAAC;KAC1B;IAED,MAAM,UAAU,GAAG,wBAAwB,CAAC,mBAAmB,CAAC,CAAC;IAEjE,IAAI;QACF,YAAE,CAAC,cAAc,CAAC,iBAAiB,EAAE,UAAU,CAAC,CAAC;KAClD;IAAC,OAAO,GAAG,EAAE;QACZ,IAAA,YAAK,EAAC,6BAA6B,iBAAiB,IAAI,EAAE,GAAG,CAAC,CAAC;KAChE;IAED,OAAO,CAAC,GAAG,CACT,eAAK,CAAC,KAAK,CAAC,WAAW,CAAC,EACxB,0CAA0C,eAAK,CAAC,KAAK,CAAC,iBAAiB,CAAC,EAAE,CAC3E,CAAC;IACF,OAAO,CAAC,GAAG,CACT,eAAK,CAAC,GAAG,CACP,sEAAsE,CACvE,CACF,CAAC;IACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,SAAS,wBAAwB,CAAC,mBAA2B;IAC3D,IAAI,OAAO,GAAG,EAAE,CAAC;IAEjB,IACE,mBAAmB,KAAK,EAAE;QAC1B,mBAAmB,CAAC,mBAAmB,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,IAAI,EAC5D;QACA,sEAAsE;QACtE,+CAA+C;QAC/C,OAAO,IAAI,IAAI,CAAC;KACjB;IAED,IAAI,mBAAmB,KAAK,EAAE,EAAE;QAC9B,+FAA+F;QAC/F,4BAA4B;QAC5B,OAAO,IAAI,IAAI,CAAC;KACjB;IAED,OAAO,IAAI,yCAAyC,CAAC;IACrD,OAAO,IAAI,2BAA2B,CAAC;IAEvC,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -24,20 +24,16 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
24
24
  Object.defineProperty(exports, "__esModule", { value: true });
25
25
  exports.checkIfProjectPathExists = void 0;
26
26
  const chalk_1 = __importDefault(require("chalk"));
27
- const prompts_1 = __importDefault(require("prompts"));
28
27
  const constants_1 = require("../../constants");
29
28
  const file = __importStar(require("../../file"));
29
+ const prompt_1 = require("../../prompt");
30
30
  const util_1 = require("../../util");
31
31
  async function checkIfProjectPathExists(projectPath) {
32
32
  if (projectPath !== constants_1.CWD && file.exists(projectPath)) {
33
33
  const fileType = file.isDir(projectPath) ? "directory" : "file";
34
34
  console.log(`A ${fileType} already exists with a name of "${chalk_1.default.green(projectPath)}".`);
35
- const response = await (0, prompts_1.default)({
36
- type: "confirm",
37
- name: "delete",
38
- message: "Do you want me to delete it?",
39
- });
40
- if (!response.delete) { // eslint-disable-line
35
+ const shouldDelete = await (0, prompt_1.getInputYesNo)("Do you want me to delete it?");
36
+ if (!shouldDelete) {
41
37
  (0, util_1.error)("Ok then. Good-bye.");
42
38
  }
43
39
  file.deleteFileOrDirectory(projectPath);
@@ -1 +1 @@
1
- {"version":3,"file":"checkIfProjectPathExists.js","sourceRoot":"","sources":["../../../../src/commands/init/checkIfProjectPathExists.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kDAA0B;AAC1B,sDAA8B;AAC9B,+CAAsC;AACtC,iDAAmC;AACnC,qCAAmC;AAE5B,KAAK,UAAU,wBAAwB,CAC5C,WAAmB;IAEnB,IAAI,WAAW,KAAK,eAAG,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE;QACnD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC;QAChE,OAAO,CAAC,GAAG,CACT,KAAK,QAAQ,mCAAmC,eAAK,CAAC,KAAK,CACzD,WAAW,CACZ,IAAI,CACN,CAAC;QAEF,MAAM,QAAQ,GAAG,MAAM,IAAA,iBAAO,EAAC;YAC7B,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,8BAA8B;SACxC,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,sBAAsB;YAC5C,IAAA,YAAK,EAAC,oBAAoB,CAAC,CAAC;SAC7B;QAED,IAAI,CAAC,qBAAqB,CAAC,WAAW,CAAC,CAAC;KACzC;AACH,CAAC;AAtBD,4DAsBC"}
1
+ {"version":3,"file":"checkIfProjectPathExists.js","sourceRoot":"","sources":["../../../../src/commands/init/checkIfProjectPathExists.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kDAA0B;AAC1B,+CAAsC;AACtC,iDAAmC;AACnC,yCAA6C;AAC7C,qCAAmC;AAE5B,KAAK,UAAU,wBAAwB,CAC5C,WAAmB;IAEnB,IAAI,WAAW,KAAK,eAAG,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE;QACnD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC;QAChE,OAAO,CAAC,GAAG,CACT,KAAK,QAAQ,mCAAmC,eAAK,CAAC,KAAK,CACzD,WAAW,CACZ,IAAI,CACN,CAAC;QAEF,MAAM,YAAY,GAAG,MAAM,IAAA,sBAAa,EAAC,8BAA8B,CAAC,CAAC;QAEzE,IAAI,CAAC,YAAY,EAAE;YACjB,IAAA,YAAK,EAAC,oBAAoB,CAAC,CAAC;SAC7B;QAED,IAAI,CAAC,qBAAqB,CAAC,WAAW,CAAC,CAAC;KACzC;AACH,CAAC;AAnBD,4DAmBC"}
@@ -25,8 +25,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
25
25
  exports.checkModTargetDirectory = void 0;
26
26
  const chalk_1 = __importDefault(require("chalk"));
27
27
  const path_1 = __importDefault(require("path"));
28
- const prompts_1 = __importDefault(require("prompts"));
29
28
  const file = __importStar(require("../../file"));
29
+ const prompt_1 = require("../../prompt");
30
30
  const util_1 = require("../../util");
31
31
  async function checkModTargetDirectory(modsDirectory, projectName) {
32
32
  const modTargetPath = path_1.default.join(modsDirectory, projectName);
@@ -35,13 +35,8 @@ async function checkModTargetDirectory(modsDirectory, projectName) {
35
35
  }
36
36
  console.error(`Error: The target mod path of "${chalk_1.default.green(modTargetPath)}" already exists.`);
37
37
  console.error("When you run IsaacScript, it will want to create a directory here so that it can sync it with your project folder.");
38
- const response = await (0, prompts_1.default)({
39
- type: "confirm",
40
- name: "deleteDirectory",
41
- message: "Should I delete the existing directory for you? (Make sure that it does not contain anything important first.)",
42
- initial: true,
43
- });
44
- if (response.deleteDirectory === false) {
38
+ const shouldDeleteDirectory = await (0, prompt_1.getInputYesNo)("Should I delete the existing directory for you? (Make sure that it does not contain anything important first.)");
39
+ if (!shouldDeleteDirectory) {
45
40
  (0, util_1.error)("Ok then. You delete it yourself. Good bye.");
46
41
  }
47
42
  file.deleteFileOrDirectory(modTargetPath);
@@ -1 +1 @@
1
- {"version":3,"file":"checkModTargetDirectory.js","sourceRoot":"","sources":["../../../../src/commands/init/checkModTargetDirectory.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kDAA0B;AAC1B,gDAAwB;AACxB,sDAA8B;AAC9B,iDAAmC;AACnC,qCAAmC;AAE5B,KAAK,UAAU,uBAAuB,CAC3C,aAAqB,EACrB,WAAmB;IAEnB,MAAM,aAAa,GAAG,cAAI,CAAC,IAAI,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;IAC5D,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE;QAC/B,OAAO;KACR;IAED,OAAO,CAAC,KAAK,CACX,kCAAkC,eAAK,CAAC,KAAK,CAC3C,aAAa,CACd,mBAAmB,CACrB,CAAC;IACF,OAAO,CAAC,KAAK,CACX,oHAAoH,CACrH,CAAC;IACF,MAAM,QAAQ,GAAG,MAAM,IAAA,iBAAO,EAAC;QAC7B,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,iBAAiB;QACvB,OAAO,EACL,gHAAgH;QAClH,OAAO,EAAE,IAAI;KACd,CAAC,CAAC;IACH,IAAI,QAAQ,CAAC,eAAe,KAAK,KAAK,EAAE;QACtC,IAAA,YAAK,EAAC,4CAA4C,CAAC,CAAC;KACrD;IAED,IAAI,CAAC,qBAAqB,CAAC,aAAa,CAAC,CAAC;AAC5C,CAAC;AA7BD,0DA6BC"}
1
+ {"version":3,"file":"checkModTargetDirectory.js","sourceRoot":"","sources":["../../../../src/commands/init/checkModTargetDirectory.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kDAA0B;AAC1B,gDAAwB;AACxB,iDAAmC;AACnC,yCAA6C;AAC7C,qCAAmC;AAE5B,KAAK,UAAU,uBAAuB,CAC3C,aAAqB,EACrB,WAAmB;IAEnB,MAAM,aAAa,GAAG,cAAI,CAAC,IAAI,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;IAC5D,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE;QAC/B,OAAO;KACR;IAED,OAAO,CAAC,KAAK,CACX,kCAAkC,eAAK,CAAC,KAAK,CAC3C,aAAa,CACd,mBAAmB,CACrB,CAAC;IACF,OAAO,CAAC,KAAK,CACX,oHAAoH,CACrH,CAAC;IAEF,MAAM,qBAAqB,GAAG,MAAM,IAAA,sBAAa,EAC/C,gHAAgH,CACjH,CAAC;IAEF,IAAI,CAAC,qBAAqB,EAAE;QAC1B,IAAA,YAAK,EAAC,4CAA4C,CAAC,CAAC;KACrD;IAED,IAAI,CAAC,qBAAqB,CAAC,aAAa,CAAC,CAAC;AAC5C,CAAC;AA3BD,0DA2BC"}
@@ -23,12 +23,16 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
23
23
  };
24
24
  Object.defineProperty(exports, "__esModule", { value: true });
25
25
  exports.createMod = void 0;
26
+ const chalk_1 = __importDefault(require("chalk"));
27
+ const command_exists_1 = __importDefault(require("command-exists"));
26
28
  const path_1 = __importDefault(require("path"));
29
+ const yaml_1 = __importDefault(require("yaml"));
27
30
  const configFile = __importStar(require("../../configFile"));
28
31
  const constants_1 = require("../../constants");
29
32
  const file = __importStar(require("../../file"));
33
+ const prompt_1 = require("../../prompt");
30
34
  const util_1 = require("../../util");
31
- function createMod(projectName, projectPath, createNewDir, modsDirectory, saveSlot) {
35
+ async function createMod(projectName, projectPath, createNewDir, modsDirectory, saveSlot, skipNPMInstall) {
32
36
  if (createNewDir) {
33
37
  file.makeDir(projectPath);
34
38
  }
@@ -39,7 +43,9 @@ function createMod(projectName, projectPath, createNewDir, modsDirectory, saveSl
39
43
  copyStaticFiles(projectPath);
40
44
  copyDynamicFiles(projectName, projectPath, targetModDirectory);
41
45
  updateNodeModules(projectPath);
42
- installNodeModules(projectPath);
46
+ await initGitRepository(projectPath, projectName);
47
+ installNodeModules(projectPath, skipNPMInstall);
48
+ console.log(`Successfully created mod: ${chalk_1.default.green(projectName)}`);
43
49
  }
44
50
  exports.createMod = createMod;
45
51
  function makeSubdirectories(projectPath) {
@@ -84,7 +90,7 @@ function copyDynamicFiles(projectName, projectPath, targetModDirectory) {
84
90
  const fileName = constants_1.PACKAGE_JSON;
85
91
  const templatePath = constants_1.PACKAGE_JSON_TEMPLATE_PATH;
86
92
  const template = file.read(templatePath);
87
- const packageJSON = template.replace(/MOD_NAME/g, projectName);
93
+ const packageJSON = template.replace(/MOD_NAME_TO_REPLACE/g, projectName);
88
94
  const destinationPath = path_1.default.join(projectPath, fileName);
89
95
  file.write(destinationPath, packageJSON);
90
96
  }
@@ -93,7 +99,7 @@ function copyDynamicFiles(projectName, projectPath, targetModDirectory) {
93
99
  const fileName = constants_1.README_MD;
94
100
  const templatePath = constants_1.README_MD_TEMPLATES_PATH;
95
101
  const template = file.read(templatePath);
96
- const readmeMD = template.replace(/MOD_NAME/g, projectName);
102
+ const readmeMD = template.replace(/MOD_NAME_TO_REPLACE/g, projectName);
97
103
  const destinationPath = path_1.default.join(projectPath, fileName);
98
104
  file.write(destinationPath, readmeMD);
99
105
  }
@@ -102,7 +108,7 @@ function copyDynamicFiles(projectName, projectPath, targetModDirectory) {
102
108
  const fileName = constants_1.METADATA_XML;
103
109
  const templatePath = constants_1.METADATA_XML_TEMPLATE_PATH;
104
110
  const template = file.read(templatePath);
105
- const metadataXML = template.replace(/MOD_NAME/g, projectName);
111
+ const metadataXML = template.replace(/MOD_NAME_TO_REPLACE/g, projectName);
106
112
  const modPath = path_1.default.join(projectPath, "mod");
107
113
  const destinationPath = path_1.default.join(modPath, fileName);
108
114
  file.write(destinationPath, metadataXML);
@@ -122,22 +128,90 @@ function copyDynamicFiles(projectName, projectPath, targetModDirectory) {
122
128
  // Convert snake_case and kebab-case to camelCase
123
129
  // (kebab-case in particular will make the example TypeScript file fail to compile)
124
130
  const srcPath = path_1.default.join(projectPath, "src");
125
- const camelCaseProjectName = (0, util_1.snakeKebabToCamel)(projectName);
126
131
  const fileName = constants_1.MAIN_TS;
127
132
  const templatePath = constants_1.MAIN_TS_TEMPLATE_PATH;
128
133
  const template = file.read(templatePath);
129
- const mainTS = template
130
- .replace(/MOD_NAME initialized/g, `${projectName} initialized`)
131
- .replace(/MOD_NAME/g, camelCaseProjectName);
134
+ const mainTS = template.replace(/MOD_NAME_TO_REPLACE/g, projectName);
132
135
  const destinationPath = path_1.default.join(srcPath, fileName);
133
136
  file.write(destinationPath, mainTS);
134
137
  }
135
138
  }
139
+ async function initGitRepository(projectPath, projectName) {
140
+ if (!command_exists_1.default.sync("git")) {
141
+ console.log('Git does not seem to be installed. (The "git" command is not in the path.) Skipping Git-related things.');
142
+ return;
143
+ }
144
+ const remoteURL = await getGitRemoteURL(projectName);
145
+ if (remoteURL === "") {
146
+ return;
147
+ }
148
+ (0, util_1.execShell)("git", ["init"], false, projectPath);
149
+ (0, util_1.execShell)("git", ["branch", "-M", "main"], false, projectPath);
150
+ (0, util_1.execShell)("git", ["remote", "add", "origin", remoteURL], false, projectPath);
151
+ if (isGitNameAndEmailConfigured()) {
152
+ (0, util_1.execShell)("git", ["add", "--all"], false, projectPath);
153
+ (0, util_1.execShell)("git", ["commit", "--message", "IsaacScript template"], false, projectPath);
154
+ }
155
+ }
156
+ async function getGitRemoteURL(projectName) {
157
+ const guessedRemoteURL = guessRemoteURL(projectName);
158
+ if (guessedRemoteURL !== undefined) {
159
+ const shouldUseGuessedURL = await (0, prompt_1.getInputYesNo)(`Do you want to use a Git remote URL of: ${chalk_1.default.green(guessedRemoteURL)}`);
160
+ if (shouldUseGuessedURL) {
161
+ return guessedRemoteURL;
162
+ }
163
+ }
164
+ return (0, prompt_1.getInputString)(`Paste in the remote Git URL for your project.
165
+ For example, if you have an SSH key, it would be something like:
166
+ ${chalk_1.default.green("git@github.com:Alice/green-candle.git")}
167
+ If you don't have an SSH key, it would be something like:
168
+ ${chalk_1.default.green("https://github.com/Alice/green-candle.git")}
169
+ If you don't want to initialize a Git repository for this project, press enter to skip.
170
+ `);
171
+ }
172
+ function guessRemoteURL(projectName) {
173
+ const gitHubUsername = getGitHubUsername();
174
+ if (gitHubUsername === undefined) {
175
+ return undefined;
176
+ }
177
+ return `git@github.com:${gitHubUsername}/${projectName}.git`;
178
+ }
179
+ function getGitHubUsername() {
180
+ // If the GitHub CLI is installed, we can derive the user's GitHub username
181
+ if (!command_exists_1.default.sync("gh") ||
182
+ process.env.APPDATA === undefined ||
183
+ process.env.APPDATA === "") {
184
+ return undefined;
185
+ }
186
+ const githubCLIHostsPath = path_1.default.join(process.env.APPDATA, "GitHub CLI", "hosts.yml");
187
+ if (!file.exists(githubCLIHostsPath)) {
188
+ return undefined;
189
+ }
190
+ const configYAMLRaw = file.read(githubCLIHostsPath);
191
+ const configYAML = yaml_1.default.parse(configYAMLRaw);
192
+ const githubCom = configYAML["github.com"];
193
+ if (githubCom === undefined) {
194
+ return undefined;
195
+ }
196
+ const { user } = githubCom;
197
+ if (user === "") {
198
+ return undefined;
199
+ }
200
+ return user;
201
+ }
202
+ function isGitNameAndEmailConfigured() {
203
+ const [nameExitStatus] = (0, util_1.execShell)("git", ["config", "--global", "user.name"], true);
204
+ const [emailExitStatus] = (0, util_1.execShell)("git", ["config", "--global", "user.email"], true);
205
+ return nameExitStatus === 0 && emailExitStatus === 0;
206
+ }
136
207
  function updateNodeModules(projectPath) {
137
- console.log("Updating node modules...");
208
+ console.log("Finding out the latest versions of the IsaacScript packages...");
138
209
  (0, util_1.execShell)("npx", ["npm-check-updates", "--upgrade", "--packageFile", "package.json"], false, projectPath);
139
210
  }
140
- function installNodeModules(projectPath) {
211
+ function installNodeModules(projectPath, skipNPMInstall) {
212
+ if (skipNPMInstall) {
213
+ return;
214
+ }
141
215
  console.log("Installing node modules... (This can take a long time.)");
142
216
  (0, util_1.execShell)("npm", ["install"], false, projectPath);
143
217
  }
@@ -1 +1 @@
1
- {"version":3,"file":"createMod.js","sourceRoot":"","sources":["../../../../src/commands/init/createMod.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"createMod.js","sourceRoot":"","sources":["../../../../src/commands/init/createMod.ts"],"names":[],"mappings":"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"}
@@ -24,17 +24,15 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
24
24
  Object.defineProperty(exports, "__esModule", { value: true });
25
25
  exports.getModsDir = void 0;
26
26
  const chalk_1 = __importDefault(require("chalk"));
27
- const os_1 = __importDefault(require("os"));
28
27
  const path_1 = __importDefault(require("path"));
29
- const prompts_1 = __importDefault(require("prompts"));
28
+ const constants_1 = require("../../constants");
30
29
  const file = __importStar(require("../../file"));
30
+ const prompt_1 = require("../../prompt");
31
31
  const util_1 = require("../../util");
32
- // https://stackoverflow.com/questions/9080085/node-js-find-home-directory-in-platform-agnostic-way
33
- const homeDir = os_1.default.homedir();
34
32
  const MODS = "mods";
35
33
  const DEFAULT_MODS_PATH_WINDOWS = path_1.default.join("C:", "Program Files (x86)", "Steam", "steamapps", "common", "The Binding of Isaac Rebirth", MODS);
36
34
  // This is a subdirectory of $HOME
37
- const DEFAULT_MODS_PATH_LINUX = path_1.default.join(homeDir, ".local", "share", "Steam", "steamapps", "common", "The Binding of Isaac Rebirth", MODS);
35
+ const DEFAULT_MODS_PATH_LINUX = path_1.default.join(constants_1.HOME_DIR, ".local", "share", "Steam", "steamapps", "common", "The Binding of Isaac Rebirth", MODS);
38
36
  async function getModsDir(argv) {
39
37
  if (argv.modsDirectory !== undefined) {
40
38
  // They specified the "--mods-directory" command-line flag,
@@ -46,15 +44,10 @@ async function getModsDir(argv) {
46
44
  return defaultModsPath;
47
45
  }
48
46
  console.error(`Failed to find your mods directory at: ${chalk_1.default.green(defaultModsPath)}`);
49
- const response = await (0, prompts_1.default)({
50
- type: "text",
51
- name: "modsDir",
52
- message: `Enter the full path to the "${MODS}" directory on your system, which should be next to your "isaac-ng.exe" program:`,
53
- });
54
- if (typeof response.modsDir !== "string") {
55
- (0, util_1.error)("Error: The response was not a string.");
47
+ const modsDir = await (0, prompt_1.getInputString)(`Enter the full path to the "${MODS}" directory on your system, which should be next to your "isaac-ng.exe" program:`);
48
+ if (modsDir === "") {
49
+ (0, util_1.error)("Error: You did not provide a response; exiting.");
56
50
  }
57
- const modsDir = response.modsDir.trim();
58
51
  if (!file.exists(modsDir)) {
59
52
  (0, util_1.error)(`Error: The directory of "${chalk_1.default.green(modsDir)}" does not exist. Exiting.`);
60
53
  }
@@ -1 +1 @@
1
- {"version":3,"file":"getModsDir.js","sourceRoot":"","sources":["../../../../src/commands/init/getModsDir.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kDAA0B;AAC1B,4CAAoB;AACpB,gDAAwB;AACxB,sDAA8B;AAC9B,iDAAmC;AACnC,qCAAmC;AAEnC,mGAAmG;AACnG,MAAM,OAAO,GAAG,YAAE,CAAC,OAAO,EAAE,CAAC;AAE7B,MAAM,IAAI,GAAG,MAAM,CAAC;AAEpB,MAAM,yBAAyB,GAAG,cAAI,CAAC,IAAI,CACzC,IAAI,EACJ,qBAAqB,EACrB,OAAO,EACP,WAAW,EACX,QAAQ,EACR,8BAA8B,EAC9B,IAAI,CACL,CAAC;AAEF,kCAAkC;AAClC,MAAM,uBAAuB,GAAG,cAAI,CAAC,IAAI,CACvC,OAAO,EACP,QAAQ,EACR,OAAO,EACP,OAAO,EACP,WAAW,EACX,QAAQ,EACR,8BAA8B,EAC9B,IAAI,CACL,CAAC;AAEK,KAAK,UAAU,UAAU,CAC9B,IAA6B;IAE7B,IAAI,IAAI,CAAC,aAAa,KAAK,SAAS,EAAE;QACpC,2DAA2D;QAC3D,gDAAgD;QAChD,OAAO,IAAI,CAAC,aAAuB,CAAC;KACrC;IAED,MAAM,eAAe,GAAG,kBAAkB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAE7D,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,EAAE;QAC/D,OAAO,eAAe,CAAC;KACxB;IAED,OAAO,CAAC,KAAK,CACX,0CAA0C,eAAK,CAAC,KAAK,CAAC,eAAe,CAAC,EAAE,CACzE,CAAC;IACF,MAAM,QAAQ,GAAG,MAAM,IAAA,iBAAO,EAAC;QAC7B,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,+BAA+B,IAAI,kFAAkF;KAC/H,CAAC,CAAC;IAEH,IAAI,OAAO,QAAQ,CAAC,OAAO,KAAK,QAAQ,EAAE;QACxC,IAAA,YAAK,EAAC,uCAAuC,CAAC,CAAC;KAChD;IACD,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;IAExC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE;QACzB,IAAA,YAAK,EACH,4BAA4B,eAAK,CAAC,KAAK,CACrC,OAAO,CACR,4BAA4B,CAC9B,CAAC;KACH;IAED,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE;QACxB,IAAA,YAAK,EACH,uBAAuB,eAAK,CAAC,KAAK,CAChC,OAAO,CACR,gCAAgC,CAClC,CAAC;KACH;IAED,IAAI,cAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE;QACnC,IAAA,YAAK,EACH,iCAAiC,eAAK,CAAC,KAAK,CAC1C,OAAO,CACR,wDAAwD,IAAI,wBAAwB,CACtF,CAAC;KACH;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAtDD,gCAsDC;AAED,SAAS,kBAAkB,CAAC,QAAgB;IAC1C,QAAQ,QAAQ,EAAE;QAChB,KAAK,OAAO,CAAC,CAAC;YACZ,OAAO,yBAAyB,CAAC;SAClC;QAED,KAAK,OAAO,CAAC,CAAC;YACZ,OAAO,uBAAuB,CAAC;SAChC;QAED,OAAO,CAAC,CAAC;YACP,IAAA,YAAK,EACH,gEAAgE,eAAK,CAAC,KAAK,CACzE,QAAQ,CACT,EAAE,CACJ,CAAC;YACF,OAAO,EAAE,CAAC;SACX;KACF;AACH,CAAC"}
1
+ {"version":3,"file":"getModsDir.js","sourceRoot":"","sources":["../../../../src/commands/init/getModsDir.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kDAA0B;AAC1B,gDAAwB;AACxB,+CAA2C;AAC3C,iDAAmC;AACnC,yCAA8C;AAC9C,qCAAmC;AAEnC,MAAM,IAAI,GAAG,MAAM,CAAC;AAEpB,MAAM,yBAAyB,GAAG,cAAI,CAAC,IAAI,CACzC,IAAI,EACJ,qBAAqB,EACrB,OAAO,EACP,WAAW,EACX,QAAQ,EACR,8BAA8B,EAC9B,IAAI,CACL,CAAC;AAEF,kCAAkC;AAClC,MAAM,uBAAuB,GAAG,cAAI,CAAC,IAAI,CACvC,oBAAQ,EACR,QAAQ,EACR,OAAO,EACP,OAAO,EACP,WAAW,EACX,QAAQ,EACR,8BAA8B,EAC9B,IAAI,CACL,CAAC;AAEK,KAAK,UAAU,UAAU,CAC9B,IAA6B;IAE7B,IAAI,IAAI,CAAC,aAAa,KAAK,SAAS,EAAE;QACpC,2DAA2D;QAC3D,gDAAgD;QAChD,OAAO,IAAI,CAAC,aAAuB,CAAC;KACrC;IAED,MAAM,eAAe,GAAG,kBAAkB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAE7D,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,EAAE;QAC/D,OAAO,eAAe,CAAC;KACxB;IAED,OAAO,CAAC,KAAK,CACX,0CAA0C,eAAK,CAAC,KAAK,CAAC,eAAe,CAAC,EAAE,CACzE,CAAC;IACF,MAAM,OAAO,GAAG,MAAM,IAAA,uBAAc,EAClC,+BAA+B,IAAI,kFAAkF,CACtH,CAAC;IAEF,IAAI,OAAO,KAAK,EAAE,EAAE;QAClB,IAAA,YAAK,EAAC,iDAAiD,CAAC,CAAC;KAC1D;IAED,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE;QACzB,IAAA,YAAK,EACH,4BAA4B,eAAK,CAAC,KAAK,CACrC,OAAO,CACR,4BAA4B,CAC9B,CAAC;KACH;IAED,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE;QACxB,IAAA,YAAK,EACH,uBAAuB,eAAK,CAAC,KAAK,CAChC,OAAO,CACR,gCAAgC,CAClC,CAAC;KACH;IAED,IAAI,cAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE;QACnC,IAAA,YAAK,EACH,iCAAiC,eAAK,CAAC,KAAK,CAC1C,OAAO,CACR,wDAAwD,IAAI,wBAAwB,CACtF,CAAC;KACH;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAnDD,gCAmDC;AAED,SAAS,kBAAkB,CAAC,QAAgB;IAC1C,QAAQ,QAAQ,EAAE;QAChB,KAAK,OAAO,CAAC,CAAC;YACZ,OAAO,yBAAyB,CAAC;SAClC;QAED,KAAK,OAAO,CAAC,CAAC;YACZ,OAAO,uBAAuB,CAAC;SAChC;QAED,OAAO,CAAC,CAAC;YACP,IAAA,YAAK,EACH,gEAAgE,eAAK,CAAC,KAAK,CACzE,QAAQ,CACT,EAAE,CACJ,CAAC;YACF,OAAO,EAAE,CAAC;SACX;KACF;AACH,CAAC"}
@@ -6,8 +6,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.getProjectPath = void 0;
7
7
  const chalk_1 = __importDefault(require("chalk"));
8
8
  const path_1 = __importDefault(require("path"));
9
- const prompts_1 = __importDefault(require("prompts"));
10
9
  const constants_1 = require("../../constants");
10
+ const prompt_1 = require("../../prompt");
11
11
  const util_1 = require("../../util");
12
12
  // From: https://gist.github.com/doctaphred/d01d05291546186941e1b7ddc02034d3
13
13
  const ILLEGAL_CHARACTERS_FOR_WINDOWS_FILENAMES = [
@@ -53,24 +53,11 @@ function getProjectNameFromCommandLineArgument(argv) {
53
53
  }
54
54
  async function getNewProjectName() {
55
55
  console.log("You did not specify a project name as a command-line argument.");
56
- const response1 = await (0, prompts_1.default)({
57
- type: "confirm",
58
- name: "useCurrentDir",
59
- message: `Would you like to create a new project using the current directory "${chalk_1.default.green(constants_1.CURRENT_DIRECTORY_NAME)}" as the root?`,
60
- initial: true,
61
- });
62
- if (response1.useCurrentDir === true) {
56
+ const shouldUseCurrentDir = await (0, prompt_1.getInputYesNo)(`Would you like to create a new project using the current directory "${chalk_1.default.green(constants_1.CURRENT_DIRECTORY_NAME)}" as the root?`);
57
+ if (shouldUseCurrentDir) {
63
58
  return [constants_1.CURRENT_DIRECTORY_NAME, constants_1.CWD, false];
64
59
  }
65
- const response2 = await (0, prompts_1.default)({
66
- type: "text",
67
- name: "projectName",
68
- message: "Enter the name of the project:",
69
- });
70
- if (typeof response2.projectName !== "string") {
71
- (0, util_1.error)("Error: The response was not a string.");
72
- }
73
- const projectName = response2.projectName.trim();
60
+ const projectName = await (0, prompt_1.getInputString)("Enter the name of the project:");
74
61
  const projectPath = path_1.default.join(constants_1.CWD, projectName);
75
62
  return [projectName, projectPath, true];
76
63
  }
@@ -1 +1 @@
1
- {"version":3,"file":"getProjectPath.js","sourceRoot":"","sources":["../../../../src/commands/init/getProjectPath.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"getProjectPath.js","sourceRoot":"","sources":["../../../../src/commands/init/getProjectPath.ts"],"names":[],"mappings":"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"}