isaacscript 3.15.3 → 3.16.1-dev.0

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 (215) hide show
  1. package/dist/checkForWindowsTerminalBugs.js +57 -0
  2. package/{src → dist}/classes/Config.js +1 -6
  3. package/dist/classes/ValidatedConfig.js +1 -0
  4. package/{src → dist}/commands/check/check.js +67 -64
  5. package/dist/commands/check/check.test.js +86 -0
  6. package/dist/commands/copy/copy.js +29 -0
  7. package/dist/commands/init/checkIfProjectPathExists.js +21 -0
  8. package/dist/commands/init/checkModSubdirectory.js +9 -0
  9. package/dist/commands/init/checkModTargetDirectory.js +24 -0
  10. package/dist/commands/init/createProject.js +199 -0
  11. package/dist/commands/init/getAuthorName.js +22 -0
  12. package/dist/commands/init/getModsDir.js +48 -0
  13. package/dist/commands/init/getProjectPath.js +84 -0
  14. package/dist/commands/init/init.js +73 -0
  15. package/dist/commands/init/installVSCodeExtensions.js +27 -0
  16. package/dist/commands/init/promptSaveSlot.js +17 -0
  17. package/{src → dist}/commands/init/promptVSCode.js +5 -10
  18. package/dist/commands/monitor/copyWatcherMod.js +31 -0
  19. package/dist/commands/monitor/modDirectorySyncer/modDirectorySyncer.js +44 -0
  20. package/dist/commands/monitor/monitor.js +154 -0
  21. package/{src → dist}/commands/monitor/notifyGame.js +14 -22
  22. package/{src → dist}/commands/monitor/saveDatWriter/saveDatWriter.js +24 -27
  23. package/dist/commands/monitor/saveDatWriter/types.js +1 -0
  24. package/dist/commands/monitor/spawnModDirectorySyncer.js +31 -0
  25. package/dist/commands/monitor/spawnSaveDatWriter.js +29 -0
  26. package/dist/commands/monitor/spawnTSTLWatcher.js +74 -0
  27. package/dist/commands/monitor/touchWatcherSaveDatFiles.js +15 -0
  28. package/dist/commands/publish/isaacscriptMod.js +90 -0
  29. package/dist/commands/publish/prePublish.js +105 -0
  30. package/dist/commands/publish/publish.js +39 -0
  31. package/dist/commands/publish/validate.js +46 -0
  32. package/dist/common.js +65 -0
  33. package/dist/configFile.js +54 -0
  34. package/dist/constants.js +61 -0
  35. package/dist/customStage.js +298 -0
  36. package/dist/dev.js +10 -0
  37. package/{src/enums → dist/enums/copied}/DoorSlot.js +5 -6
  38. package/dist/enums/copied/DoorSlotFlag.js +35 -0
  39. package/{src/enums → dist/enums/copied}/RoomShape.js +5 -6
  40. package/{src → dist}/exec.js +19 -28
  41. package/dist/git.js +133 -0
  42. package/dist/interfaces/GitHubCLIHostsYAML.js +1 -0
  43. package/dist/interfaces/IsaacScriptTSConfig.js +1 -0
  44. package/dist/interfaces/ShadersXML.js +1 -0
  45. package/dist/interfaces/copied/CustomStageTSConfig.js +4 -0
  46. package/dist/interfaces/copied/JSONRoomsFile.js +4 -0
  47. package/dist/main.js +132 -0
  48. package/dist/objects/copied/doorSlotToDoorSlotFlag.js +16 -0
  49. package/dist/objects/copied/roomShapeToDoorSlotCoordinates.js +112 -0
  50. package/dist/packageManager.js +68 -0
  51. package/{src → dist}/parseArgs.js +36 -15
  52. package/dist/prompt.js +79 -0
  53. package/dist/tsconfig.js +98 -0
  54. package/dist/types/Command.js +4 -0
  55. package/dist/utils.js +8 -0
  56. package/dist/validateInIsaacScriptProject.js +29 -0
  57. package/dist/validateNodeVersion.js +20 -0
  58. package/file-templates/dynamic/.github/workflows/setup/action.yml +21 -0
  59. package/file-templates/dynamic/.yarnrc.yml +1 -0
  60. package/file-templates/dynamic/README.mod.md +4 -3
  61. package/file-templates/dynamic/_gitignore +0 -2
  62. package/file-templates/dynamic/package.mod.json +8 -0
  63. package/file-templates/dynamic/package.ts.json +5 -1
  64. package/file-templates/{dynamic → static}/.github/workflows/ci.yml +10 -38
  65. package/file-templates/static/scripts/tsconfig.json +28 -0
  66. package/file-templates/static-mod/.vscode/settings.json +1 -1
  67. package/file-templates/static-mod/{_cspell.json → _cspell.jsonc} +2 -2
  68. package/file-templates/static-mod/_eslintrc.cjs +1 -1
  69. package/file-templates/static-mod/prettier.config.mjs +6 -1
  70. package/file-templates/static-mod/scripts/lint.ts +36 -0
  71. package/file-templates/static-mod/tsconfig.json +5 -5
  72. package/file-templates/static-ts/.vscode/settings.json +1 -1
  73. package/file-templates/static-ts/{_cspell.json → _cspell.jsonc} +5 -5
  74. package/file-templates/static-ts/_eslintrc.cjs +1 -1
  75. package/file-templates/static-ts/knip.jsonc +6 -0
  76. package/file-templates/static-ts/prettier.config.mjs +6 -1
  77. package/file-templates/static-ts/scripts/lint.ts +30 -0
  78. package/file-templates/static-ts/tsconfig.json +3 -3
  79. package/package.json +27 -9
  80. package/plugins/addCrashDebugStatements.cjs +56 -0
  81. package/plugins/addCrashDebugStatements.ts +39 -0
  82. package/{src/plugins/addIsaacScriptCommentHeader.js → plugins/addIsaacScriptCommentHeader.cjs} +1 -1
  83. package/plugins/addIsaacScriptCommentHeader.ts +42 -0
  84. package/{src/plugins/addIsaacScriptCommentHeaderCommon.js → plugins/addIsaacScriptCommentHeaderCommon.cjs} +6 -4
  85. package/plugins/addIsaacScriptCommentHeaderCommon.ts +59 -0
  86. package/{src/plugins/noExtendedEnums.js → plugins/noExtendedEnums.cjs} +25 -4
  87. package/plugins/noExtendedEnums.ts +83 -0
  88. package/plugins/tsconfig.json +28 -0
  89. package/schemas/tsconfig-isaacscript-section-schema.json +1 -0
  90. package/file-templates/static/nuke.sh +0 -53
  91. package/file-templates/static/update.sh +0 -26
  92. package/file-templates/static-mod/build.sh +0 -22
  93. package/file-templates/static-mod/lint.sh +0 -43
  94. package/file-templates/static-mod/publish.sh +0 -10
  95. package/file-templates/static-mod/run.sh +0 -10
  96. package/file-templates/static-ts/build.sh +0 -53
  97. package/file-templates/static-ts/lint.sh +0 -35
  98. package/file-templates/static-ts/publish.sh +0 -10
  99. package/file-templates/static-ts/run.sh +0 -42
  100. package/src/checkForWindowsTerminalBugs.js +0 -71
  101. package/src/checkForWindowsTerminalBugs.js.map +0 -1
  102. package/src/classes/Config.js.map +0 -1
  103. package/src/classes/ValidatedConfig.js +0 -3
  104. package/src/classes/ValidatedConfig.js.map +0 -1
  105. package/src/commands/check/check.js.map +0 -1
  106. package/src/commands/check/check.test.js +0 -87
  107. package/src/commands/check/check.test.js.map +0 -1
  108. package/src/commands/copy/copy.js +0 -38
  109. package/src/commands/copy/copy.js.map +0 -1
  110. package/src/commands/init/checkIfProjectPathExists.js +0 -28
  111. package/src/commands/init/checkIfProjectPathExists.js.map +0 -1
  112. package/src/commands/init/checkModSubdirectory.js +0 -16
  113. package/src/commands/init/checkModSubdirectory.js.map +0 -1
  114. package/src/commands/init/checkModTargetDirectory.js +0 -31
  115. package/src/commands/init/checkModTargetDirectory.js.map +0 -1
  116. package/src/commands/init/createProject.js +0 -215
  117. package/src/commands/init/createProject.js.map +0 -1
  118. package/src/commands/init/getAuthorName.js +0 -27
  119. package/src/commands/init/getAuthorName.js.map +0 -1
  120. package/src/commands/init/getModsDir.js +0 -58
  121. package/src/commands/init/getModsDir.js.map +0 -1
  122. package/src/commands/init/getProjectPath.js +0 -89
  123. package/src/commands/init/getProjectPath.js.map +0 -1
  124. package/src/commands/init/init.js +0 -78
  125. package/src/commands/init/init.js.map +0 -1
  126. package/src/commands/init/installVSCodeExtensions.js +0 -35
  127. package/src/commands/init/installVSCodeExtensions.js.map +0 -1
  128. package/src/commands/init/promptSaveSlot.js +0 -22
  129. package/src/commands/init/promptSaveSlot.js.map +0 -1
  130. package/src/commands/init/promptVSCode.js.map +0 -1
  131. package/src/commands/monitor/copyWatcherMod.js +0 -39
  132. package/src/commands/monitor/copyWatcherMod.js.map +0 -1
  133. package/src/commands/monitor/modDirectorySyncer/modDirectorySyncer.js +0 -47
  134. package/src/commands/monitor/modDirectorySyncer/modDirectorySyncer.js.map +0 -1
  135. package/src/commands/monitor/monitor.js +0 -263
  136. package/src/commands/monitor/monitor.js.map +0 -1
  137. package/src/commands/monitor/notifyGame.js.map +0 -1
  138. package/src/commands/monitor/saveDatWriter/saveDatWriter.js.map +0 -1
  139. package/src/commands/monitor/saveDatWriter/types.js +0 -3
  140. package/src/commands/monitor/saveDatWriter/types.js.map +0 -1
  141. package/src/commands/monitor/spawnSaveDatWriter.js +0 -35
  142. package/src/commands/monitor/spawnSaveDatWriter.js.map +0 -1
  143. package/src/commands/monitor/touchWatcherSaveDatFiles.js +0 -21
  144. package/src/commands/monitor/touchWatcherSaveDatFiles.js.map +0 -1
  145. package/src/commands/publish/isaacscriptMod.js +0 -97
  146. package/src/commands/publish/isaacscriptMod.js.map +0 -1
  147. package/src/commands/publish/prePublish.js +0 -120
  148. package/src/commands/publish/prePublish.js.map +0 -1
  149. package/src/commands/publish/publish.js +0 -42
  150. package/src/commands/publish/publish.js.map +0 -1
  151. package/src/commands/publish/validate.js +0 -58
  152. package/src/commands/publish/validate.js.map +0 -1
  153. package/src/common.js +0 -69
  154. package/src/common.js.map +0 -1
  155. package/src/configFile.js +0 -64
  156. package/src/configFile.js.map +0 -1
  157. package/src/constants.js +0 -65
  158. package/src/constants.js.map +0 -1
  159. package/src/customStage.js +0 -304
  160. package/src/customStage.js.map +0 -1
  161. package/src/dev.js +0 -19
  162. package/src/dev.js.map +0 -1
  163. package/src/enums/DoorSlot.js.map +0 -1
  164. package/src/enums/DoorSlotFlag.js +0 -37
  165. package/src/enums/DoorSlotFlag.js.map +0 -1
  166. package/src/enums/PackageManager.js +0 -10
  167. package/src/enums/PackageManager.js.map +0 -1
  168. package/src/enums/RoomShape.js.map +0 -1
  169. package/src/exec.js.map +0 -1
  170. package/src/file.js +0 -247
  171. package/src/file.js.map +0 -1
  172. package/src/git.js +0 -154
  173. package/src/git.js.map +0 -1
  174. package/src/interfaces/GitHubCLIHostsYAML.js +0 -3
  175. package/src/interfaces/GitHubCLIHostsYAML.js.map +0 -1
  176. package/src/interfaces/IsaacScriptTSConfig.js +0 -3
  177. package/src/interfaces/IsaacScriptTSConfig.js.map +0 -1
  178. package/src/interfaces/ShadersXML.js +0 -3
  179. package/src/interfaces/ShadersXML.js.map +0 -1
  180. package/src/interfaces/copied/CustomStageTSConfig.js +0 -4
  181. package/src/interfaces/copied/CustomStageTSConfig.js.map +0 -1
  182. package/src/interfaces/copied/JSONRoomsFile.js +0 -4
  183. package/src/interfaces/copied/JSONRoomsFile.js.map +0 -1
  184. package/src/isaacScriptCommonTS.js +0 -233
  185. package/src/isaacScriptCommonTS.js.map +0 -1
  186. package/src/json.js +0 -42
  187. package/src/json.js.map +0 -1
  188. package/src/main.js +0 -127
  189. package/src/main.js.map +0 -1
  190. package/src/objects/doorSlotToDoorSlotFlag.js +0 -17
  191. package/src/objects/doorSlotToDoorSlotFlag.js.map +0 -1
  192. package/src/objects/roomShapeDoorToSlotCoordinates.js +0 -115
  193. package/src/objects/roomShapeDoorToSlotCoordinates.js.map +0 -1
  194. package/src/packageManager.js +0 -153
  195. package/src/packageManager.js.map +0 -1
  196. package/src/parseArgs.js.map +0 -1
  197. package/src/plugins/addCrashDebugStatements.js +0 -32
  198. package/src/plugins/addCrashDebugStatements.js.map +0 -1
  199. package/src/plugins/addIsaacScriptCommentHeader.js.map +0 -1
  200. package/src/plugins/addIsaacScriptCommentHeaderCommon.js.map +0 -1
  201. package/src/plugins/noExtendedEnums.js.map +0 -1
  202. package/src/prompt.js +0 -87
  203. package/src/prompt.js.map +0 -1
  204. package/src/tsconfig.js +0 -103
  205. package/src/tsconfig.js.map +0 -1
  206. package/src/types/Command.js +0 -9
  207. package/src/types/Command.js.map +0 -1
  208. package/src/utils.js +0 -15
  209. package/src/utils.js.map +0 -1
  210. package/src/validateInIsaacScriptProject.js +0 -36
  211. package/src/validateInIsaacScriptProject.js.map +0 -1
  212. package/src/validateNodeVersion.js +0 -29
  213. package/src/validateNodeVersion.js.map +0 -1
  214. package/src/version.js +0 -20
  215. package/src/version.js.map +0 -1
@@ -1,215 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createProject = void 0;
4
- const tslib_1 = require("tslib");
5
- const chalk_1 = tslib_1.__importDefault(require("chalk"));
6
- const node_path_1 = tslib_1.__importDefault(require("node:path"));
7
- const Config_js_1 = require("../../classes/Config.js");
8
- const configFile_js_1 = require("../../configFile.js");
9
- const constants_js_1 = require("../../constants.js");
10
- const PackageManager_js_1 = require("../../enums/PackageManager.js");
11
- const exec_js_1 = require("../../exec.js");
12
- const file_js_1 = require("../../file.js");
13
- const git_js_1 = require("../../git.js");
14
- const isaacScriptCommonTS_js_1 = require("../../isaacScriptCommonTS.js");
15
- const packageManager_js_1 = require("../../packageManager.js");
16
- function createProject(projectName, authorName, projectPath, createNewDir, modsDirectory, saveSlot, gitRemoteURL, skipInstall, packageManager, typeScript, dev, verbose) {
17
- if (createNewDir) {
18
- (0, file_js_1.makeDir)(projectPath, verbose);
19
- }
20
- const config = new Config_js_1.Config(modsDirectory, saveSlot, dev);
21
- (0, configFile_js_1.createConfigFile)(projectPath, config, typeScript, verbose);
22
- copyStaticFiles(projectPath, typeScript, verbose);
23
- copyDynamicFiles(projectName, authorName, projectPath, packageManager, dev, typeScript, verbose);
24
- upgradeYarn(projectPath, packageManager, verbose);
25
- updateNodeModules(projectPath, packageManager, verbose);
26
- installNodeModules(projectPath, skipInstall, packageManager, verbose);
27
- formatFiles(projectPath, packageManager, verbose);
28
- // Only make the initial commit once all of the files have been copied and formatted.
29
- (0, git_js_1.initGitRepository)(projectPath, gitRemoteURL, verbose);
30
- const noun = typeScript ? "project" : "mod";
31
- console.log(`Successfully created ${noun}: ${chalk_1.default.green(projectName)}`);
32
- }
33
- exports.createProject = createProject;
34
- /** Copy static files, like ".eslintrc.cjs", "tsconfig.json", etc. */
35
- function copyStaticFiles(projectPath, typeScript, verbose) {
36
- // First, copy the static files that are shared between TypeScript projects and IsaacScript mods.
37
- copyTemplateDirectoryWithoutOverwriting(constants_js_1.TEMPLATES_STATIC_DIR, projectPath, verbose);
38
- // Second, copy the files that are specific to either a TypeScript project or an IsaacScript mod.
39
- const staticDirSuffix = typeScript ? "ts" : "mod";
40
- const staticDirPath = node_path_1.default.join(constants_js_1.TEMPLATES_DIR, `static-${staticDirSuffix}`);
41
- copyTemplateDirectoryWithoutOverwriting(staticDirPath, projectPath, verbose);
42
- // Rename "_eslintrc.cjs" to ".eslintrc.cjs". (If it is kept as ".eslintrc.cjs", then local
43
- // linting will fail.)
44
- const ESLintConfigPath = node_path_1.default.join(projectPath, "_eslintrc.cjs");
45
- const correctESLintConfigPath = node_path_1.default.join(projectPath, ".eslintrc.cjs");
46
- (0, file_js_1.renameFile)(ESLintConfigPath, correctESLintConfigPath, verbose);
47
- // Rename "_gitattributes" to ".gitattributes". (If it is kept as ".gitattributes", then it won't
48
- // be committed to git.)
49
- const gitAttributesPath = node_path_1.default.join(projectPath, "_gitattributes");
50
- const correctGitAttributesPath = node_path_1.default.join(projectPath, ".gitattributes");
51
- (0, file_js_1.renameFile)(gitAttributesPath, correctGitAttributesPath, verbose);
52
- // Rename "_cspell.json" to "cspell.json". (If it is kept as "cspell.json", then local spell
53
- // checking will fail.)
54
- const cSpellConfigPath = node_path_1.default.join(projectPath, "_cspell.json");
55
- const correctCSpellConfigPath = node_path_1.default.join(projectPath, "cspell.json");
56
- (0, file_js_1.renameFile)(cSpellConfigPath, correctCSpellConfigPath, verbose);
57
- }
58
- function copyTemplateDirectoryWithoutOverwriting(templateDirPath, projectPath, verbose) {
59
- const dirList = (0, file_js_1.getDirList)(templateDirPath, verbose);
60
- for (const fileName of dirList) {
61
- const templateFilePath = node_path_1.default.join(templateDirPath, fileName);
62
- const destinationFilePath = node_path_1.default.join(projectPath, fileName);
63
- if (!(0, file_js_1.fileExists)(destinationFilePath, verbose)) {
64
- (0, file_js_1.copyFile)(templateFilePath, destinationFilePath, verbose);
65
- }
66
- }
67
- }
68
- /** Copy files that need to have text replaced inside of them. */
69
- function copyDynamicFiles(projectName, authorName, projectPath, packageManager, dev, typeScript, verbose) {
70
- const workflowsPath = node_path_1.default.join(projectPath, ".github", "workflows");
71
- (0, file_js_1.makeDir)(workflowsPath, verbose);
72
- // `.github/workflows/ci.yml`
73
- {
74
- const fileName = constants_js_1.CI_YML;
75
- const templatePath = constants_js_1.CI_YML_TEMPLATE_PATH;
76
- const templateRaw = (0, file_js_1.readFile)(templatePath, verbose);
77
- const template = parseTemplate(templateRaw, typeScript);
78
- const lockFileName = (0, packageManager_js_1.getPackageManagerLockFileName)(packageManager);
79
- const installCommand = (0, packageManager_js_1.getPackageManagerInstallCICommand)(packageManager);
80
- const ciYML = template
81
- .replaceAll("PACKAGE_MANAGER_NAME", packageManager)
82
- .replaceAll("PACKAGE_MANAGER_LOCK_FILE_NAME", lockFileName)
83
- .replaceAll("PACKAGE_MANAGER_INSTALL_COMMAND", installCommand);
84
- const destinationPath = node_path_1.default.join(workflowsPath, fileName);
85
- (0, file_js_1.writeFile)(destinationPath, ciYML, verbose);
86
- }
87
- // `.gitignore`
88
- {
89
- const templatePath = constants_js_1.GITIGNORE_TEMPLATE_PATH;
90
- const templateRaw = (0, file_js_1.readFile)(templatePath, verbose);
91
- const template = parseTemplate(templateRaw, typeScript);
92
- // Prepend a header with the project name.
93
- let separatorLine = "# ";
94
- (0, isaacScriptCommonTS_js_1.repeat)(projectName.length, () => {
95
- separatorLine += "-";
96
- });
97
- separatorLine += "\n";
98
- const gitIgnoreHeader = `${separatorLine}# ${projectName}\n${separatorLine}\n`;
99
- const nodeGitIgnorePath = node_path_1.default.join(constants_js_1.TEMPLATES_DYNAMIC_DIR, "Node.gitignore");
100
- const nodeGitIgnore = (0, file_js_1.readFile)(nodeGitIgnorePath, verbose);
101
- // eslint-disable-next-line prefer-template
102
- const gitignore = gitIgnoreHeader + template + "\n" + nodeGitIgnore;
103
- // We need to replace the underscore with a period.
104
- const destinationPath = node_path_1.default.join(projectPath, ".gitignore");
105
- (0, file_js_1.writeFile)(destinationPath, gitignore, verbose);
106
- }
107
- // `package.json`
108
- {
109
- // There are two versions of the template, one for TypeScript, and one for IsaacScript mods.
110
- const packageJSONTemplateFileName = typeScript
111
- ? "package.ts.json"
112
- : "package.mod.json";
113
- const templatePath = node_path_1.default.join(constants_js_1.TEMPLATES_DYNAMIC_DIR, packageJSONTemplateFileName);
114
- const template = (0, file_js_1.readFile)(templatePath, verbose);
115
- const packageJSON = template
116
- .replaceAll("PROJECT_NAME", projectName)
117
- .replaceAll("AUTHOR_NAME", authorName ?? "unknown")
118
- .replaceAll("PACKAGE_MANAGER", packageManager);
119
- const destinationPath = node_path_1.default.join(projectPath, constants_js_1.PACKAGE_JSON);
120
- (0, file_js_1.writeFile)(destinationPath, packageJSON, verbose);
121
- }
122
- // `README.md`
123
- {
124
- // There are two versions of the template, one for TypeScript, and one for IsaacScript mods.
125
- const readmeMDTemplateFileName = typeScript
126
- ? "README.ts.md"
127
- : "README.mod.md";
128
- const templatePath = node_path_1.default.join(constants_js_1.TEMPLATES_DYNAMIC_DIR, readmeMDTemplateFileName);
129
- const template = (0, file_js_1.readFile)(templatePath, verbose);
130
- // "PROJECT-NAME" must be hyphenated, as using an underscore will break Prettier for some
131
- // reason.
132
- const readmeMD = template.replaceAll("PROJECT-NAME", projectName);
133
- const destinationPath = node_path_1.default.join(projectPath, constants_js_1.README_MD);
134
- (0, file_js_1.writeFile)(destinationPath, readmeMD, verbose);
135
- }
136
- // `mod/metadata.xml`
137
- if (!typeScript) {
138
- const modPath = node_path_1.default.join(projectPath, "mod");
139
- (0, file_js_1.makeDir)(modPath, verbose);
140
- const fileName = constants_js_1.METADATA_XML;
141
- const templatePath = constants_js_1.METADATA_XML_TEMPLATE_PATH;
142
- const template = (0, file_js_1.readFile)(templatePath, verbose);
143
- const metadataXML = template.replaceAll("PROJECT_NAME", projectName);
144
- const destinationPath = node_path_1.default.join(modPath, fileName);
145
- (0, file_js_1.writeFile)(destinationPath, metadataXML, verbose);
146
- }
147
- const srcPath = node_path_1.default.join(projectPath, "src");
148
- (0, file_js_1.makeDir)(srcPath, verbose);
149
- // `src/main.ts` (TypeScript projects use the simple version from the "static-ts" directory.)
150
- if (!typeScript) {
151
- // Convert snake_case and kebab-case to camelCase. (Kebab-case in particular will make the
152
- // example TypeScript file fail to compile.)
153
- const fileName = constants_js_1.MAIN_TS;
154
- const templatePath = constants_js_1.MAIN_TS_TEMPLATE_PATH;
155
- const template = (0, file_js_1.readFile)(templatePath, verbose);
156
- const mainTS = template.replaceAll("PROJECT_NAME", projectName);
157
- const destinationPath = node_path_1.default.join(srcPath, fileName);
158
- (0, file_js_1.writeFile)(destinationPath, mainTS, verbose);
159
- }
160
- // If we are initializing an IsaacScript project intended to be used for development, we can
161
- // include a better starter file.
162
- if (!typeScript && dev) {
163
- const fileName = constants_js_1.MAIN_TS;
164
- const templatePath = constants_js_1.MAIN_DEV_TS_TEMPLATE_PATH;
165
- const template = (0, file_js_1.readFile)(templatePath, verbose);
166
- const mainTS = template; // No replacements are necessary for this file.
167
- const destinationPath = node_path_1.default.join(srcPath, fileName);
168
- (0, file_js_1.writeFile)(destinationPath, mainTS, verbose);
169
- }
170
- }
171
- function parseTemplate(template, typeScript) {
172
- const otherTemplateKind = typeScript ? "mod" : "ts";
173
- const otherTemplateMarker = `@template-${otherTemplateKind}`;
174
- const templateWithoutMarkers = (0, isaacScriptCommonTS_js_1.removeLinesBetweenMarkers)(template, otherTemplateMarker);
175
- const templateWithoutTemplateComments = (0, isaacScriptCommonTS_js_1.removeLinesMatching)(templateWithoutMarkers, "@template");
176
- const templateWithoutMultipleLineBreaks = templateWithoutTemplateComments.replaceAll(/\n\s*\n\s*\n/g, "\n\n");
177
- return templateWithoutMultipleLineBreaks;
178
- }
179
- /**
180
- * If we are using yarn, assume that we want to use the latest version, which requires some
181
- * additional commands to be performed.
182
- */
183
- function upgradeYarn(projectPath, packageManager, verbose) {
184
- if (packageManager !== PackageManager_js_1.PackageManager.yarn) {
185
- return;
186
- }
187
- (0, exec_js_1.execShell)("yarn", ["set", "version", "latest"], verbose, false, projectPath);
188
- (0, exec_js_1.execShell)("yarn", ["config", "set", "nodeLinker", "node-modules"], verbose, false, projectPath);
189
- }
190
- /** The "package.json" file has to be copied first before this step. */
191
- function updateNodeModules(projectPath, packageManager, verbose) {
192
- console.log('Finding out the latest versions of the packages with "npm-check-updates"...');
193
- const packageManagerExecCommand = (0, packageManager_js_1.getPackageManagerExecCommand)(packageManager);
194
- (0, exec_js_1.execShell)(packageManagerExecCommand, [
195
- "npm-check-updates",
196
- "--upgrade",
197
- "--packageFile",
198
- "package.json",
199
- "--filterVersion",
200
- "^*",
201
- ], verbose, false, projectPath);
202
- }
203
- function installNodeModules(projectPath, skipInstall, packageManager, verbose) {
204
- if (skipInstall) {
205
- return;
206
- }
207
- const command = (0, packageManager_js_1.getPackageManagerInstallCommand)(packageManager);
208
- console.log(`Installing node modules with "${command}"... (This can take a long time.)`);
209
- (0, exec_js_1.execShellString)(command, verbose, false, projectPath);
210
- }
211
- function formatFiles(projectPath, packageManager, verbose) {
212
- const packageManagerExecCommand = (0, packageManager_js_1.getPackageManagerExecCommand)(packageManager);
213
- (0, exec_js_1.execShell)(packageManagerExecCommand, ["prettier", "--write", projectPath], verbose, false, projectPath);
214
- }
215
- //# sourceMappingURL=createProject.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"createProject.js","sourceRoot":"","sources":["../../../../../../packages/isaacscript-cli/src/commands/init/createProject.ts"],"names":[],"mappings":"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"}
@@ -1,27 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getAuthorName = void 0;
4
- const git_js_1 = require("../../git.js");
5
- const isaacScriptCommonTS_js_1 = require("../../isaacScriptCommonTS.js");
6
- const prompt_js_1 = require("../../prompt.js");
7
- async function getAuthorName(typeScript, verbose) {
8
- const gitHubUsername = (0, git_js_1.getGitHubUsername)(verbose);
9
- if (gitHubUsername !== undefined) {
10
- return gitHubUsername;
11
- }
12
- if (!typeScript) {
13
- // In IsaacScript mods, putting the author in the "package.json" file is not necessary.
14
- return undefined;
15
- }
16
- return getNewAuthorName();
17
- }
18
- exports.getAuthorName = getAuthorName;
19
- async function getNewAuthorName() {
20
- console.log("The author name was not found from the GitHub CLI configuration file.");
21
- const authorName = await (0, prompt_js_1.getInputString)("Enter the author of the project:");
22
- if (authorName === "") {
23
- (0, isaacScriptCommonTS_js_1.fatalError)("You must enter an author name.");
24
- }
25
- return authorName;
26
- }
27
- //# sourceMappingURL=getAuthorName.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getAuthorName.js","sourceRoot":"","sources":["../../../../../../packages/isaacscript-cli/src/commands/init/getAuthorName.ts"],"names":[],"mappings":";;;AAAA,yCAAiD;AACjD,yEAA0D;AAC1D,+CAAiD;AAE1C,KAAK,UAAU,aAAa,CACjC,UAAmB,EACnB,OAAgB;IAEhB,MAAM,cAAc,GAAG,IAAA,0BAAiB,EAAC,OAAO,CAAC,CAAC;IAClD,IAAI,cAAc,KAAK,SAAS,EAAE;QAChC,OAAO,cAAc,CAAC;KACvB;IAED,IAAI,CAAC,UAAU,EAAE;QACf,uFAAuF;QACvF,OAAO,SAAS,CAAC;KAClB;IAED,OAAO,gBAAgB,EAAE,CAAC;AAC5B,CAAC;AAfD,sCAeC;AAED,KAAK,UAAU,gBAAgB;IAC7B,OAAO,CAAC,GAAG,CACT,uEAAuE,CACxE,CAAC;IACF,MAAM,UAAU,GAAG,MAAM,IAAA,0BAAc,EAAC,kCAAkC,CAAC,CAAC;IAC5E,IAAI,UAAU,KAAK,EAAE,EAAE;QACrB,IAAA,mCAAU,EAAC,gCAAgC,CAAC,CAAC;KAC9C;IAED,OAAO,UAAU,CAAC;AACpB,CAAC"}
@@ -1,58 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getModsDir = void 0;
4
- const tslib_1 = require("tslib");
5
- const chalk_1 = tslib_1.__importDefault(require("chalk"));
6
- const node_path_1 = tslib_1.__importDefault(require("node:path"));
7
- const constants_js_1 = require("../../constants.js");
8
- const file_js_1 = require("../../file.js");
9
- const isaacScriptCommonTS_js_1 = require("../../isaacScriptCommonTS.js");
10
- const prompt_js_1 = require("../../prompt.js");
11
- const MODS = "mods";
12
- const DEFAULT_MODS_PATH_WINDOWS = node_path_1.default.join("C:", "Program Files (x86)", "Steam", "steamapps", "common", "The Binding of Isaac Rebirth", MODS);
13
- /** This is a subdirectory of `$HOME`. */
14
- const DEFAULT_MODS_PATH_LINUX = node_path_1.default.join(constants_js_1.HOME_DIR, ".local", "share", "Steam", "steamapps", "common", "The Binding of Isaac Rebirth", MODS);
15
- async function getModsDir(args, typeScript, verbose) {
16
- if (typeScript) {
17
- return undefined;
18
- }
19
- if (args.modsDirectory !== undefined) {
20
- // They specified the "--mods-directory" command-line flag, so there is no need to prompt the
21
- // user for it.
22
- return args.modsDirectory;
23
- }
24
- const defaultModsPath = getDefaultModsPath(process.platform);
25
- if ((0, file_js_1.fileExists)(defaultModsPath, verbose) && (0, file_js_1.isDir)(defaultModsPath, verbose)) {
26
- return defaultModsPath;
27
- }
28
- console.error(`Failed to find your mods directory at: ${chalk_1.default.green(defaultModsPath)}`);
29
- const modsDir = await (0, prompt_js_1.getInputString)(`Enter the full path to the "${MODS}" directory on your system, which should be next to your "isaac-ng.exe" program:`);
30
- if (modsDir === "") {
31
- (0, isaacScriptCommonTS_js_1.fatalError)("Error: You did not provide a response; exiting.");
32
- }
33
- if (!(0, file_js_1.fileExists)(modsDir, verbose)) {
34
- (0, isaacScriptCommonTS_js_1.fatalError)(`Error: The directory of "${chalk_1.default.green(modsDir)}" does not exist. Exiting.`);
35
- }
36
- if (!(0, file_js_1.isDir)(modsDir, verbose)) {
37
- (0, isaacScriptCommonTS_js_1.fatalError)(`Error: The path of "${chalk_1.default.green(modsDir)}" is not a directory. Exiting.`);
38
- }
39
- if (node_path_1.default.basename(modsDir) !== MODS) {
40
- (0, isaacScriptCommonTS_js_1.fatalError)(`Error: You entered a path of "${chalk_1.default.green(modsDir)}", but you need to input a directory with a name of "${MODS}" at the end. Exiting.`);
41
- }
42
- return modsDir;
43
- }
44
- exports.getModsDir = getModsDir;
45
- function getDefaultModsPath(platform) {
46
- switch (platform) {
47
- case "win32": {
48
- return DEFAULT_MODS_PATH_WINDOWS;
49
- }
50
- case "linux": {
51
- return DEFAULT_MODS_PATH_LINUX;
52
- }
53
- default: {
54
- return (0, isaacScriptCommonTS_js_1.fatalError)(`There does not exist a default mod path for the platform of: ${chalk_1.default.green(platform)}`);
55
- }
56
- }
57
- }
58
- //# sourceMappingURL=getModsDir.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getModsDir.js","sourceRoot":"","sources":["../../../../../../packages/isaacscript-cli/src/commands/init/getModsDir.ts"],"names":[],"mappings":";;;;AAAA,0DAA0B;AAC1B,kEAA6B;AAC7B,qDAA8C;AAC9C,2CAAkD;AAClD,yEAA0D;AAE1D,+CAAiD;AAEjD,MAAM,IAAI,GAAG,MAAM,CAAC;AAEpB,MAAM,yBAAyB,GAAG,mBAAI,CAAC,IAAI,CACzC,IAAI,EACJ,qBAAqB,EACrB,OAAO,EACP,WAAW,EACX,QAAQ,EACR,8BAA8B,EAC9B,IAAI,CACL,CAAC;AAEF,yCAAyC;AACzC,MAAM,uBAAuB,GAAG,mBAAI,CAAC,IAAI,CACvC,uBAAQ,EACR,QAAQ,EACR,OAAO,EACP,OAAO,EACP,WAAW,EACX,QAAQ,EACR,8BAA8B,EAC9B,IAAI,CACL,CAAC;AAEK,KAAK,UAAU,UAAU,CAC9B,IAAU,EACV,UAAmB,EACnB,OAAgB;IAEhB,IAAI,UAAU,EAAE;QACd,OAAO,SAAS,CAAC;KAClB;IAED,IAAI,IAAI,CAAC,aAAa,KAAK,SAAS,EAAE;QACpC,6FAA6F;QAC7F,eAAe;QACf,OAAO,IAAI,CAAC,aAAa,CAAC;KAC3B;IAED,MAAM,eAAe,GAAG,kBAAkB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAE7D,IAAI,IAAA,oBAAU,EAAC,eAAe,EAAE,OAAO,CAAC,IAAI,IAAA,eAAK,EAAC,eAAe,EAAE,OAAO,CAAC,EAAE;QAC3E,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,0BAAc,EAClC,+BAA+B,IAAI,kFAAkF,CACtH,CAAC;IAEF,IAAI,OAAO,KAAK,EAAE,EAAE;QAClB,IAAA,mCAAU,EAAC,iDAAiD,CAAC,CAAC;KAC/D;IAED,IAAI,CAAC,IAAA,oBAAU,EAAC,OAAO,EAAE,OAAO,CAAC,EAAE;QACjC,IAAA,mCAAU,EACR,4BAA4B,eAAK,CAAC,KAAK,CACrC,OAAO,CACR,4BAA4B,CAC9B,CAAC;KACH;IAED,IAAI,CAAC,IAAA,eAAK,EAAC,OAAO,EAAE,OAAO,CAAC,EAAE;QAC5B,IAAA,mCAAU,EACR,uBAAuB,eAAK,CAAC,KAAK,CAChC,OAAO,CACR,gCAAgC,CAClC,CAAC;KACH;IAED,IAAI,mBAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE;QACnC,IAAA,mCAAU,EACR,iCAAiC,eAAK,CAAC,KAAK,CAC1C,OAAO,CACR,wDAAwD,IAAI,wBAAwB,CACtF,CAAC;KACH;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAzDD,gCAyDC;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,OAAO,IAAA,mCAAU,EACf,gEAAgE,eAAK,CAAC,KAAK,CACzE,QAAQ,CACT,EAAE,CACJ,CAAC;SACH;KACF;AACH,CAAC"}
@@ -1,89 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getProjectPath = void 0;
4
- const tslib_1 = require("tslib");
5
- const chalk_1 = tslib_1.__importDefault(require("chalk"));
6
- const node_path_1 = tslib_1.__importDefault(require("node:path"));
7
- const constants_js_1 = require("../../constants.js");
8
- const isaacScriptCommonTS_js_1 = require("../../isaacScriptCommonTS.js");
9
- const prompt_js_1 = require("../../prompt.js");
10
- // From: https://gist.github.com/doctaphred/d01d05291546186941e1b7ddc02034d3
11
- const ILLEGAL_CHARACTERS_FOR_WINDOWS_FILENAMES = [
12
- "<",
13
- ">",
14
- ":",
15
- '"',
16
- "/",
17
- "\\",
18
- "|",
19
- "?",
20
- "*",
21
- ];
22
- async function getProjectPath(args, useCurrentDir, yes, forceName) {
23
- let projectName = getProjectNameFromCommandLineArgument(args);
24
- let projectPath;
25
- let createNewDir;
26
- if (useCurrentDir) {
27
- // The "--use-current-dir" command-line flag was specified, so there is no need to prompt the
28
- // user.
29
- projectName = constants_js_1.CURRENT_DIRECTORY_NAME;
30
- projectPath = constants_js_1.CWD;
31
- createNewDir = false;
32
- }
33
- else if (projectName !== undefined) {
34
- // The project name was specified on the command-line.
35
- projectPath = node_path_1.default.join(constants_js_1.CWD, projectName);
36
- createNewDir = true;
37
- }
38
- else if (yes) {
39
- // The "--yes" command-line flag was specified and the project name was not specified on the
40
- // command-line, so default to using the current directory.
41
- projectName = constants_js_1.CURRENT_DIRECTORY_NAME;
42
- projectPath = constants_js_1.CWD;
43
- createNewDir = false;
44
- }
45
- else {
46
- // The project name was not specified on the command-line, so prompt the user for it.
47
- [projectName, projectPath, createNewDir] = await getNewProjectName();
48
- }
49
- validateProjectName(projectName, forceName);
50
- console.log(`Using a project name of: ${chalk_1.default.green(projectName)}`);
51
- return [projectPath, createNewDir];
52
- }
53
- exports.getProjectPath = getProjectPath;
54
- function getProjectNameFromCommandLineArgument(args) {
55
- const { name } = args;
56
- return typeof name === "string" && name !== "" ? name : undefined;
57
- }
58
- async function getNewProjectName() {
59
- console.log("You did not specify a project name as a command-line argument.");
60
- const shouldUseCurrentDir = await (0, prompt_js_1.getInputYesNo)(`Would you like to create a new project using the current directory "${chalk_1.default.green(constants_js_1.CURRENT_DIRECTORY_NAME)}" as the root?`);
61
- if (shouldUseCurrentDir) {
62
- return [constants_js_1.CURRENT_DIRECTORY_NAME, constants_js_1.CWD, false];
63
- }
64
- const projectName = await (0, prompt_js_1.getInputString)("Enter the name of the project:");
65
- const projectPath = node_path_1.default.join(constants_js_1.CWD, projectName);
66
- return [projectName, projectPath, true];
67
- }
68
- function validateProjectName(projectName, forceName) {
69
- if (projectName === "") {
70
- (0, isaacScriptCommonTS_js_1.fatalError)("Error: You cannot have a blank project name.");
71
- }
72
- if (process.platform === "win32") {
73
- for (const character of ILLEGAL_CHARACTERS_FOR_WINDOWS_FILENAMES) {
74
- if (projectName.includes(character)) {
75
- (0, isaacScriptCommonTS_js_1.fatalError)(`Error: The "${character}" character is not allowed in a Windows file name.`);
76
- }
77
- }
78
- }
79
- if (forceName) {
80
- return;
81
- }
82
- if ((0, isaacScriptCommonTS_js_1.hasWhiteSpace)(projectName)) {
83
- (0, isaacScriptCommonTS_js_1.fatalError)('Error: The project name has whitespace in it, which is not allowed. Use kebab-case for your project name. (e.g. "green-candle")');
84
- }
85
- if (!(0, isaacScriptCommonTS_js_1.isKebabCase)(projectName)) {
86
- (0, isaacScriptCommonTS_js_1.fatalError)('Error: The project name is not in kebab-case. (Kebab-case is the style of using all lowercase letters, with words separated by hyphens.) Project names must use kebab-case to match GitHub repository standards. If necessary, you can override this check with the "--force-name" flag.');
87
- }
88
- }
89
- //# sourceMappingURL=getProjectPath.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getProjectPath.js","sourceRoot":"","sources":["../../../../../../packages/isaacscript-cli/src/commands/init/getProjectPath.ts"],"names":[],"mappings":"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"}
@@ -1,78 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.init = void 0;
4
- const tslib_1 = require("tslib");
5
- const chalk_1 = tslib_1.__importDefault(require("chalk"));
6
- const command_exists_1 = tslib_1.__importDefault(require("command-exists"));
7
- const node_path_1 = tslib_1.__importDefault(require("node:path"));
8
- const constants_js_1 = require("../../constants.js");
9
- const git_js_1 = require("../../git.js");
10
- const packageManager_js_1 = require("../../packageManager.js");
11
- const checkIfProjectPathExists_js_1 = require("./checkIfProjectPathExists.js");
12
- const checkModSubdirectory_js_1 = require("./checkModSubdirectory.js");
13
- const checkModTargetDirectory_js_1 = require("./checkModTargetDirectory.js");
14
- const createProject_js_1 = require("./createProject.js");
15
- const getAuthorName_js_1 = require("./getAuthorName.js");
16
- const getModsDir_js_1 = require("./getModsDir.js");
17
- const getProjectPath_js_1 = require("./getProjectPath.js");
18
- const installVSCodeExtensions_js_1 = require("./installVSCodeExtensions.js");
19
- const promptSaveSlot_js_1 = require("./promptSaveSlot.js");
20
- const promptVSCode_js_1 = require("./promptVSCode.js");
21
- async function init(args, typeScript) {
22
- const packageManager = (0, packageManager_js_1.getPackageManagerUsedForNewProject)(args);
23
- const noGit = args.noGit === true;
24
- const skipInstall = args.skipInstall === true;
25
- const useCurrentDir = args.useCurrentDir === true;
26
- const verbose = args.verbose === true;
27
- const vscode = args.vscode === true;
28
- const yes = args.yes === true;
29
- const forceName = args.forceName === true;
30
- const dev = args.dev === true;
31
- // Prompt the end-user for some information (and validate it as we go).
32
- const [projectPath, createNewDir] = await (0, getProjectPath_js_1.getProjectPath)(args, useCurrentDir, yes, forceName);
33
- await (0, checkIfProjectPathExists_js_1.checkIfProjectPathExists)(projectPath, yes, verbose);
34
- const projectName = node_path_1.default.basename(projectPath);
35
- const authorName = await (0, getAuthorName_js_1.getAuthorName)(typeScript, verbose);
36
- const gitRemoteURL = await (0, git_js_1.promptGitHubRepoOrGitRemoteURL)(projectName, noGit, yes, dev, verbose);
37
- const modsDirectory = await (0, getModsDir_js_1.getModsDir)(args, typeScript, verbose);
38
- if (modsDirectory !== undefined) {
39
- (0, checkModSubdirectory_js_1.checkModSubdirectory)(projectPath, modsDirectory);
40
- await (0, checkModTargetDirectory_js_1.checkModTargetDirectory)(modsDirectory, projectName, yes, verbose);
41
- }
42
- const saveSlot = typeScript ? undefined : await (0, promptSaveSlot_js_1.promptSaveSlot)(args, yes);
43
- // Now that we have asked the user all of the questions we need, we can create the project.
44
- (0, createProject_js_1.createProject)(projectName, authorName, projectPath, createNewDir, modsDirectory, saveSlot, gitRemoteURL, skipInstall, packageManager, typeScript, dev, verbose);
45
- await openVSCode(projectPath, vscode, yes, verbose);
46
- printFinishMessage(projectPath, projectName, packageManager, typeScript);
47
- }
48
- exports.init = init;
49
- async function openVSCode(projectPath, vscode, yes, verbose) {
50
- const VSCodeCommand = getVSCodeCommand();
51
- if (VSCodeCommand === undefined) {
52
- console.log('VSCode does not seem to be installed. (The "code" command is not in the path.) Skipping VSCode-related things.');
53
- return;
54
- }
55
- (0, installVSCodeExtensions_js_1.installVSCodeExtensions)(projectPath, VSCodeCommand, verbose);
56
- await (0, promptVSCode_js_1.promptVSCode)(projectPath, VSCodeCommand, vscode, yes, verbose);
57
- }
58
- function getVSCodeCommand() {
59
- for (const VSCodeCommand of ["code", "codium", "code-oss", "code-insiders"]) {
60
- if (command_exists_1.default.sync(VSCodeCommand)) {
61
- return VSCodeCommand;
62
- }
63
- }
64
- return undefined;
65
- }
66
- function printFinishMessage(projectPath, projectName, packageManager, typeScript) {
67
- if (typeScript) {
68
- return;
69
- }
70
- let commandsToType = "";
71
- if (projectPath !== constants_js_1.CWD) {
72
- commandsToType += `"${chalk_1.default.green(`cd ${projectName}`)}" and `;
73
- }
74
- const packageManagerExecCommand = (0, packageManager_js_1.getPackageManagerExecCommand)(packageManager);
75
- commandsToType += `"${chalk_1.default.green(`${packageManagerExecCommand} isaacscript`)}"`;
76
- console.log(`Now, start ${constants_js_1.PROJECT_NAME} by typing ${commandsToType}.`);
77
- }
78
- //# sourceMappingURL=init.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../../../../../packages/isaacscript-cli/src/commands/init/init.ts"],"names":[],"mappings":"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"}
@@ -1,35 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.installVSCodeExtensions = void 0;
4
- const tslib_1 = require("tslib");
5
- const node_path_1 = tslib_1.__importDefault(require("node:path"));
6
- const exec_js_1 = require("../../exec.js");
7
- const file_js_1 = require("../../file.js");
8
- const isaacScriptCommonTS_js_1 = require("../../isaacScriptCommonTS.js");
9
- const json_js_1 = require("../../json.js");
10
- function installVSCodeExtensions(projectPath, VSCodeCommand, verbose) {
11
- // Installing extensions from inside WSL on Windows will result in the VSCode process never
12
- // exiting for some reason. Thus, skip this step on Linux. (Linux users will probably be smart
13
- // enough to install the extensions on their own.)
14
- if (process.platform === "linux") {
15
- return;
16
- }
17
- const extensions = getExtensionsFromJSON(projectPath, verbose);
18
- for (const extensionName of extensions) {
19
- (0, exec_js_1.execShell)(VSCodeCommand, ["--install-extension", extensionName], verbose);
20
- }
21
- }
22
- exports.installVSCodeExtensions = installVSCodeExtensions;
23
- function getExtensionsFromJSON(projectPath, verbose) {
24
- const extensionsJSONPath = node_path_1.default.join(projectPath, ".vscode", "extensions.json");
25
- if (!(0, file_js_1.fileExists)(extensionsJSONPath, verbose)) {
26
- return [];
27
- }
28
- const extensionsJSON = (0, json_js_1.getJSONC)(extensionsJSONPath, verbose);
29
- const { recommendations } = extensionsJSON;
30
- if (!Array.isArray(recommendations)) {
31
- (0, isaacScriptCommonTS_js_1.fatalError)('The "recommendations" field in the "extensions.json" file is not an array.');
32
- }
33
- return recommendations;
34
- }
35
- //# sourceMappingURL=installVSCodeExtensions.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"installVSCodeExtensions.js","sourceRoot":"","sources":["../../../../../../packages/isaacscript-cli/src/commands/init/installVSCodeExtensions.ts"],"names":[],"mappings":";;;;AAAA,kEAA6B;AAC7B,2CAA0C;AAC1C,2CAA2C;AAC3C,yEAA0D;AAC1D,2CAAyC;AAEzC,SAAgB,uBAAuB,CACrC,WAAmB,EACnB,aAAqB,EACrB,OAAgB;IAEhB,2FAA2F;IAC3F,8FAA8F;IAC9F,kDAAkD;IAClD,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE;QAChC,OAAO;KACR;IAED,MAAM,UAAU,GAAG,qBAAqB,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAC/D,KAAK,MAAM,aAAa,IAAI,UAAU,EAAE;QACtC,IAAA,mBAAS,EAAC,aAAa,EAAE,CAAC,qBAAqB,EAAE,aAAa,CAAC,EAAE,OAAO,CAAC,CAAC;KAC3E;AACH,CAAC;AAhBD,0DAgBC;AAED,SAAS,qBAAqB,CAC5B,WAAmB,EACnB,OAAgB;IAEhB,MAAM,kBAAkB,GAAG,mBAAI,CAAC,IAAI,CAClC,WAAW,EACX,SAAS,EACT,iBAAiB,CAClB,CAAC;IAEF,IAAI,CAAC,IAAA,oBAAU,EAAC,kBAAkB,EAAE,OAAO,CAAC,EAAE;QAC5C,OAAO,EAAE,CAAC;KACX;IAED,MAAM,cAAc,GAAG,IAAA,kBAAQ,EAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC;IAE7D,MAAM,EAAE,eAAe,EAAE,GAAG,cAAc,CAAC;IAC3C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE;QACnC,IAAA,mCAAU,EACR,4EAA4E,CAC7E,CAAC;KACH;IAED,OAAO,eAA2B,CAAC;AACrC,CAAC"}
@@ -1,22 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.promptSaveSlot = void 0;
4
- const isaacScriptCommonTS_js_1 = require("../../isaacScriptCommonTS.js");
5
- const prompt_js_1 = require("../../prompt.js");
6
- async function promptSaveSlot(args, yes) {
7
- if (args.saveSlot !== undefined) {
8
- // They specified the "--save-slot" command-line flag, so there is no need to prompt the user
9
- // for it.
10
- return args.saveSlot;
11
- }
12
- if (yes) {
13
- return 1;
14
- }
15
- const saveSlot = await (0, prompt_js_1.getInputInt)("In-game, will you test your mod on save slot 1, 2, or 3?");
16
- if (saveSlot !== 1 && saveSlot !== 2 && saveSlot !== 3) {
17
- (0, isaacScriptCommonTS_js_1.fatalError)("Error: You must choose a number between 1 and 3.");
18
- }
19
- return saveSlot;
20
- }
21
- exports.promptSaveSlot = promptSaveSlot;
22
- //# sourceMappingURL=promptSaveSlot.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"promptSaveSlot.js","sourceRoot":"","sources":["../../../../../../packages/isaacscript-cli/src/commands/init/promptSaveSlot.ts"],"names":[],"mappings":";;;AAAA,yEAA0D;AAE1D,+CAA8C;AAEvC,KAAK,UAAU,cAAc,CAClC,IAAU,EACV,GAAY;IAEZ,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE;QAC/B,6FAA6F;QAC7F,UAAU;QACV,OAAO,IAAI,CAAC,QAAQ,CAAC;KACtB;IAED,IAAI,GAAG,EAAE;QACP,OAAO,CAAC,CAAC;KACV;IAED,MAAM,QAAQ,GAAG,MAAM,IAAA,uBAAW,EAChC,0DAA0D,CAC3D,CAAC;IAEF,IAAI,QAAQ,KAAK,CAAC,IAAI,QAAQ,KAAK,CAAC,IAAI,QAAQ,KAAK,CAAC,EAAE;QACtD,IAAA,mCAAU,EAAC,kDAAkD,CAAC,CAAC;KAChE;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAvBD,wCAuBC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"promptVSCode.js","sourceRoot":"","sources":["../../../../../../packages/isaacscript-cli/src/commands/init/promptVSCode.ts"],"names":[],"mappings":";;;AAAA,2CAA0C;AAC1C,+CAAgD;AAEzC,KAAK,UAAU,YAAY,CAChC,WAAmB,EACnB,aAAqB,EACrB,MAAe,EACf,GAAY,EACZ,OAAgB;IAEhB,IAAI,MAAM,EAAE;QACV,0FAA0F;QAC1F,UAAU,CAAC,WAAW,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC;QAChD,OAAO;KACR;IAED,IAAI,GAAG,EAAE;QACP,8FAA8F;QAC9F,0BAA0B;QAC1B,OAAO;KACR;IAED,mEAAmE;IACnE,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE;QAChC,OAAO;KACR;IAED,MAAM,gBAAgB,GAAG,MAAM,IAAA,yBAAa,EAC1C,qDAAqD,CACtD,CAAC;IACF,IAAI,gBAAgB,EAAE;QACpB,UAAU,CAAC,WAAW,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC;KACjD;AACH,CAAC;AA9BD,oCA8BC;AAED,SAAS,UAAU,CACjB,WAAmB,EACnB,aAAqB,EACrB,OAAgB;IAEhB,IAAA,mBAAS,EAAC,aAAa,EAAE,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC,CAAC;AACnD,CAAC"}
@@ -1,39 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.copyWatcherMod = void 0;
4
- const tslib_1 = require("tslib");
5
- const node_path_1 = tslib_1.__importDefault(require("node:path"));
6
- const constants_js_1 = require("../../constants.js");
7
- const file_js_1 = require("../../file.js");
8
- function copyWatcherMod(config, verbose) {
9
- // Check to see if this mod was disabled.
10
- const watcherModPath = node_path_1.default.join(config.modsDirectory, constants_js_1.WATCHER_MOD_NAME);
11
- const disableItPath = node_path_1.default.join(watcherModPath, constants_js_1.DISABLE_IT_FILE);
12
- const watcherModDisabled = (0, file_js_1.fileExists)(disableItPath, verbose);
13
- // Delete and re-copy the watcher mod every time IsaacScript starts. This ensures that it is
14
- // always the latest version.
15
- if ((0, file_js_1.fileExists)(watcherModPath, verbose)) {
16
- (0, file_js_1.deleteFileOrDirectory)(watcherModPath, verbose);
17
- }
18
- (0, file_js_1.copyFile)(constants_js_1.WATCHER_MOD_SOURCE_PATH, watcherModPath, verbose);
19
- if (watcherModDisabled) {
20
- // Since we deleted the directory, the "disable.it" file was deleted. Restore it.
21
- (0, file_js_1.writeFile)(disableItPath, "", verbose);
22
- }
23
- // By default, the IsaacScript watcher mod automatically restarts the game, so we only need to
24
- // disable it if the config option is explicitly set to false.
25
- if (config.enableIsaacScriptWatcherAutoRestart === false) {
26
- disableIsaacScriptWatcherAutomaticRestart(watcherModPath, verbose);
27
- }
28
- // If we copied a new version of the watcher mod into place, but the user currently has the game
29
- // open, then the old version will stay loaded. However, if the watcher mod reloads itself, the
30
- // game will crash, so there is no automated solution for this.
31
- }
32
- exports.copyWatcherMod = copyWatcherMod;
33
- function disableIsaacScriptWatcherAutomaticRestart(watcherModPath, verbose) {
34
- const mainLuaPath = node_path_1.default.join(watcherModPath, constants_js_1.MAIN_LUA);
35
- const mainLua = (0, file_js_1.readFile)(mainLuaPath, verbose);
36
- const modifiedMainLua = mainLua.replace("local RESTART_GAME_ON_RECOMPILATION = true", "local RESTART_GAME_ON_RECOMPILATION = false");
37
- (0, file_js_1.writeFile)(mainLuaPath, modifiedMainLua, verbose);
38
- }
39
- //# sourceMappingURL=copyWatcherMod.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"copyWatcherMod.js","sourceRoot":"","sources":["../../../../../../packages/isaacscript-cli/src/commands/monitor/copyWatcherMod.ts"],"names":[],"mappings":";;;;AAAA,kEAA6B;AAE7B,qDAK4B;AAC5B,2CAMuB;AAEvB,SAAgB,cAAc,CAC5B,MAAuB,EACvB,OAAgB;IAEhB,yCAAyC;IACzC,MAAM,cAAc,GAAG,mBAAI,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,+BAAgB,CAAC,CAAC;IACzE,MAAM,aAAa,GAAG,mBAAI,CAAC,IAAI,CAAC,cAAc,EAAE,8BAAe,CAAC,CAAC;IACjE,MAAM,kBAAkB,GAAG,IAAA,oBAAU,EAAC,aAAa,EAAE,OAAO,CAAC,CAAC;IAE9D,4FAA4F;IAC5F,6BAA6B;IAC7B,IAAI,IAAA,oBAAU,EAAC,cAAc,EAAE,OAAO,CAAC,EAAE;QACvC,IAAA,+BAAqB,EAAC,cAAc,EAAE,OAAO,CAAC,CAAC;KAChD;IAED,IAAA,kBAAQ,EAAC,sCAAuB,EAAE,cAAc,EAAE,OAAO,CAAC,CAAC;IAE3D,IAAI,kBAAkB,EAAE;QACtB,iFAAiF;QACjF,IAAA,mBAAS,EAAC,aAAa,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;KACvC;IAED,8FAA8F;IAC9F,8DAA8D;IAC9D,IAAI,MAAM,CAAC,mCAAmC,KAAK,KAAK,EAAE;QACxD,yCAAyC,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;KACpE;IAED,gGAAgG;IAChG,+FAA+F;IAC/F,+DAA+D;AACjE,CAAC;AA/BD,wCA+BC;AAED,SAAS,yCAAyC,CAChD,cAAsB,EACtB,OAAgB;IAEhB,MAAM,WAAW,GAAG,mBAAI,CAAC,IAAI,CAAC,cAAc,EAAE,uBAAQ,CAAC,CAAC;IACxD,MAAM,OAAO,GAAG,IAAA,kBAAQ,EAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAE/C,MAAM,eAAe,GAAG,OAAO,CAAC,OAAO,CACrC,4CAA4C,EAC5C,6CAA6C,CAC9C,CAAC;IAEF,IAAA,mBAAS,EAAC,WAAW,EAAE,eAAe,EAAE,OAAO,CAAC,CAAC;AACnD,CAAC"}