isaacscript 5.2.14 → 6.0.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 (53) hide show
  1. package/dist/banner.js +2 -2
  2. package/dist/banner.js.map +1 -1
  3. package/dist/commands/check/check.js +32 -22
  4. package/dist/commands/check/check.js.map +1 -1
  5. package/dist/commands/copy/copy.js +4 -4
  6. package/dist/commands/copy/copy.js.map +1 -1
  7. package/dist/commands/init/checkIfProjectPathExists.js +15 -5
  8. package/dist/commands/init/checkIfProjectPathExists.js.map +1 -1
  9. package/dist/commands/init/checkModTargetDirectory.js +11 -5
  10. package/dist/commands/init/checkModTargetDirectory.js.map +1 -1
  11. package/dist/commands/init/createProject.js +38 -82
  12. package/dist/commands/init/createProject.js.map +1 -1
  13. package/dist/commands/init/getModsDirectory.js +4 -2
  14. package/dist/commands/init/getModsDirectory.js.map +1 -1
  15. package/dist/commands/init/init.js +1 -1
  16. package/dist/commands/init/init.js.map +1 -1
  17. package/dist/commands/init/vsCode.js +4 -1
  18. package/dist/commands/init/vsCode.js.map +1 -1
  19. package/dist/commands/monitor/copyWatcherMod.js +9 -9
  20. package/dist/commands/monitor/copyWatcherMod.js.map +1 -1
  21. package/dist/commands/monitor/monitor.js +18 -18
  22. package/dist/commands/monitor/monitor.js.map +1 -1
  23. package/dist/commands/monitor/saveDatWriter/saveDatWriter.js +13 -9
  24. package/dist/commands/monitor/saveDatWriter/saveDatWriter.js.map +1 -1
  25. package/dist/commands/monitor/spawnTSTLWatcher.js +39 -34
  26. package/dist/commands/monitor/spawnTSTLWatcher.js.map +1 -1
  27. package/dist/commands/monitor/touchWatcherSaveDatFiles.js +7 -5
  28. package/dist/commands/monitor/touchWatcherSaveDatFiles.js.map +1 -1
  29. package/dist/commands/publish/isaacscriptMod.js +23 -17
  30. package/dist/commands/publish/isaacscriptMod.js.map +1 -1
  31. package/dist/commands/publish/publish.js +20 -18
  32. package/dist/commands/publish/publish.js.map +1 -1
  33. package/dist/commands/publish/validate.js +2 -2
  34. package/dist/commands/publish/validate.js.map +1 -1
  35. package/dist/configFile.js +7 -4
  36. package/dist/configFile.js.map +1 -1
  37. package/dist/constants.js +2 -2
  38. package/dist/constants.js.map +1 -1
  39. package/dist/customStage.js +55 -36
  40. package/dist/customStage.js.map +1 -1
  41. package/dist/dev.js +3 -2
  42. package/dist/dev.js.map +1 -1
  43. package/dist/git.js +3 -2
  44. package/dist/git.js.map +1 -1
  45. package/dist/tsconfig.js +5 -2
  46. package/dist/tsconfig.js.map +1 -1
  47. package/dist/validateMod.js +14 -9
  48. package/dist/validateMod.js.map +1 -1
  49. package/file-templates/dynamic/Node.gitignore +3 -1
  50. package/file-templates/static/.vscode/settings.json +2 -2
  51. package/file-templates/static/eslint.config.mjs +2 -2
  52. package/file-templates/static/scripts/lint.ts +1 -1
  53. package/package.json +8 -11
@@ -12,7 +12,8 @@ export async function getModsDirectory(modsDirectoryOption) {
12
12
  return modsDirectoryOption;
13
13
  }
14
14
  const defaultModsPath = getDefaultModsPath(process.platform);
15
- if (isDirectory(defaultModsPath)) {
15
+ const defaultModsExists = await isDirectory(defaultModsPath);
16
+ if (defaultModsExists) {
16
17
  return defaultModsPath;
17
18
  }
18
19
  console.error(`Failed to find your mods directory at: ${chalk.green(defaultModsPath)}`);
@@ -20,7 +21,8 @@ export async function getModsDirectory(modsDirectoryOption) {
20
21
  if (modsDir === "") {
21
22
  fatalError("Error: You did not provide a response; exiting.");
22
23
  }
23
- if (!isDirectory(modsDir)) {
24
+ const modsExists = await isDirectory(modsDir);
25
+ if (!modsExists) {
24
26
  fatalError(`Error: The directory of "${chalk.green(modsDir)}" does not exist. Exiting.`);
25
27
  }
26
28
  if (path.basename(modsDir) !== MODS) {
@@ -1 +1 @@
1
- {"version":3,"file":"getModsDirectory.js","sourceRoot":"","sources":["../../../src/commands/init/getModsDirectory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEjD,MAAM,IAAI,GAAG,MAAM,CAAC;AAEpB,MAAM,yBAAyB,GAAG,IAAI,CAAC,IAAI,CACzC,IAAI,EACJ,qBAAqB,EACrB,OAAO,EACP,WAAW,EACX,QAAQ,EACR,8BAA8B,EAC9B,IAAI,CACL,CAAC;AAEF,yCAAyC;AACzC,MAAM,uBAAuB,GAAG,IAAI,CAAC,IAAI,CACvC,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,OAAO,EACP,WAAW,EACX,QAAQ,EACR,8BAA8B,EAC9B,IAAI,CACL,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,mBAAuC;IAEvC,IAAI,mBAAmB,KAAK,SAAS,IAAI,mBAAmB,KAAK,EAAE,EAAE,CAAC;QACpE,OAAO,mBAAmB,CAAC;IAC7B,CAAC;IAED,MAAM,eAAe,GAAG,kBAAkB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAE7D,IAAI,WAAW,CAAC,eAAe,CAAC,EAAE,CAAC;QACjC,OAAO,eAAe,CAAC;IACzB,CAAC;IAED,OAAO,CAAC,KAAK,CACX,0CAA0C,KAAK,CAAC,KAAK,CAAC,eAAe,CAAC,EAAE,CACzE,CAAC;IACF,MAAM,OAAO,GAAG,MAAM,cAAc,CAClC,+BAA+B,IAAI,kFAAkF,CACtH,CAAC;IAEF,IAAI,OAAO,KAAK,EAAE,EAAE,CAAC;QACnB,UAAU,CAAC,iDAAiD,CAAC,CAAC;IAChE,CAAC;IAED,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC;QAC1B,UAAU,CACR,4BAA4B,KAAK,CAAC,KAAK,CACrC,OAAO,CACR,4BAA4B,CAC9B,CAAC;IACJ,CAAC;IAED,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC;QACpC,UAAU,CACR,iCAAiC,KAAK,CAAC,KAAK,CAC1C,OAAO,CACR,wDAAwD,IAAI,wBAAwB,CACtF,CAAC;IACJ,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,kBAAkB,CAAC,QAAgB;IAC1C,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,OAAO,yBAAyB,CAAC;QACnC,CAAC;QAED,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,OAAO,uBAAuB,CAAC;QACjC,CAAC;QAED,OAAO,CAAC,CAAC,CAAC;YACR,OAAO,UAAU,CACf,gEAAgE,KAAK,CAAC,KAAK,CACzE,QAAQ,CACT,EAAE,CACJ,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"getModsDirectory.js","sourceRoot":"","sources":["../../../src/commands/init/getModsDirectory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEjD,MAAM,IAAI,GAAG,MAAM,CAAC;AAEpB,MAAM,yBAAyB,GAAG,IAAI,CAAC,IAAI,CACzC,IAAI,EACJ,qBAAqB,EACrB,OAAO,EACP,WAAW,EACX,QAAQ,EACR,8BAA8B,EAC9B,IAAI,CACL,CAAC;AAEF,yCAAyC;AACzC,MAAM,uBAAuB,GAAG,IAAI,CAAC,IAAI,CACvC,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,OAAO,EACP,WAAW,EACX,QAAQ,EACR,8BAA8B,EAC9B,IAAI,CACL,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,mBAAuC;IAEvC,IAAI,mBAAmB,KAAK,SAAS,IAAI,mBAAmB,KAAK,EAAE,EAAE,CAAC;QACpE,OAAO,mBAAmB,CAAC;IAC7B,CAAC;IAED,MAAM,eAAe,GAAG,kBAAkB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAE7D,MAAM,iBAAiB,GAAG,MAAM,WAAW,CAAC,eAAe,CAAC,CAAC;IAC7D,IAAI,iBAAiB,EAAE,CAAC;QACtB,OAAO,eAAe,CAAC;IACzB,CAAC;IAED,OAAO,CAAC,KAAK,CACX,0CAA0C,KAAK,CAAC,KAAK,CAAC,eAAe,CAAC,EAAE,CACzE,CAAC;IACF,MAAM,OAAO,GAAG,MAAM,cAAc,CAClC,+BAA+B,IAAI,kFAAkF,CACtH,CAAC;IAEF,IAAI,OAAO,KAAK,EAAE,EAAE,CAAC;QACnB,UAAU,CAAC,iDAAiD,CAAC,CAAC;IAChE,CAAC;IAED,MAAM,UAAU,GAAG,MAAM,WAAW,CAAC,OAAO,CAAC,CAAC;IAC9C,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,UAAU,CACR,4BAA4B,KAAK,CAAC,KAAK,CACrC,OAAO,CACR,4BAA4B,CAC9B,CAAC;IACJ,CAAC;IAED,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC;QACpC,UAAU,CACR,iCAAiC,KAAK,CAAC,KAAK,CAC1C,OAAO,CACR,wDAAwD,IAAI,wBAAwB,CACtF,CAAC;IACJ,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,kBAAkB,CAAC,QAAgB;IAC1C,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,OAAO,yBAAyB,CAAC;QACnC,CAAC;QAED,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,OAAO,uBAAuB,CAAC;QACjC,CAAC;QAED,OAAO,CAAC,CAAC,CAAC;YACR,OAAO,UAAU,CACf,gEAAgE,KAAK,CAAC,KAAK,CACzE,QAAQ,CACT,EAAE,CACJ,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -51,7 +51,7 @@ function validateSaveSlot(valueString) {
51
51
  const initOptions = initCommand.opts();
52
52
  async function init(name, options) {
53
53
  const { forceName, skipGit, skipInstall, useCurrentDirectory, customDirectory, verbose, vscode, yes, } = options;
54
- printBanner();
54
+ await printBanner();
55
55
  const packageManager = await getPackageManagerUsedForNewProject(options);
56
56
  // Prompt the end-user for some information (and validate it as we go).
57
57
  const { projectPath, createNewDir } = await getProjectPath(name, useCurrentDirectory, customDirectory, yes, forceName);
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/commands/init/init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/commands/init/init.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { assertObject } from "complete-common";
1
2
  import { commandExists, fatalError, getJSONC, isFile } from "complete-node";
2
3
  import path from "node:path";
3
4
  import { execShell } from "../../exec.js";
@@ -41,10 +42,12 @@ async function installVSCodeExtensions(projectPath, VSCodeCommand, verbose) {
41
42
  }
42
43
  async function getExtensionsFromJSON(projectPath) {
43
44
  const extensionsJSONPath = path.join(projectPath, ".vscode", "extensions.json");
44
- if (!isFile(extensionsJSONPath)) {
45
+ const file = await isFile(extensionsJSONPath);
46
+ if (!file) {
45
47
  return [];
46
48
  }
47
49
  const extensionsJSON = await getJSONC(extensionsJSONPath);
50
+ assertObject(extensionsJSON, `The extensions file was not an object at: ${extensionsJSONPath}`);
48
51
  const { recommendations } = extensionsJSON;
49
52
  if (!Array.isArray(recommendations)) {
50
53
  fatalError('The "recommendations" field in the "extensions.json" file is not an array.');
@@ -1 +1 @@
1
- {"version":3,"file":"vsCode.js","sourceRoot":"","sources":["../../../src/commands/init/vsCode.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"vsCode.js","sourceRoot":"","sources":["../../../src/commands/init/vsCode.ts"],"names":[],"mappings":"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"}
@@ -1,32 +1,32 @@
1
1
  import { copyFileOrDirectory, deleteFileOrDirectory, isFile, readFile, writeFile, } from "complete-node";
2
2
  import path from "node:path";
3
3
  import { DISABLE_IT_FILE, MAIN_LUA, WATCHER_MOD_NAME, WATCHER_MOD_SOURCE_PATH, } from "../../constants.js";
4
- export function copyWatcherMod(config) {
4
+ export async function copyWatcherMod(config) {
5
5
  // Check to see if this mod was disabled.
6
6
  const watcherModPath = path.join(config.modsDirectory, WATCHER_MOD_NAME);
7
7
  const disableItPath = path.join(watcherModPath, DISABLE_IT_FILE);
8
- const watcherModDisabled = isFile(disableItPath);
8
+ const watcherModDisabled = await isFile(disableItPath);
9
9
  // Delete and re-copy the watcher mod every time IsaacScript starts. This ensures that it is
10
10
  // always the latest version.
11
- deleteFileOrDirectory(watcherModPath);
12
- copyFileOrDirectory(WATCHER_MOD_SOURCE_PATH, watcherModPath);
11
+ await deleteFileOrDirectory(watcherModPath);
12
+ await copyFileOrDirectory(WATCHER_MOD_SOURCE_PATH, watcherModPath);
13
13
  if (watcherModDisabled) {
14
14
  // Since we deleted the directory, the "disable.it" file was deleted. Restore it.
15
- writeFile(disableItPath, "");
15
+ await writeFile(disableItPath, "");
16
16
  }
17
17
  // By default, the IsaacScript watcher mod automatically restarts the game, so we only need to
18
18
  // disable it if the config option is explicitly set to false.
19
19
  if (config.enableIsaacScriptWatcherAutoRestart === false) {
20
- disableIsaacScriptWatcherAutomaticRestart(watcherModPath);
20
+ await disableIsaacScriptWatcherAutomaticRestart(watcherModPath);
21
21
  }
22
22
  // If we copied a new version of the watcher mod into place, but the user currently has the game
23
23
  // open, then the old version will stay loaded. However, if the watcher mod reloads itself, the
24
24
  // game will crash, so there is no automated solution for this.
25
25
  }
26
- function disableIsaacScriptWatcherAutomaticRestart(watcherModPath) {
26
+ async function disableIsaacScriptWatcherAutomaticRestart(watcherModPath) {
27
27
  const mainLuaPath = path.join(watcherModPath, MAIN_LUA);
28
- const mainLua = readFile(mainLuaPath);
28
+ const mainLua = await readFile(mainLuaPath);
29
29
  const modifiedMainLua = mainLua.replace("local RESTART_GAME_ON_RECOMPILATION = true", "local RESTART_GAME_ON_RECOMPILATION = false");
30
- writeFile(mainLuaPath, modifiedMainLua);
30
+ await writeFile(mainLuaPath, modifiedMainLua);
31
31
  }
32
32
  //# sourceMappingURL=copyWatcherMod.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"copyWatcherMod.js","sourceRoot":"","sources":["../../../src/commands/monitor/copyWatcherMod.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,qBAAqB,EACrB,MAAM,EACN,QAAQ,EACR,SAAS,GACV,MAAM,eAAe,CAAC;AACvB,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EACL,eAAe,EACf,QAAQ,EACR,gBAAgB,EAChB,uBAAuB,GACxB,MAAM,oBAAoB,CAAC;AAE5B,MAAM,UAAU,cAAc,CAAC,MAAuB;IACpD,yCAAyC;IACzC,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,CAAC;IACzE,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC;IACjE,MAAM,kBAAkB,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC;IAEjD,4FAA4F;IAC5F,6BAA6B;IAC7B,qBAAqB,CAAC,cAAc,CAAC,CAAC;IACtC,mBAAmB,CAAC,uBAAuB,EAAE,cAAc,CAAC,CAAC;IAE7D,IAAI,kBAAkB,EAAE,CAAC;QACvB,iFAAiF;QACjF,SAAS,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;IAC/B,CAAC;IAED,8FAA8F;IAC9F,8DAA8D;IAC9D,IAAI,MAAM,CAAC,mCAAmC,KAAK,KAAK,EAAE,CAAC;QACzD,yCAAyC,CAAC,cAAc,CAAC,CAAC;IAC5D,CAAC;IAED,gGAAgG;IAChG,+FAA+F;IAC/F,+DAA+D;AACjE,CAAC;AAED,SAAS,yCAAyC,CAAC,cAAsB;IACvE,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;IACxD,MAAM,OAAO,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC;IAEtC,MAAM,eAAe,GAAG,OAAO,CAAC,OAAO,CACrC,4CAA4C,EAC5C,6CAA6C,CAC9C,CAAC;IAEF,SAAS,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;AAC1C,CAAC"}
1
+ {"version":3,"file":"copyWatcherMod.js","sourceRoot":"","sources":["../../../src/commands/monitor/copyWatcherMod.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,qBAAqB,EACrB,MAAM,EACN,QAAQ,EACR,SAAS,GACV,MAAM,eAAe,CAAC;AACvB,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EACL,eAAe,EACf,QAAQ,EACR,gBAAgB,EAChB,uBAAuB,GACxB,MAAM,oBAAoB,CAAC;AAE5B,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,MAAuB;IAC1D,yCAAyC;IACzC,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,CAAC;IACzE,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC;IACjE,MAAM,kBAAkB,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;IAEvD,4FAA4F;IAC5F,6BAA6B;IAC7B,MAAM,qBAAqB,CAAC,cAAc,CAAC,CAAC;IAC5C,MAAM,mBAAmB,CAAC,uBAAuB,EAAE,cAAc,CAAC,CAAC;IAEnE,IAAI,kBAAkB,EAAE,CAAC;QACvB,iFAAiF;QACjF,MAAM,SAAS,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;IACrC,CAAC;IAED,8FAA8F;IAC9F,8DAA8D;IAC9D,IAAI,MAAM,CAAC,mCAAmC,KAAK,KAAK,EAAE,CAAC;QACzD,MAAM,yCAAyC,CAAC,cAAc,CAAC,CAAC;IAClE,CAAC;IAED,gGAAgG;IAChG,+FAA+F;IAC/F,+DAA+D;AACjE,CAAC;AAED,KAAK,UAAU,yCAAyC,CACtD,cAAsB;IAEtB,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;IACxD,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,WAAW,CAAC,CAAC;IAE5C,MAAM,eAAe,GAAG,OAAO,CAAC,OAAO,CACrC,4CAA4C,EAC5C,6CAA6C,CAC9C,CAAC;IAEF,MAAM,SAAS,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;AAChD,CAAC"}
@@ -31,10 +31,10 @@ export const monitorCommand = new Command()
31
31
  const monitorOptions = monitorCommand.opts();
32
32
  async function monitor(options) {
33
33
  const { skipProjectChecks, verbose } = options;
34
- printBanner();
34
+ await printBanner();
35
35
  const packageManager = await getPackageManagerUsedForExistingProject();
36
36
  if (!skipProjectChecks) {
37
- validateInIsaacScriptProject();
37
+ await validateInIsaacScriptProject();
38
38
  await validatePackageJSONDependencies();
39
39
  }
40
40
  const config = await getConfigFromFile();
@@ -45,21 +45,18 @@ async function monitor(options) {
45
45
  const modTargetDirectoryName = getModTargetDirectoryName(config);
46
46
  const modTargetPath = path.join(config.modsDirectory, modTargetDirectoryName);
47
47
  // Prepare the IsaacScript watcher mod.
48
- copyWatcherMod(config);
49
- touchWatcherSaveDatFiles(config);
48
+ await copyWatcherMod(config);
49
+ await touchWatcherSaveDatFiles(config);
50
50
  // Perform the steps to link to a development version of "isaacscript-common", if necessary. (This
51
51
  // has to be before preparing custom stages.)
52
- if (config.isaacScriptCommonDev === true) {
53
- linkDevelopmentIsaacScriptCommon(CWD, packageManager, verbose);
54
- }
55
- else {
56
- errorIfIsaacScriptCommonLinkExists(CWD, packageManager);
57
- }
52
+ await (config.isaacScriptCommonDev === true
53
+ ? linkDevelopmentIsaacScriptCommon(CWD, packageManager, verbose)
54
+ : errorIfIsaacScriptCommonLinkExists(CWD, packageManager));
58
55
  // Prepare the custom stages feature, if necessary.
59
56
  await prepareCustomStages(packageManager, config.isaacScriptCommonDev, verbose);
60
57
  // Delete and re-copy the mod every time IsaacScript starts. This ensures that it is always the
61
58
  // latest version.
62
- deleteFileOrDirectory(modTargetPath);
59
+ await deleteFileOrDirectory(modTargetPath);
63
60
  // Subprocess #1 - The "save#.dat" file writer.
64
61
  spawnSaveDatWriter(config);
65
62
  // Subprocess #2 - The mod directory syncer.
@@ -68,9 +65,10 @@ async function monitor(options) {
68
65
  spawnTSTLWatcher(config, CWD, packageManager);
69
66
  // Subprocess #4 - `tstl --watch` (for the development version of `isaacscript-common`).
70
67
  if (config.isaacScriptCommonDev === true) {
71
- const isaacScriptMonorepoDirectory = getAndValidateIsaacScriptMonorepoDirectory(CWD);
68
+ const isaacScriptMonorepoDirectory = await getAndValidateIsaacScriptMonorepoDirectory(CWD);
72
69
  const isaacScriptCommonDirectory = path.join(isaacScriptMonorepoDirectory, "packages", "isaacscript-common");
73
- if (!isDirectory(isaacScriptCommonDirectory)) {
70
+ const directory = await isDirectory(isaacScriptCommonDirectory);
71
+ if (!directory) {
74
72
  console.error(`The "isaacscript-common" directory does not exist at: ${isaacScriptCommonDirectory}`);
75
73
  fatalError('Please make sure that the IsaacScript repository is placed next to this one. If you do not want to test a local version of "isaacscript-common", then set the "isaacScriptCommonDev" field to false in your "isaacscript.json" file.');
76
74
  }
@@ -89,11 +87,11 @@ async function monitor(options) {
89
87
  console.log("");
90
88
  // (The process will now continue indefinitely for as long as the subprocesses exist.)
91
89
  }
92
- function linkDevelopmentIsaacScriptCommon(projectPath, packageManager, verbose) {
90
+ async function linkDevelopmentIsaacScriptCommon(projectPath, packageManager, verbose) {
93
91
  if (packageManager !== PACKAGE_MANAGER_USED_FOR_ISAACSCRIPT) {
94
92
  fatalError(`If you want to use this mod to develop/test "isaacscript-common", then the mod must be set up using the ${PACKAGE_MANAGER_USED_FOR_ISAACSCRIPT} package manager instead of: ${packageManager}`);
95
93
  }
96
- const isaacScriptMonorepoDirectory = getAndValidateIsaacScriptMonorepoDirectory(projectPath);
94
+ const isaacScriptMonorepoDirectory = await getAndValidateIsaacScriptMonorepoDirectory(projectPath);
97
95
  console.log('Building "isaacscript-common"...');
98
96
  // Ensure that dependencies are installed in the isaacscript monorepo.
99
97
  const installCommand = getPackageManagerInstallCommand(packageManager);
@@ -103,7 +101,8 @@ function linkDevelopmentIsaacScriptCommon(projectPath, packageManager, verbose)
103
101
  const buildCommand = "npm run build";
104
102
  execShellString(buildCommand, verbose, false, iscPackagePath);
105
103
  const localIsaacScriptCommonPath = path.join(projectPath, "node_modules", "isaacscript-common");
106
- if (isLink(localIsaacScriptCommonPath)) {
104
+ const link = await isLink(localIsaacScriptCommonPath);
105
+ if (link) {
107
106
  console.log('The "isaacscript-common" package is already linked.');
108
107
  }
109
108
  else {
@@ -111,9 +110,10 @@ function linkDevelopmentIsaacScriptCommon(projectPath, packageManager, verbose)
111
110
  execShell(PACKAGE_MANAGER_USED_FOR_ISAACSCRIPT, ["link", iscPackagePath], verbose, false, projectPath);
112
111
  }
113
112
  }
114
- function errorIfIsaacScriptCommonLinkExists(projectPath, packageManager) {
113
+ async function errorIfIsaacScriptCommonLinkExists(projectPath, packageManager) {
115
114
  const localIsaacScriptCommonPath = path.join(projectPath, "node_modules", "isaacscript-common");
116
- if (isLink(localIsaacScriptCommonPath)
115
+ const link = await isLink(localIsaacScriptCommonPath);
116
+ if (link
117
117
  && packageManager !== PackageManager.pnpm // pnpm uses links, so it will cause a false positive.
118
118
  ) {
119
119
  fatalError(`Your "node_modules/isaacscript-common" directory is linked, but you do not have "isaacScriptCommonDev" set to true in your "isaacscript.json" file. You must either set it to true or remove the link via the following command: ${chalk.green(`${PACKAGE_MANAGER_USED_FOR_ISAACSCRIPT} unlink isaacscript-common`)}`);
@@ -1 +1 @@
1
- {"version":3,"file":"monitor.js","sourceRoot":"","sources":["../../../src/commands/monitor/monitor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"monitor.js","sourceRoot":"","sources":["../../../src/commands/monitor/monitor.ts"],"names":[],"mappings":"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"}
@@ -8,8 +8,8 @@ const SUBPROCESS_NAME = "save#.dat writer";
8
8
  const MAX_MESSAGES = 100;
9
9
  let saveDatPath;
10
10
  let saveDatFileName;
11
- init();
12
- function init() {
11
+ await init();
12
+ async function init() {
13
13
  const args = getArgs();
14
14
  const firstArg = args[0];
15
15
  assertDefined(firstArg, `The ${SUBPROCESS_NAME} process did not get a valid first argument.`);
@@ -17,16 +17,18 @@ function init() {
17
17
  saveDatFileName = path.basename(saveDatPath);
18
18
  // Check to see if the data directory exists.
19
19
  const watcherModDataPath = path.dirname(saveDatPath);
20
- if (!isFile(watcherModDataPath)) {
21
- makeDirectory(watcherModDataPath);
20
+ const file = await isFile(watcherModDataPath);
21
+ if (!file) {
22
+ await makeDirectory(watcherModDataPath);
22
23
  }
23
24
  // Listen for messages from the parent process.
24
25
  process.on("message", (msg) => {
26
+ // eslint-disable-next-line @typescript-eslint/no-floating-promises
25
27
  onMessage(msg.type, msg.data);
26
28
  });
27
29
  }
28
- function onMessage(type, data, numRetries = 0) {
29
- const saveDat = readSaveDatFromDisk();
30
+ async function onMessage(type, data, numRetries = 0) {
31
+ const saveDat = await readSaveDatFromDisk();
30
32
  if (saveDat.length > MAX_MESSAGES) {
31
33
  // If IsaacScript is running and:
32
34
  // - the game is not open
@@ -41,10 +43,11 @@ function onMessage(type, data, numRetries = 0) {
41
43
  writeSaveDatToDisk(type, data, saveDat, numRetries);
42
44
  }
43
45
  // eslint-disable-next-line complete/no-mutable-return
44
- function readSaveDatFromDisk() {
46
+ async function readSaveDatFromDisk() {
45
47
  let saveDat;
46
- if (isFile(saveDatPath)) {
47
- const saveDatRaw = readFile(saveDatPath);
48
+ const file = await isFile(saveDatPath);
49
+ if (file) {
50
+ const saveDatRaw = await readFile(saveDatPath);
48
51
  try {
49
52
  saveDat = JSONC.parse(saveDatRaw);
50
53
  }
@@ -98,6 +101,7 @@ function writeSaveDatToDisk(type, data, saveDat, numRetries) {
98
101
  }
99
102
  send(`Writing to "${saveDatFileName}" failed. (The number of retries so far is ${numRetries}.) Trying again in 0.1 seconds...`);
100
103
  setTimeout(() => {
104
+ // eslint-disable-next-line @typescript-eslint/no-floating-promises
101
105
  onMessage(type, data, numRetries + 1);
102
106
  }, 100);
103
107
  }
@@ -1 +1 @@
1
- {"version":3,"file":"saveDatWriter.js","sourceRoot":"","sources":["../../../../src/commands/monitor/saveDatWriter/saveDatWriter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"saveDatWriter.js","sourceRoot":"","sources":["../../../../src/commands/monitor/saveDatWriter/saveDatWriter.ts"],"names":[],"mappings":"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"}
@@ -12,40 +12,8 @@ export function spawnTSTLWatcher(config, cwd, packageManager, modCWD) {
12
12
  cwd,
13
13
  });
14
14
  tstl.stdout.on("data", (data) => {
15
- const msg = data.toString().trim();
16
- const suffix = getMonitorMessageSuffix(config, cwd);
17
- if (msg.includes("Starting compilation in watch mode...")) {
18
- const newMsg1 = `${PROJECT_NAME} is now watching for future changes${suffix}.`;
19
- notifyGameMsg(newMsg1);
20
- const target = suffix.includes("isaacscript-common")
21
- ? '"isaacscript-common"'
22
- : "the mod";
23
- const newMsg2 = `Compiling ${target} for the first time...`;
24
- notifyGameMsg(newMsg2);
25
- }
26
- else if (msg.includes("File change detected. Starting incremental compilation...")) {
27
- compilationStartTime = new Date();
28
- const newMsg = `TypeScript change detected${suffix}. Compiling...`;
29
- notifyGameMsg(newMsg);
30
- }
31
- else if (msg.includes("Found 0 errors. Watching for file changes.")) {
32
- const compilationFinishTime = new Date();
33
- const elapsedTimeMilliseconds = compilationFinishTime.getTime() - compilationStartTime.getTime();
34
- const elapsedTimeSeconds = elapsedTimeMilliseconds / 1000;
35
- const newMsg = `${COMPILATION_SUCCESSFUL_MESSAGE} (in ${elapsedTimeSeconds} seconds)${suffix}`;
36
- notifyGameMsg(newMsg);
37
- // Successful compilation of "isaacscript-common" will not trigger a recompilation in the mod.
38
- // Thus, we must arbitrarily change a file to trigger a mod recompilation.
39
- if (modCWD !== undefined) {
40
- const bundleEntryTSPath = path.join(modCWD, "src", "bundleEntry.ts");
41
- if (isFile(bundleEntryTSPath)) {
42
- appendFile(bundleEntryTSPath, "// isaacscript-common dev forced recompilation\n");
43
- }
44
- }
45
- }
46
- else {
47
- notifyGameMsg(msg);
48
- }
15
+ // eslint-disable-next-line @typescript-eslint/no-floating-promises
16
+ onTSTLStdoutData(config, cwd, modCWD, data);
49
17
  });
50
18
  tstl.stderr.on("data", (data) => {
51
19
  const msg = data.toString().trim();
@@ -62,6 +30,43 @@ export function spawnTSTLWatcher(config, cwd, packageManager, modCWD) {
62
30
  fatalError(`Error: ${processDescription} subprocess exited with code: ${code}`);
63
31
  });
64
32
  }
33
+ async function onTSTLStdoutData(config, cwd, modCWD, data) {
34
+ const msg = data.toString().trim();
35
+ const suffix = getMonitorMessageSuffix(config, cwd);
36
+ if (msg.includes("Starting compilation in watch mode...")) {
37
+ const newMsg1 = `${PROJECT_NAME} is now watching for future changes${suffix}.`;
38
+ notifyGameMsg(newMsg1);
39
+ const target = suffix.includes("isaacscript-common")
40
+ ? '"isaacscript-common"'
41
+ : "the mod";
42
+ const newMsg2 = `Compiling ${target} for the first time...`;
43
+ notifyGameMsg(newMsg2);
44
+ }
45
+ else if (msg.includes("File change detected. Starting incremental compilation...")) {
46
+ compilationStartTime = new Date();
47
+ const newMsg = `TypeScript change detected${suffix}. Compiling...`;
48
+ notifyGameMsg(newMsg);
49
+ }
50
+ else if (msg.includes("Found 0 errors. Watching for file changes.")) {
51
+ const compilationFinishTime = new Date();
52
+ const elapsedTimeMilliseconds = compilationFinishTime.getTime() - compilationStartTime.getTime();
53
+ const elapsedTimeSeconds = elapsedTimeMilliseconds / 1000;
54
+ const newMsg = `${COMPILATION_SUCCESSFUL_MESSAGE} (in ${elapsedTimeSeconds} seconds)${suffix}`;
55
+ notifyGameMsg(newMsg);
56
+ // Successful compilation of "isaacscript-common" will not trigger a recompilation in the mod.
57
+ // Thus, we must arbitrarily change a file to trigger a mod recompilation.
58
+ if (modCWD !== undefined) {
59
+ const bundleEntryTSPath = path.join(modCWD, "src", "bundleEntry.ts");
60
+ const file = await isFile(bundleEntryTSPath);
61
+ if (file) {
62
+ await appendFile(bundleEntryTSPath, "// isaacscript-common dev forced recompilation\n");
63
+ }
64
+ }
65
+ }
66
+ else {
67
+ notifyGameMsg(msg);
68
+ }
69
+ }
65
70
  function getMonitorMessageSuffix(config, cwd) {
66
71
  if (config.isaacScriptCommonDev === false
67
72
  || config.isaacScriptCommonDev === undefined) {
@@ -1 +1 @@
1
- {"version":3,"file":"spawnTSTLWatcher.js","sourceRoot":"","sources":["../../../src/commands/monitor/spawnTSTLWatcher.ts"],"names":[],"mappings":"AACA,OAAO,EACL,UAAU,EACV,UAAU,EACV,4BAA4B,EAC5B,MAAM,GACP,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EACL,8BAA8B,EAC9B,YAAY,GACb,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,IAAI,oBAAoB,GAAG,IAAI,IAAI,EAAE,CAAC;AAEtC,MAAM,UAAU,gBAAgB,CAC9B,MAAc,EACd,GAAW,EACX,cAA8B,EAC9B,MAAe;IAEf,MAAM,kBAAkB,GAAG,MAAM,CAAC;IAClC,MAAM,OAAO,GAAG,4BAA4B,CAAC,cAAc,CAAC,CAAC;IAC7D,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,uBAAuB,CAAC,EAAE;QACxE,KAAK,EAAE,IAAI;QACX,GAAG;KACJ,CAAC,CAAC;IAEH,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAuB,EAAE,EAAE;QACjD,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC;QACnC,MAAM,MAAM,GAAG,uBAAuB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAEpD,IAAI,GAAG,CAAC,QAAQ,CAAC,uCAAuC,CAAC,EAAE,CAAC;YAC1D,MAAM,OAAO,GAAG,GAAG,YAAY,sCAAsC,MAAM,GAAG,CAAC;YAC/E,aAAa,CAAC,OAAO,CAAC,CAAC;YACvB,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,oBAAoB,CAAC;gBAClD,CAAC,CAAC,sBAAsB;gBACxB,CAAC,CAAC,SAAS,CAAC;YACd,MAAM,OAAO,GAAG,aAAa,MAAM,wBAAwB,CAAC;YAC5D,aAAa,CAAC,OAAO,CAAC,CAAC;QACzB,CAAC;aAAM,IACL,GAAG,CAAC,QAAQ,CAAC,2DAA2D,CAAC,EACzE,CAAC;YACD,oBAAoB,GAAG,IAAI,IAAI,EAAE,CAAC;YAClC,MAAM,MAAM,GAAG,6BAA6B,MAAM,gBAAgB,CAAC;YACnE,aAAa,CAAC,MAAM,CAAC,CAAC;QACxB,CAAC;aAAM,IAAI,GAAG,CAAC,QAAQ,CAAC,4CAA4C,CAAC,EAAE,CAAC;YACtE,MAAM,qBAAqB,GAAG,IAAI,IAAI,EAAE,CAAC;YACzC,MAAM,uBAAuB,GAC3B,qBAAqB,CAAC,OAAO,EAAE,GAAG,oBAAoB,CAAC,OAAO,EAAE,CAAC;YACnE,MAAM,kBAAkB,GAAG,uBAAuB,GAAG,IAAI,CAAC;YAC1D,MAAM,MAAM,GAAG,GAAG,8BAA8B,QAAQ,kBAAkB,YAAY,MAAM,EAAE,CAAC;YAC/F,aAAa,CAAC,MAAM,CAAC,CAAC;YAEtB,8FAA8F;YAC9F,0EAA0E;YAC1E,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;gBACzB,MAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,gBAAgB,CAAC,CAAC;gBACrE,IAAI,MAAM,CAAC,iBAAiB,CAAC,EAAE,CAAC;oBAC9B,UAAU,CACR,iBAAiB,EACjB,kDAAkD,CACnD,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;aAAM,CAAC;YACN,aAAa,CAAC,GAAG,CAAC,CAAC;QACrB,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAuB,EAAE,EAAE;QACjD,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC;QACnC,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YACjB,0EAA0E;YAC1E,OAAO;QACT,CAAC;QACD,aAAa,CAAC,UAAU,GAAG,EAAE,CAAC,CAAC;IACjC,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;QACxB,UAAU,CACR,UAAU,kBAAkB,iCAAiC,IAAI,EAAE,CACpE,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;QACvB,UAAU,CACR,UAAU,kBAAkB,iCAAiC,IAAI,EAAE,CACpE,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,uBAAuB,CAAC,MAAc,EAAE,GAAW;IAC1D,IACE,MAAM,CAAC,oBAAoB,KAAK,KAAK;WAClC,MAAM,CAAC,oBAAoB,KAAK,SAAS,EAC5C,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IACpC,OAAO,QAAQ,KAAK,oBAAoB;QACtC,CAAC,CAAC,4BAA4B;QAC9B,CAAC,CAAC,gBAAgB,CAAC;AACvB,CAAC"}
1
+ {"version":3,"file":"spawnTSTLWatcher.js","sourceRoot":"","sources":["../../../src/commands/monitor/spawnTSTLWatcher.ts"],"names":[],"mappings":"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"}
@@ -1,16 +1,18 @@
1
1
  import { isDirectory, isFile, makeDirectory, touch } from "complete-node";
2
2
  import path from "node:path";
3
3
  import { WATCHER_MOD_NAME } from "../../constants.js";
4
- export function touchWatcherSaveDatFiles(config) {
4
+ export async function touchWatcherSaveDatFiles(config) {
5
5
  const modsDataPath = path.resolve(config.modsDirectory, "..", "data");
6
6
  const watcherModDataPath = path.join(modsDataPath, WATCHER_MOD_NAME);
7
- if (!isDirectory(watcherModDataPath)) {
8
- makeDirectory(watcherModDataPath);
7
+ const directory = await isDirectory(watcherModDataPath);
8
+ if (!directory) {
9
+ await makeDirectory(watcherModDataPath);
9
10
  }
10
11
  const saveDatFileName = `save${config.saveSlot}.dat`;
11
12
  const saveDatPath = path.join(watcherModDataPath, saveDatFileName);
12
- if (!isFile(saveDatPath)) {
13
- touch(saveDatPath);
13
+ const file = await isFile(saveDatPath);
14
+ if (!file) {
15
+ await touch(saveDatPath);
14
16
  }
15
17
  }
16
18
  //# sourceMappingURL=touchWatcherSaveDatFiles.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"touchWatcherSaveDatFiles.js","sourceRoot":"","sources":["../../../src/commands/monitor/touchWatcherSaveDatFiles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAC1E,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,MAAM,UAAU,wBAAwB,CAAC,MAAuB;IAC9D,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IACtE,MAAM,kBAAkB,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,gBAAgB,CAAC,CAAC;IACrE,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC,EAAE,CAAC;QACrC,aAAa,CAAC,kBAAkB,CAAC,CAAC;IACpC,CAAC;IACD,MAAM,eAAe,GAAG,OAAO,MAAM,CAAC,QAAQ,MAAM,CAAC;IACrD,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,eAAe,CAAC,CAAC;IACnE,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC;QACzB,KAAK,CAAC,WAAW,CAAC,CAAC;IACrB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"touchWatcherSaveDatFiles.js","sourceRoot":"","sources":["../../../src/commands/monitor/touchWatcherSaveDatFiles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAC1E,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,MAAuB;IAEvB,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IACtE,MAAM,kBAAkB,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,gBAAgB,CAAC,CAAC;IACrE,MAAM,SAAS,GAAG,MAAM,WAAW,CAAC,kBAAkB,CAAC,CAAC;IACxD,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,aAAa,CAAC,kBAAkB,CAAC,CAAC;IAC1C,CAAC;IACD,MAAM,eAAe,GAAG,OAAO,MAAM,CAAC,QAAQ,MAAM,CAAC;IACrD,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,eAAe,CAAC,CAAC;IACnE,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC;IACvC,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,KAAK,CAAC,WAAW,CAAC,CAAC;IAC3B,CAAC;AACH,CAAC"}
@@ -14,23 +14,24 @@ export async function publishIsaacScriptMod(dryRun, verbose) {
14
14
  const modTargetDirectoryName = getModTargetDirectoryName(config);
15
15
  const modTargetPath = path.join(config.modsDirectory, modTargetDirectoryName);
16
16
  const version = await getPackageJSONVersion(undefined);
17
- runReleaseScriptPreCopy(verbose);
17
+ await runReleaseScriptPreCopy(verbose);
18
18
  await compileAndCopy(MOD_SOURCE_PATH, modTargetPath, packageManager, config.isaacScriptCommonDev, verbose);
19
- purgeRoomXMLs(modTargetPath);
20
- runReleaseScriptPostCopy(verbose);
19
+ await purgeRoomXMLs(modTargetPath);
20
+ await runReleaseScriptPostCopy(verbose);
21
21
  if (dryRun) {
22
22
  execShellString("git reset --hard", verbose); // Revert the version changes.
23
23
  }
24
24
  else {
25
25
  const releaseGitCommitMessage = getReleaseGitCommitMessage(version);
26
26
  gitCommitAllAndPush(releaseGitCommitMessage, verbose);
27
- uploadMod(modTargetPath, verbose);
27
+ await uploadMod(modTargetPath, verbose);
28
28
  }
29
29
  const dryRunSuffix = dryRun ? " (dry run)" : "";
30
30
  console.log(`\nPublished version ${version} successfully${dryRunSuffix}.`);
31
31
  }
32
- function runReleaseScriptPreCopy(verbose) {
33
- if (!isFile(PUBLISH_PRE_COPY_PY_PATH)) {
32
+ async function runReleaseScriptPreCopy(verbose) {
33
+ const file = await isFile(PUBLISH_PRE_COPY_PY_PATH);
34
+ if (!file) {
34
35
  return;
35
36
  }
36
37
  console.log(`Running the "${PUBLISH_PRE_COPY_PY_PATH}" script.`);
@@ -39,8 +40,9 @@ function runReleaseScriptPreCopy(verbose) {
39
40
  console.log(stdout);
40
41
  }
41
42
  }
42
- function runReleaseScriptPostCopy(verbose) {
43
- if (!isFile(PUBLISH_POST_COPY_PY_PATH)) {
43
+ async function runReleaseScriptPostCopy(verbose) {
44
+ const file = await isFile(PUBLISH_POST_COPY_PY_PATH);
45
+ if (!file) {
44
46
  return;
45
47
  }
46
48
  console.log(`Running the "${PUBLISH_POST_COPY_PY_PATH}" script.`);
@@ -49,20 +51,23 @@ function runReleaseScriptPostCopy(verbose) {
49
51
  console.log(stdout);
50
52
  }
51
53
  }
52
- function purgeRoomXMLs(modTargetPath) {
54
+ async function purgeRoomXMLs(modTargetPath) {
53
55
  const roomsPath = path.join(modTargetPath, "resources", "rooms");
54
- if (!isDirectory(roomsPath)) {
56
+ const directory = await isDirectory(roomsPath);
57
+ if (!directory) {
55
58
  return;
56
59
  }
57
- const fileNames = getFileNamesInDirectory(roomsPath);
60
+ const fileNames = await getFileNamesInDirectory(roomsPath);
58
61
  const xmlFileNames = fileNames.filter((fileName) => path.extname(fileName) === ".xml");
59
62
  for (const xmlFileName of xmlFileNames) {
60
63
  const roomFilePath = path.join(roomsPath, xmlFileName);
61
- deleteFileOrDirectory(roomFilePath);
64
+ // eslint-disable-next-line no-await-in-loop
65
+ await deleteFileOrDirectory(roomFilePath);
62
66
  }
63
67
  }
64
- function uploadMod(modTargetPath, verbose) {
65
- if (hasIsaacSteamWorkshopUploadGitHubAction()) {
68
+ async function uploadMod(modTargetPath, verbose) {
69
+ const hasGitHubAction = await hasIsaacSteamWorkshopUploadGitHubAction();
70
+ if (hasGitHubAction) {
66
71
  // CI will automatically upload the new version to the Steam Workshop, so there is no need to
67
72
  // open the mod uploader program.
68
73
  return;
@@ -70,12 +75,13 @@ function uploadMod(modTargetPath, verbose) {
70
75
  console.log(`The "isaac-steam-workshop-upload" action was not found in the "${chalk.green("ci.yml")}" file; assuming that we want to use the "ModUploader.exe" tool.`);
71
76
  execExe(MOD_UPLOADER_PATH, [], verbose, modTargetPath);
72
77
  }
73
- function hasIsaacSteamWorkshopUploadGitHubAction() {
78
+ async function hasIsaacSteamWorkshopUploadGitHubAction() {
74
79
  const ciYMLPath = path.join(CWD, ".github", "workflows", "ci.yml");
75
- if (!isFile(ciYMLPath)) {
80
+ const file = await isFile(ciYMLPath);
81
+ if (!file) {
76
82
  return false;
77
83
  }
78
- const ciYML = readFile(ciYMLPath);
84
+ const ciYML = await readFile(ciYMLPath);
79
85
  const lines = ciYML.split("\n");
80
86
  return lines.some((line) => line.match(/^\s*uses: IsaacScript\/isaac-steam-workshop-upload/) !== null);
81
87
  }
@@ -1 +1 @@
1
- {"version":3,"file":"isaacscriptMod.js","sourceRoot":"","sources":["../../../src/commands/publish/isaacscriptMod.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"isaacscriptMod.js","sourceRoot":"","sources":["../../../src/commands/publish/isaacscriptMod.ts"],"names":[],"mappings":"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"}