isaacscript 1.2.38 → 1.2.41

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 (44) hide show
  1. package/.cspell.json +0 -3
  2. package/.prettierrc.js +1 -1
  3. package/.vscode/settings.json +3 -3
  4. package/dist/package.json +7 -7
  5. package/dist/src/commands/monitor/modDirectorySyncer/modDirectorySyncer.js +11 -5
  6. package/dist/src/commands/monitor/modDirectorySyncer/modDirectorySyncer.js.map +1 -1
  7. package/dist/src/commands/monitor/monitor.js +24 -2
  8. package/dist/src/commands/monitor/monitor.js.map +1 -1
  9. package/dist/src/commands/monitor/saveDatWriter/saveDatWriter.js +6 -5
  10. package/dist/src/commands/monitor/saveDatWriter/saveDatWriter.js.map +1 -1
  11. package/dist/src/exec.js +2 -1
  12. package/dist/src/exec.js.map +1 -1
  13. package/dist/src/file.js +1 -1
  14. package/dist/src/file.js.map +1 -1
  15. package/dist/src/types/Config.js +16 -6
  16. package/dist/src/types/Config.js.map +1 -1
  17. package/dist/src/utils.js +2 -2
  18. package/dist/src/utils.js.map +1 -1
  19. package/dist/src/validateNodeVersion.js +3 -3
  20. package/dist/src/validateNodeVersion.js.map +1 -1
  21. package/eslint-debug.sh +3 -0
  22. package/file-templates/dynamic/gitignore +19 -5
  23. package/file-templates/static/.prettierrc.js +1 -1
  24. package/file-templates/static/lint.sh +2 -2
  25. package/file-templates/static/nuke.sh +1 -1
  26. package/file-templates/static/plugins/addCrashDebugStatements.ts +12 -0
  27. package/file-templates/static/plugins/addIsaacScriptCommentHeader.ts +2 -0
  28. package/file-templates/static/plugins/noExtendedEnums.ts +70 -0
  29. package/file-templates/static/tsconfig.json +4 -1
  30. package/file-templates/static/update.sh +5 -1
  31. package/lint.sh +6 -0
  32. package/nuke.sh +1 -1
  33. package/package.json +7 -7
  34. package/src/commands/monitor/modDirectorySyncer/modDirectorySyncer.ts +15 -5
  35. package/src/commands/monitor/monitor.ts +41 -2
  36. package/src/commands/monitor/saveDatWriter/saveDatWriter.ts +7 -6
  37. package/src/exec.ts +2 -1
  38. package/src/file.ts +1 -1
  39. package/src/utils.ts +4 -4
  40. package/src/validateNodeVersion.ts +3 -3
  41. package/update.sh +5 -1
  42. package/dist/src/commands/monitor/getTSConfigInclude.js +0 -53
  43. package/dist/src/commands/monitor/getTSConfigInclude.js.map +0 -1
  44. package/src/commands/monitor/getTSConfigInclude.ts +0 -32
package/.cspell.json CHANGED
@@ -1,8 +1,5 @@
1
1
  {
2
2
  "version": "0.2",
3
- "dictionaries": [
4
-
5
- ],
6
3
  "words": [
7
4
  "APPDATA",
8
5
  "backticks",
package/.prettierrc.js CHANGED
@@ -7,7 +7,7 @@ module.exports = {
7
7
  // The Airbnb style guide agrees:
8
8
  // https://github.com/airbnb/javascript#commas--dangling
9
9
  // Prettier itself also acknowledges Nik Graf's blog in their official blog:
10
- // https://prettier.io/blog/2020/03/21/2.0.0.html#change-default-value-for-trailingcomma-to-es5-6963httpsgithubcomprettierprettierpull6963-by-fiskerhttpsgithubcomfisker
10
+ // https://prettier.io/blog/2020/03/21/2.0.0.html
11
11
  // https://medium.com/@nikgraf/why-you-should-enforce-dangling-commas-for-multiline-statements-d034c98e36f8
12
12
  // Prettier will change the default in the future:
13
13
  // https://github.com/prettier/prettier/issues/9369
@@ -24,9 +24,9 @@
24
24
  "dist/**": true,
25
25
  },
26
26
 
27
- // -----------------------
28
- // JavaScript / TypeScript
29
- // -----------------------
27
+ // -----------------
28
+ // Language settings
29
+ // -----------------
30
30
 
31
31
  // By default, VSCode will not automatically fill-in function arguments
32
32
  "javascript.suggest.completeFunctionCalls": true,
package/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "isaacscript",
3
- "version": "1.2.38",
3
+ "version": "1.2.41",
4
4
  "description": "A command line tool for managing Isaac mods written in TypeScript",
5
5
  "homepage": "https://isaacscript.github.io/",
6
6
  "bugs": {
@@ -16,22 +16,22 @@
16
16
  "isaacscript": "./dist/src/main.js"
17
17
  },
18
18
  "dependencies": {
19
- "@types/node": "^17.0.25",
19
+ "@types/node": "^17.0.31",
20
20
  "chalk": "4.1.2",
21
21
  "command-exists": "^1.2.9",
22
22
  "dotenv": "^16.0.0",
23
23
  "figlet": "^1.5.2",
24
24
  "fs-extra": "^10.1.0",
25
- "isaacscript-tsconfig": "^1.1.9",
25
+ "isaacscript-tsconfig": "^1.1.11",
26
26
  "jsonc-parser": "^3.0.0",
27
27
  "moment": "^2.29.3",
28
- "npm-check-updates": "^12.5.9",
28
+ "npm-check-updates": "^12.5.11",
29
29
  "prompt": "^1.3.0",
30
30
  "source-map": "^0.7.3",
31
31
  "source-map-support": "^0.5.21",
32
- "sync-directory": "^4.0.14",
32
+ "sync-directory": "^5.0.4",
33
33
  "ts-node": "^10.7.0",
34
- "typescript": "^4.6.3",
34
+ "typescript": "^4.6.4",
35
35
  "typescript-to-lua": "^1.4.3",
36
36
  "update-notifier": "^5.1.0",
37
37
  "yaml": "^2.0.1",
@@ -45,6 +45,6 @@
45
45
  "@types/source-map-support": "^0.5.4",
46
46
  "@types/update-notifier": "^5.1.0",
47
47
  "@types/yargs": "^17.0.10",
48
- "isaacscript-lint": "^1.0.99"
48
+ "isaacscript-lint": "^1.0.104"
49
49
  }
50
50
  }
@@ -5,16 +5,22 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const sync_directory_1 = __importDefault(require("sync-directory"));
7
7
  const constants_1 = require("../../../constants");
8
+ const SUBPROCESS_NAME = "directory syncer";
9
+ const BASE_ARGV_LENGTH = 2;
8
10
  let modSourcePath;
9
11
  let modTargetPath;
10
12
  init();
11
13
  function init() {
12
- const numArgs = 2;
13
- if (process.argv.length !== 2 + numArgs) {
14
- throw new Error("The directory syncer process did not get the right amount of arguments.");
14
+ const firstArg = process.argv[BASE_ARGV_LENGTH];
15
+ if (firstArg === undefined) {
16
+ throw new Error(`The ${SUBPROCESS_NAME} process did not get a valid first argument.`);
15
17
  }
16
- modSourcePath = process.argv[2];
17
- modTargetPath = process.argv[3];
18
+ const secondArg = process.argv[BASE_ARGV_LENGTH + 1];
19
+ if (secondArg === undefined) {
20
+ throw new Error(`The ${SUBPROCESS_NAME} process did not get the right amount of arguments.`);
21
+ }
22
+ modSourcePath = firstArg;
23
+ modTargetPath = secondArg;
18
24
  (0, sync_directory_1.default)(modSourcePath, modTargetPath, {
19
25
  watch: true,
20
26
  type: "copy",
@@ -1 +1 @@
1
- {"version":3,"file":"modDirectorySyncer.js","sourceRoot":"","sources":["../../../../../src/commands/monitor/modDirectorySyncer/modDirectorySyncer.ts"],"names":[],"mappings":";;;;;AAAA,oEAA2C;AAC3C,kDAAyD;AAEzD,IAAI,aAAqB,CAAC;AAC1B,IAAI,aAAqB,CAAC;AAE1B,IAAI,EAAE,CAAC;AAEP,SAAS,IAAI;IACX,MAAM,OAAO,GAAG,CAAC,CAAC;IAClB,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,GAAG,OAAO,EAAE;QACvC,MAAM,IAAI,KAAK,CACb,yEAAyE,CAC1E,CAAC;KACH;IAED,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAChC,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAEhC,IAAA,wBAAa,EAAC,aAAa,EAAE,aAAa,EAAE;QAC1C,KAAK,EAAE,IAAI;QACX,IAAI,EAAE,MAAM;QACZ,aAAa;QACb,OAAO;QACP,oBAAoB,EAAE;YACpB,gBAAgB,EAAE;gBAChB,kBAAkB,EAAE,IAAI;aACzB;SACF;KACF,CAAC,CAAC;AACL,CAAC;AAED,SAAS,aAAa,CAAC,MAMtB;IACC,IAAI,MAAM,KAAK,SAAS,EAAE;QACxB,OAAO;KACR;IAED,IAAI,MAAM,CAAC,SAAS,KAAK,WAAW,EAAE;QACpC,IAAI,CAAC,GAAG,+BAAmB,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC;KACvD;AACH,CAAC;AAED,SAAS,OAAO,CAAC,GAAU;IACzB,IAAI,CAAC,8CAA8C,GAAG,EAAE,CAAC,CAAC;AAC5D,CAAC;AAED,SAAS,IAAI,CAAC,GAAW;IACvB,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE;QAC9B,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KACnB;AACH,CAAC"}
1
+ {"version":3,"file":"modDirectorySyncer.js","sourceRoot":"","sources":["../../../../../src/commands/monitor/modDirectorySyncer/modDirectorySyncer.ts"],"names":[],"mappings":";;;;;AAAA,oEAA2C;AAC3C,kDAAyD;AAEzD,MAAM,eAAe,GAAG,kBAAkB,CAAC;AAC3C,MAAM,gBAAgB,GAAG,CAAC,CAAC;AAE3B,IAAI,aAAqB,CAAC;AAC1B,IAAI,aAAqB,CAAC;AAE1B,IAAI,EAAE,CAAC;AAEP,SAAS,IAAI;IACX,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAChD,IAAI,QAAQ,KAAK,SAAS,EAAE;QAC1B,MAAM,IAAI,KAAK,CACb,OAAO,eAAe,8CAA8C,CACrE,CAAC;KACH;IAED,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC,CAAC;IACrD,IAAI,SAAS,KAAK,SAAS,EAAE;QAC3B,MAAM,IAAI,KAAK,CACb,OAAO,eAAe,qDAAqD,CAC5E,CAAC;KACH;IAED,aAAa,GAAG,QAAQ,CAAC;IACzB,aAAa,GAAG,SAAS,CAAC;IAE1B,IAAA,wBAAa,EAAC,aAAa,EAAE,aAAa,EAAE;QAC1C,KAAK,EAAE,IAAI;QACX,IAAI,EAAE,MAAM;QACZ,aAAa;QACb,OAAO;QACP,oBAAoB,EAAE;YACpB,gBAAgB,EAAE;gBAChB,kBAAkB,EAAE,IAAI;aACzB;SACF;KACF,CAAC,CAAC;AACL,CAAC;AAED,SAAS,aAAa,CAAC,MAMtB;IACC,IAAI,MAAM,KAAK,SAAS,EAAE;QACxB,OAAO;KACR;IAED,IAAI,MAAM,CAAC,SAAS,KAAK,WAAW,EAAE;QACpC,IAAI,CAAC,GAAG,+BAAmB,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC;KACvD;AACH,CAAC;AAED,SAAS,OAAO,CAAC,GAAU;IACzB,IAAI,CAAC,8CAA8C,GAAG,EAAE,CAAC,CAAC;AAC5D,CAAC;AAED,SAAS,IAAI,CAAC,GAAW;IACvB,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE;QAC9B,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KACnB;AACH,CAAC"}
@@ -29,12 +29,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
29
29
  exports.monitor = void 0;
30
30
  const chalk_1 = __importDefault(require("chalk"));
31
31
  const child_process_1 = require("child_process");
32
+ const JSONC = __importStar(require("jsonc-parser"));
32
33
  const path_1 = __importDefault(require("path"));
33
34
  const constants_1 = require("../../constants");
34
35
  const file = __importStar(require("../../file"));
35
36
  const utils_1 = require("../../utils");
36
37
  const copyWatcherMod_1 = require("./copyWatcherMod");
37
- const getTSConfigInclude_1 = require("./getTSConfigInclude");
38
38
  const notifyGame = __importStar(require("./notifyGame"));
39
39
  const spawnSaveDatWriter_1 = require("./spawnSaveDatWriter");
40
40
  const touchWatcherSaveDatFiles_1 = require("./touchWatcherSaveDatFiles");
@@ -48,7 +48,7 @@ function monitor(argv, config) {
48
48
  config.saveSlot = argv.saveSlot; // eslint-disable-line no-param-reassign
49
49
  }
50
50
  // Read the "tsconfig.json" file
51
- const tsConfigInclude = (0, getTSConfigInclude_1.getTSConfigInclude)(verbose);
51
+ const tsConfigInclude = getFirstTSConfigIncludePath(verbose);
52
52
  const resolvedIncludePath = path_1.default.resolve(constants_1.CWD, tsConfigInclude);
53
53
  const modTargetDirectoryName = (0, utils_1.getModTargetDirectoryName)(config);
54
54
  const modTargetPath = path_1.default.join(config.modsDirectory, modTargetDirectoryName);
@@ -142,4 +142,26 @@ function spawnTSTLWatcher() {
142
142
  (0, utils_1.error)(`Error: ${processDescription} subprocess exited with code: ${code}`);
143
143
  });
144
144
  }
145
+ function getFirstTSConfigIncludePath(verbose) {
146
+ const tsConfigRaw = file.read(constants_1.TSCONFIG_PATH, verbose);
147
+ let tsConfig;
148
+ try {
149
+ tsConfig = JSONC.parse(tsConfigRaw);
150
+ }
151
+ catch (err) {
152
+ (0, utils_1.error)(`Failed to parse "${chalk_1.default.green(constants_1.TSCONFIG_PATH)}":`, err);
153
+ }
154
+ const include = tsConfig.include;
155
+ if (include === undefined) {
156
+ (0, utils_1.error)(`Your "${chalk_1.default.green(constants_1.TSCONFIG_PATH)}" file does not have an "include" property, which is surely a mistake. Delete the file and re-run ${constants_1.PROJECT_NAME}.`);
157
+ }
158
+ if (!Array.isArray(include)) {
159
+ (0, utils_1.error)(`Your "${chalk_1.default.green(constants_1.TSCONFIG_PATH)}" file has an "include" property that is not an array, which is surely a mistake. Delete the file and re-run ${constants_1.PROJECT_NAME}.`);
160
+ }
161
+ const firstInclude = include[0];
162
+ if (firstInclude === undefined) {
163
+ (0, utils_1.error)(`Your "${chalk_1.default.green(constants_1.TSCONFIG_PATH)}" file has an empty "include" property, which is surely a mistake. Delete the file and re-run ${constants_1.PROJECT_NAME}.`);
164
+ }
165
+ return firstInclude;
166
+ }
145
167
  //# sourceMappingURL=monitor.js.map
@@ -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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"}
@@ -31,18 +31,19 @@ const path_1 = __importDefault(require("path"));
31
31
  const constants_1 = require("../../../constants");
32
32
  const file = __importStar(require("../../../file"));
33
33
  const utils_1 = require("../../../utils");
34
+ const SUBPROCESS_NAME = "save#.dat writer";
35
+ const BASE_ARGV_LENGTH = 2;
34
36
  const MAX_MESSAGES = 100;
35
37
  const VERBOSE = false;
36
38
  let saveDatPath;
37
39
  let saveDatFileName;
38
40
  init(VERBOSE);
39
41
  function init(verbose) {
40
- const numArgs = 1;
41
- if (process.argv.length !== 2 + numArgs) {
42
- send("The save#.dat writer process did not get the right amount of arguments.");
43
- process.exit(1);
42
+ const firstArg = process.argv[BASE_ARGV_LENGTH];
43
+ if (firstArg === undefined) {
44
+ throw new Error(`The ${SUBPROCESS_NAME} process did not get a valid first argument.`);
44
45
  }
45
- saveDatPath = process.argv[2];
46
+ saveDatPath = firstArg;
46
47
  saveDatFileName = path_1.default.basename(saveDatPath);
47
48
  // Check to see if the data directory exists
48
49
  const watcherModDataPath = path_1.default.dirname(saveDatPath);
@@ -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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"}
package/dist/src/exec.js CHANGED
@@ -58,7 +58,8 @@ function execShell(command, args = [], verbose = false, allowFailure = false, cw
58
58
  (0, utils_1.error)("execShell cannot execute commands with double quotes in the command.");
59
59
  }
60
60
  for (let i = 0; i < args.length; i++) {
61
- if (args[i].includes('"')) {
61
+ const arg = args[i];
62
+ if (arg !== undefined && arg.includes('"')) {
62
63
  (0, utils_1.error)("execShell cannot execute commands with double quotes in the arguments.");
63
64
  }
64
65
  args[i] = `"${args[i]}"`; // eslint-disable-line no-param-reassign
@@ -1 +1 @@
1
- {"version":3,"file":"exec.js","sourceRoot":"","sources":["../../src/exec.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAC1B,iDAAsE;AACtE,2CAAkC;AAClC,mCAAgC;AAEhC,SAAgB,OAAO,CAAC,IAAY,EAAE,OAAgB,EAAE,GAAG,GAAG,eAAG;IAC/D,IAAI,OAAO,EAAE;QACX,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,EAAE,CAAC,CAAC;KAC1C;IAED,IAAI,MAAc,CAAC;IACnB,IAAI;QACF,MAAM,MAAM,GAAG,IAAA,wBAAQ,EAAC,IAAI,IAAI,GAAG,EAAE;YACnC,GAAG;SACJ,CAAC,CAAC;QACH,MAAM,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC;KACnC;IAAC,OAAO,GAAG,EAAE;QACZ,IAAA,aAAK,EAAC,kBAAkB,eAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;KACrD;IAED,IAAI,OAAO,EAAE;QACX,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,EAAE,CAAC,CAAC;KACzC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AApBD,0BAoBC;AAED,SAAgB,cAAc,CAC5B,OAAe,EACf,OAAO,GAAG,KAAK,EACf,GAAG,GAAG,eAAG;IAET,IAAI,OAAO,EAAE;QACX,OAAO,CAAC,GAAG,CAAC,iCAAiC,OAAO,EAAE,CAAC,CAAC;KACzD;IAED,IAAI,MAAc,CAAC;IACnB,IAAI;QACF,MAAM,MAAM,GAAG,IAAA,wBAAQ,EAAC,OAAO,EAAE;YAC/B,KAAK,EAAE,gBAAgB;YACvB,GAAG;SACJ,CAAC,CAAC;QACH,MAAM,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC;KACnC;IAAC,OAAO,GAAG,EAAE;QACZ,IAAA,aAAK,EAAC,qCAAqC,eAAK,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;KAC3E;IAED,IAAI,OAAO,EAAE;QACX,OAAO,CAAC,GAAG,CAAC,gCAAgC,OAAO,EAAE,CAAC,CAAC;KACxD;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAzBD,wCAyBC;AAED,wFAAwF;AACxF,SAAgB,SAAS,CACvB,OAAe,EACf,OAAiB,EAAE,EACnB,OAAO,GAAG,KAAK,EACf,YAAY,GAAG,KAAK,EACpB,GAAG,GAAG,eAAG;IAET,qEAAqE;IACrE,0CAA0C;IAC1C,sEAAsE;IACtE,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;QACzB,IAAA,aAAK,EACH,sEAAsE,CACvE,CAAC;KACH;IACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACpC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;YACzB,IAAA,aAAK,EACH,wEAAwE,CACzE,CAAC;SACH;QAED,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,wCAAwC;KACnE;IAED,MAAM,kBAAkB,GAAG,GAAG,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;IAEjE,IAAI,OAAO,EAAE;QACX,OAAO,CAAC,GAAG,CAAC,sBAAsB,kBAAkB,EAAE,CAAC,CAAC;KACzD;IAED,IAAI,gBAA0C,CAAC;IAC/C,IAAI;QACF,gBAAgB,GAAG,IAAA,yBAAS,EAAC,OAAO,EAAE,IAAI,EAAE;YAC1C,KAAK,EAAE,IAAI;YACX,GAAG;SACJ,CAAC,CAAC;KACJ;IAAC,OAAO,GAAG,EAAE;QACZ,IAAA,aAAK,EACH,sBAAsB,eAAK,CAAC,KAAK,CAAC,kBAAkB,CAAC,YAAY,EACjE,GAAG,CACJ,CAAC;KACH;IAED,IAAI,OAAO,EAAE;QACX,OAAO,CAAC,GAAG,CAAC,qBAAqB,kBAAkB,EAAE,CAAC,CAAC;KACxD;IAED,MAAM,UAAU,GAAG,gBAAgB,CAAC,MAAM,CAAC;IAC3C,IAAI,UAAU,KAAK,IAAI,EAAE;QACvB,IAAA,aAAK,EAAC,+CAA+C,kBAAkB,EAAE,CAAC,CAAC;KAC5E;IAED,MAAM,MAAM,GAAG,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;IAEzD,IAAI,UAAU,KAAK,CAAC,EAAE;QACpB,IAAI,YAAY,EAAE;YAChB,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;SAC7B;QAED,OAAO,CAAC,KAAK,CACX,sBAAsB,eAAK,CAAC,KAAK,CAC/B,kBAAkB,CACnB,kCAAkC,UAAU,GAAG,CACjD,CAAC;QACF,OAAO,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAC5C,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACtB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KACjB;IAED,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;AAC9B,CAAC;AAvED,8BAuEC"}
1
+ {"version":3,"file":"exec.js","sourceRoot":"","sources":["../../src/exec.ts"],"names":[],"mappings":"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"}
package/dist/src/file.js CHANGED
@@ -52,7 +52,7 @@ function exists(filePath, verbose) {
52
52
  pathExists = fs_extra_1.default.existsSync(filePath);
53
53
  }
54
54
  catch (err) {
55
- (0, utils_1.error)(`Failed to check to see if "${chalk_1.default.green(filePath)}" exists:`, err);
55
+ (0, utils_1.error)(`Failed to check if "${chalk_1.default.green(filePath)}" exists:`, err);
56
56
  }
57
57
  if (verbose) {
58
58
  console.log(`Path exists: ${pathExists}`);
@@ -1 +1 @@
1
- {"version":3,"file":"file.js","sourceRoot":"","sources":["../../src/file.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"file.js","sourceRoot":"","sources":["../../src/file.ts"],"names":[],"mappings":"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"}
@@ -2,12 +2,22 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Config = void 0;
4
4
  class Config {
5
- constructor() {
6
- /** The "mods" directory that lives next to the "isaac-ng.exe" program. */
7
- this.modsDirectory = "C:\\Program Files (x86)\\Steam\\steamapps\\common\\The Binding of Isaac Rebirth\\mods";
8
- /** The save slot that you test your mod on. */
9
- this.saveSlot = 1;
10
- }
5
+ /** The "mods" directory that lives next to the "isaac-ng.exe" program. */
6
+ modsDirectory = "C:\\Program Files (x86)\\Steam\\steamapps\\common\\The Binding of Isaac Rebirth\\mods";
7
+ /** The save slot that you test your mod on. */
8
+ saveSlot = 1;
9
+ /**
10
+ * By default, the target mod directory name will be the same as the project directory name. This
11
+ * setting allows you to customize it.
12
+ */
13
+ customTargetModDirectoryName;
14
+ /** The path to "steamcmd.exe". This is optional and only needed for automating publishing. */
15
+ steamCmdPath;
16
+ /**
17
+ * When your code is recompiled, IsaacScript watcher can restart the game to ensure that any
18
+ * run-related variables are properly reset. This is set to true by default.
19
+ */
20
+ enableIsaacScriptWatcherAutoRestart;
11
21
  }
12
22
  exports.Config = Config;
13
23
  //# sourceMappingURL=Config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Config.js","sourceRoot":"","sources":["../../../src/types/Config.ts"],"names":[],"mappings":";;;AAAA,MAAa,MAAM;IAAnB;QACE,0EAA0E;QAC1E,kBAAa,GACX,uFAAuF,CAAC;QAE1F,+CAA+C;QAC/C,aAAQ,GAAG,CAAC,CAAC;IAgBf,CAAC;CAAA;AAtBD,wBAsBC"}
1
+ {"version":3,"file":"Config.js","sourceRoot":"","sources":["../../../src/types/Config.ts"],"names":[],"mappings":";;;AAAA,MAAa,MAAM;IACjB,0EAA0E;IAC1E,aAAa,GACX,uFAAuF,CAAC;IAE1F,+CAA+C;IAC/C,QAAQ,GAAG,CAAC,CAAC;IAEb;;;OAGG;IACH,4BAA4B,CAAU;IAEtC,8FAA8F;IAC9F,YAAY,CAAU;IAEtB;;;OAGG;IACH,mCAAmC,CAAW;CAC/C;AAtBD,wBAsBC"}
package/dist/src/utils.js CHANGED
@@ -70,11 +70,11 @@ function parseSemVer(versionString) {
70
70
  if (Number.isNaN(majorVersion)) {
71
71
  error(`Failed to parse the major version number from: ${versionString}`);
72
72
  }
73
- const minorVersion = parseInt(minorVersionString, 10);
73
+ const minorVersion = parseIntSafe(minorVersionString);
74
74
  if (Number.isNaN(minorVersion)) {
75
75
  error(`Failed to parse the minor version number from: ${versionString}`);
76
76
  }
77
- const patchVersion = parseInt(patchVersionString, 10);
77
+ const patchVersion = parseIntSafe(patchVersionString);
78
78
  if (Number.isNaN(patchVersion)) {
79
79
  error(`Failed to parse the patch version number from: ${versionString}`);
80
80
  }
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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"}
@@ -12,12 +12,12 @@ const REQUIRED_NODE_JS_MAJOR_VERSION = 16;
12
12
  // since that is the version that added the "fs.rmSync()" function
13
13
  // (I tested on Node v15.0.0 and it failed)
14
14
  function validateNodeVersion() {
15
- const nodeJSVersionString = process.version;
16
- const [majorVersion] = (0, utils_1.parseSemVer)(nodeJSVersionString);
15
+ const { version } = process;
16
+ const [majorVersion] = (0, utils_1.parseSemVer)(version);
17
17
  if (majorVersion >= REQUIRED_NODE_JS_MAJOR_VERSION) {
18
18
  return;
19
19
  }
20
- console.error(`Your Node.js version is: ${chalk_1.default.red(nodeJSVersionString)}`);
20
+ console.error(`Your Node.js version is: ${chalk_1.default.red(version)}`);
21
21
  console.error(`${constants_1.PROJECT_NAME} requires a Node.js version of ${chalk_1.default.red(`${REQUIRED_NODE_JS_MAJOR_VERSION}.0.0`)} or greater.`);
22
22
  console.error(`Please upgrade your version of Node.js before using ${constants_1.PROJECT_NAME}.`);
23
23
  process.exit(1);
@@ -1 +1 @@
1
- {"version":3,"file":"validateNodeVersion.js","sourceRoot":"","sources":["../../src/validateNodeVersion.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAC1B,2CAA2C;AAC3C,mCAAsC;AAEtC,MAAM,8BAA8B,GAAG,EAAE,CAAC;AAE1C,qDAAqD;AACrD,kEAAkE;AAClE,2CAA2C;AAC3C,SAAgB,mBAAmB;IACjC,MAAM,mBAAmB,GAAG,OAAO,CAAC,OAAO,CAAC;IAC5C,MAAM,CAAC,YAAY,CAAC,GAAG,IAAA,mBAAW,EAAC,mBAAmB,CAAC,CAAC;IAExD,IAAI,YAAY,IAAI,8BAA8B,EAAE;QAClD,OAAO;KACR;IAED,OAAO,CAAC,KAAK,CAAC,4BAA4B,eAAK,CAAC,GAAG,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC;IAC5E,OAAO,CAAC,KAAK,CACX,GAAG,wBAAY,kCAAkC,eAAK,CAAC,GAAG,CACxD,GAAG,8BAA8B,MAAM,CACxC,cAAc,CAChB,CAAC;IACF,OAAO,CAAC,KAAK,CACX,uDAAuD,wBAAY,GAAG,CACvE,CAAC;IACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAlBD,kDAkBC"}
1
+ {"version":3,"file":"validateNodeVersion.js","sourceRoot":"","sources":["../../src/validateNodeVersion.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAC1B,2CAA2C;AAC3C,mCAAsC;AAEtC,MAAM,8BAA8B,GAAG,EAAE,CAAC;AAE1C,qDAAqD;AACrD,kEAAkE;AAClE,2CAA2C;AAC3C,SAAgB,mBAAmB;IACjC,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;IAC5B,MAAM,CAAC,YAAY,CAAC,GAAG,IAAA,mBAAW,EAAC,OAAO,CAAC,CAAC;IAE5C,IAAI,YAAY,IAAI,8BAA8B,EAAE;QAClD,OAAO;KACR;IAED,OAAO,CAAC,KAAK,CAAC,4BAA4B,eAAK,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAChE,OAAO,CAAC,KAAK,CACX,GAAG,wBAAY,kCAAkC,eAAK,CAAC,GAAG,CACxD,GAAG,8BAA8B,MAAM,CACxC,cAAc,CAChB,CAAC;IACF,OAAO,CAAC,KAAK,CACX,uDAAuD,wBAAY,GAAG,CACvE,CAAC;IACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAlBD,kDAkBC"}
@@ -0,0 +1,3 @@
1
+ #!/bin/bash
2
+
3
+ npx eslint --print-config ./src/main.ts > debug.txt
@@ -7,10 +7,10 @@ mod/main.lua
7
7
  # MacOS artifacts
8
8
  .DS_Store
9
9
 
10
- # --------------------------------------------------------------
10
+ # ------------------------------
11
11
  # GitHub Node.gitignore template
12
- # https://github.com/github/gitignore/blob/master/Node.gitignore
13
- # --------------------------------------------------------------
12
+ # https://raw.githubusercontent.com/github/gitignore/master/Node.gitignore
13
+ # ------------------------------
14
14
 
15
15
  # Logs
16
16
  logs
@@ -19,6 +19,7 @@ npm-debug.log*
19
19
  yarn-debug.log*
20
20
  yarn-error.log*
21
21
  lerna-debug.log*
22
+ .pnpm-debug.log*
22
23
 
23
24
  # Diagnostic reports (https://nodejs.org/api/report.html)
24
25
  report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
@@ -67,6 +68,9 @@ web_modules/
67
68
  # Optional eslint cache
68
69
  .eslintcache
69
70
 
71
+ # Optional stylelint cache
72
+ .stylelintcache
73
+
70
74
  # Microbundle cache
71
75
  .rpt2_cache/
72
76
  .rts2_cache_cjs/
@@ -82,9 +86,12 @@ web_modules/
82
86
  # Yarn Integrity file
83
87
  .yarn-integrity
84
88
 
85
- # dotenv environment variables file
89
+ # dotenv environment variable files
86
90
  .env
87
- .env.test
91
+ .env.development.local
92
+ .env.test.local
93
+ .env.production.local
94
+ .env.local
88
95
 
89
96
  # parcel-bundler cache (https://parceljs.org/)
90
97
  .cache
@@ -107,6 +114,13 @@ dist
107
114
  # vuepress build output
108
115
  .vuepress/dist
109
116
 
117
+ # vuepress v2.x temp and cache directory
118
+ .temp
119
+ .cache
120
+
121
+ # Docusaurus cache and generated files
122
+ .docusaurus
123
+
110
124
  # Serverless directories
111
125
  .serverless/
112
126
 
@@ -7,7 +7,7 @@ module.exports = {
7
7
  // The Airbnb style guide agrees:
8
8
  // https://github.com/airbnb/javascript#commas--dangling
9
9
  // Prettier itself also acknowledges Nik Graf's blog in their official blog:
10
- // https://prettier.io/blog/2020/03/21/2.0.0.html#change-default-value-for-trailingcomma-to-es5-6963httpsgithubcomprettierprettierpull6963-by-fiskerhttpsgithubcomfisker
10
+ // https://prettier.io/blog/2020/03/21/2.0.0.html
11
11
  // https://medium.com/@nikgraf/why-you-should-enforce-dangling-commas-for-multiline-statements-d034c98e36f8
12
12
  // Prettier will change the default in the future:
13
13
  // https://github.com/prettier/prettier/issues/9369
@@ -26,13 +26,13 @@ npx cspell --no-progress --no-summary "mod/metadata.xml"
26
26
 
27
27
  # Step 4 - Use xmllint to lint XML files
28
28
  # (and skip this step if xmllint is not currently installed for whatever reason)
29
- if ! command -v xmllint &> /dev/null; then
29
+ if command -v xmllint &> /dev/null; then
30
30
  find "$DIR/mod" -name "*.xml" -print0 | xargs -0 xmllint --noout
31
31
  fi
32
32
 
33
33
  # Step 5 - Check for unused imports
34
34
  # The "--error" flag makes it return an error code of 1 if unused exports are found
35
35
  # (this starts out disabled by default, but you can uncomment the following line to find dead code)
36
- # npx ts-prune -error
36
+ # npx ts-prune --error
37
37
 
38
38
  echo "Successfully linted in $SECONDS seconds."
@@ -15,4 +15,4 @@ rm -rf "$NODE_MODULES"
15
15
  echo "Successfully deleted: $NODE_MODULES"
16
16
 
17
17
  npm install
18
- echo "Successfully reinstalled Node depedencies."
18
+ echo "Successfully reinstalled Node dependencies."
@@ -1,3 +1,15 @@
1
+ /**
2
+ * When you write code that causes the game to crash, it can be difficult to find the exact line of
3
+ * code that is causing the crash.
4
+ *
5
+ * In these situations, you can enable this plugin, which will add a log statement in between every
6
+ * line of Lua code with a randomly-generated UUID. That way, you can cause the crash, and then look
7
+ * at the bottom of the "log.txt" for the final UUID that shows up.
8
+ *
9
+ * Next, you can Ctrl + f in the "main.lua" file for the matching UUID, which will bring you to the
10
+ * exact point in the code where the crash happened.
11
+ */
12
+
1
13
  import * as crypto from "crypto";
2
14
  import { SourceNode } from "source-map";
3
15
  import * as ts from "typescript";
@@ -1,3 +1,5 @@
1
+ /** This plugin adds an explanatory header to the top of the generated Lua code. */
2
+
1
3
  import * as ts from "typescript";
2
4
  import * as tstl from "typescript-to-lua";
3
5
 
@@ -0,0 +1,70 @@
1
+ /**
2
+ * This plugin prevents transpiled enums from using global variables as a base (if present).
3
+ *
4
+ * For example, by default, the following enum:
5
+ *
6
+ * ```ts
7
+ * export enum Foo {
8
+ * Value1,
9
+ * Value2,
10
+ * }
11
+ * ```
12
+ *
13
+ * Will be transpiled to this:
14
+ *
15
+ * ```lua
16
+ * local ____exports = {}
17
+ * ____exports.Foo = Foo or ({})
18
+ * ____exports.Foo.Value1 = 0
19
+ * ____exports.Foo[____exports.Foo.Value1] = "Value1"
20
+ * ____exports.Foo.Value2 = 1
21
+ * ____exports.Foo[____exports.Foo.Value2] = "Value2"
22
+ * return ____exports
23
+ * ```
24
+ *
25
+ * As we can see, the first line uses the existing global variable of "Foo" as a base, if present.
26
+ * The reason it does this is because TSTL needs to support the TypeScript feature of combining
27
+ * enums, like this:
28
+ *
29
+ * ```ts
30
+ * enum Foo {
31
+ * Value1,
32
+ * }
33
+ * enum Foo {
34
+ * Value2,
35
+ * }
36
+ * ```
37
+ *
38
+ * Unfortunately, this design decision means that local enums will essentially turn into global
39
+ * variables. This plugin removes this behavior, always making enums local variables.
40
+ */
41
+
42
+ import * as ts from "typescript";
43
+ import * as tstl from "typescript-to-lua";
44
+
45
+ const plugin: tstl.Plugin = {
46
+ visitors: {
47
+ [ts.SyntaxKind.EnumDeclaration]: (node, context) => {
48
+ // Call the normal TSTL enum transpilation method
49
+ const statements = context.superTransformStatements(node);
50
+
51
+ // Create a new element, which will be equal to:
52
+ // local ____exports.Foo = {}
53
+ const name = node.name.escapedText as string;
54
+ const identifier = tstl.createIdentifier(name, node.name);
55
+ const table = tstl.createTableExpression();
56
+ const declaration = tstl.createVariableDeclarationStatement(
57
+ identifier,
58
+ table,
59
+ );
60
+
61
+ // Swap the old first element, which will be equal to:
62
+ // local ____exports.Foo = Foo or ({})
63
+ statements[0] = declaration;
64
+
65
+ return statements;
66
+ },
67
+ },
68
+ };
69
+
70
+ export default plugin;
@@ -21,9 +21,12 @@
21
21
  "luaBundle": "./mod/main.lua", // Will bundle all output Lua files into a single file
22
22
  "luaBundleEntry": "./src/bundleEntry.ts", // This invokes the "main.ts" file
23
23
  "luaPlugins": [
24
- // A plugin to emit a helper comment at the top of the compiled "main.lua" file
24
+ // A plugin to add an explanatory comment at the top of the compiled "main.lua" file
25
25
  { "name": "./plugins/addIsaacScriptCommentHeader.ts" },
26
26
 
27
+ // A plugin to make enums safe from global variables
28
+ { "name": "./plugins/noExtendedEnums.ts" },
29
+
27
30
  // Uncomment this and recompile the mod to enable crash debugging, which will tell you the
28
31
  // exact line of the mod that is causing the crash
29
32
  // { "name": "./plugins/addCrashDebugStatements.ts" },
@@ -13,5 +13,9 @@ OLD_HASH=$(md5sum "$PACKAGE_JSON")
13
13
  npx npm-check-updates --upgrade --packageFile "$PACKAGE_JSON"
14
14
  NEW_HASH=$(md5sum "$PACKAGE_JSON")
15
15
  if [[ $OLD_HASH != $NEW_HASH ]]; then
16
- npm install
16
+ if test -f "$DIR/yarn.lock"; then
17
+ yarn
18
+ else
19
+ npm install
20
+ fi
17
21
  fi
package/lint.sh CHANGED
@@ -26,4 +26,10 @@ npx cspell --no-progress --no-summary "src/**/*.ts"
26
26
  # The "--error" flag makes it return an error code of 1 if unused exports are found
27
27
  npx ts-prune --error
28
28
 
29
+ # Step 5 - Check for gitignore updates from GitHub
30
+ tail -n +6 .gitignore > gitignore-template-local
31
+ curl https://raw.githubusercontent.com/github/gitignore/master/Node.gitignore --output gitignore-template-github --silent
32
+ diff gitignore-template-local gitignore-template-github
33
+ rm -f gitignore-template-local gitignore-template-github
34
+
29
35
  echo "Successfully linted in $SECONDS seconds."
package/nuke.sh CHANGED
@@ -15,4 +15,4 @@ rm -rf "$NODE_MODULES"
15
15
  echo "Successfully deleted: $NODE_MODULES"
16
16
 
17
17
  npm install
18
- echo "Successfully reinstalled Node depedencies."
18
+ echo "Successfully reinstalled Node dependencies."
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "isaacscript",
3
- "version": "1.2.38",
3
+ "version": "1.2.41",
4
4
  "description": "A command line tool for managing Isaac mods written in TypeScript",
5
5
  "homepage": "https://isaacscript.github.io/",
6
6
  "bugs": {
@@ -16,22 +16,22 @@
16
16
  "isaacscript": "./dist/src/main.js"
17
17
  },
18
18
  "dependencies": {
19
- "@types/node": "^17.0.25",
19
+ "@types/node": "^17.0.31",
20
20
  "chalk": "4.1.2",
21
21
  "command-exists": "^1.2.9",
22
22
  "dotenv": "^16.0.0",
23
23
  "figlet": "^1.5.2",
24
24
  "fs-extra": "^10.1.0",
25
- "isaacscript-tsconfig": "^1.1.9",
25
+ "isaacscript-tsconfig": "^1.1.11",
26
26
  "jsonc-parser": "^3.0.0",
27
27
  "moment": "^2.29.3",
28
- "npm-check-updates": "^12.5.9",
28
+ "npm-check-updates": "^12.5.11",
29
29
  "prompt": "^1.3.0",
30
30
  "source-map": "^0.7.3",
31
31
  "source-map-support": "^0.5.21",
32
- "sync-directory": "^4.0.14",
32
+ "sync-directory": "^5.0.4",
33
33
  "ts-node": "^10.7.0",
34
- "typescript": "^4.6.3",
34
+ "typescript": "^4.6.4",
35
35
  "typescript-to-lua": "^1.4.3",
36
36
  "update-notifier": "^5.1.0",
37
37
  "yaml": "^2.0.1",
@@ -45,6 +45,6 @@
45
45
  "@types/source-map-support": "^0.5.4",
46
46
  "@types/update-notifier": "^5.1.0",
47
47
  "@types/yargs": "^17.0.10",
48
- "isaacscript-lint": "^1.0.99"
48
+ "isaacscript-lint": "^1.0.104"
49
49
  }
50
50
  }
@@ -1,21 +1,31 @@
1
1
  import syncDirectory from "sync-directory";
2
2
  import { FILE_SYNCED_MESSAGE } from "../../../constants";
3
3
 
4
+ const SUBPROCESS_NAME = "directory syncer";
5
+ const BASE_ARGV_LENGTH = 2;
6
+
4
7
  let modSourcePath: string;
5
8
  let modTargetPath: string;
6
9
 
7
10
  init();
8
11
 
9
12
  function init() {
10
- const numArgs = 2;
11
- if (process.argv.length !== 2 + numArgs) {
13
+ const firstArg = process.argv[BASE_ARGV_LENGTH];
14
+ if (firstArg === undefined) {
15
+ throw new Error(
16
+ `The ${SUBPROCESS_NAME} process did not get a valid first argument.`,
17
+ );
18
+ }
19
+
20
+ const secondArg = process.argv[BASE_ARGV_LENGTH + 1];
21
+ if (secondArg === undefined) {
12
22
  throw new Error(
13
- "The directory syncer process did not get the right amount of arguments.",
23
+ `The ${SUBPROCESS_NAME} process did not get the right amount of arguments.`,
14
24
  );
15
25
  }
16
26
 
17
- modSourcePath = process.argv[2];
18
- modTargetPath = process.argv[3];
27
+ modSourcePath = firstArg;
28
+ modTargetPath = secondArg;
19
29
 
20
30
  syncDirectory(modSourcePath, modTargetPath, {
21
31
  watch: true,
@@ -1,5 +1,6 @@
1
1
  import chalk from "chalk";
2
2
  import { fork, spawn } from "child_process";
3
+ import * as JSONC from "jsonc-parser";
3
4
  import path from "path";
4
5
  import {
5
6
  CWD,
@@ -7,12 +8,12 @@ import {
7
8
  MAIN_LUA,
8
9
  MOD_SOURCE_PATH,
9
10
  PROJECT_NAME,
11
+ TSCONFIG_PATH,
10
12
  } from "../../constants";
11
13
  import * as file from "../../file";
12
14
  import { Config } from "../../types/Config";
13
15
  import { error, getModTargetDirectoryName } from "../../utils";
14
16
  import { copyWatcherMod } from "./copyWatcherMod";
15
- import { getTSConfigInclude } from "./getTSConfigInclude";
16
17
  import * as notifyGame from "./notifyGame";
17
18
  import { spawnSaveDatWriter } from "./spawnSaveDatWriter";
18
19
  import { touchWatcherSaveDatFiles } from "./touchWatcherSaveDatFiles";
@@ -29,7 +30,7 @@ export function monitor(argv: Record<string, unknown>, config: Config): void {
29
30
  }
30
31
 
31
32
  // Read the "tsconfig.json" file
32
- const tsConfigInclude = getTSConfigInclude(verbose);
33
+ const tsConfigInclude = getFirstTSConfigIncludePath(verbose);
33
34
  const resolvedIncludePath = path.resolve(CWD, tsConfigInclude);
34
35
  const modTargetDirectoryName = getModTargetDirectoryName(config);
35
36
  const modTargetPath = path.join(config.modsDirectory, modTargetDirectoryName);
@@ -140,3 +141,41 @@ function spawnTSTLWatcher() {
140
141
  error(`Error: ${processDescription} subprocess exited with code: ${code}`);
141
142
  });
142
143
  }
144
+
145
+ function getFirstTSConfigIncludePath(verbose: boolean): string {
146
+ const tsConfigRaw = file.read(TSCONFIG_PATH, verbose);
147
+ let tsConfig: Record<string, string[]>;
148
+ try {
149
+ tsConfig = JSONC.parse(tsConfigRaw) as Record<string, string[]>;
150
+ } catch (err) {
151
+ error(`Failed to parse "${chalk.green(TSCONFIG_PATH)}":`, err);
152
+ }
153
+
154
+ const include = tsConfig.include;
155
+ if (include === undefined) {
156
+ error(
157
+ `Your "${chalk.green(
158
+ TSCONFIG_PATH,
159
+ )}" file does not have an "include" property, which is surely a mistake. Delete the file and re-run ${PROJECT_NAME}.`,
160
+ );
161
+ }
162
+
163
+ if (!Array.isArray(include)) {
164
+ error(
165
+ `Your "${chalk.green(
166
+ TSCONFIG_PATH,
167
+ )}" file has an "include" property that is not an array, which is surely a mistake. Delete the file and re-run ${PROJECT_NAME}.`,
168
+ );
169
+ }
170
+
171
+ const firstInclude = include[0];
172
+ if (firstInclude === undefined) {
173
+ error(
174
+ `Your "${chalk.green(
175
+ TSCONFIG_PATH,
176
+ )}" file has an empty "include" property, which is surely a mistake. Delete the file and re-run ${PROJECT_NAME}.`,
177
+ );
178
+ }
179
+
180
+ return firstInclude;
181
+ }
@@ -5,6 +5,8 @@ import * as file from "../../../file";
5
5
  import { ensureAllCases } from "../../../utils";
6
6
  import { SaveDatMessage, SaveDatMessageType } from "./types";
7
7
 
8
+ const SUBPROCESS_NAME = "save#.dat writer";
9
+ const BASE_ARGV_LENGTH = 2;
8
10
  const MAX_MESSAGES = 100;
9
11
  const VERBOSE = false;
10
12
 
@@ -14,15 +16,14 @@ let saveDatFileName: string;
14
16
  init(VERBOSE);
15
17
 
16
18
  function init(verbose: boolean) {
17
- const numArgs = 1;
18
- if (process.argv.length !== 2 + numArgs) {
19
- send(
20
- "The save#.dat writer process did not get the right amount of arguments.",
19
+ const firstArg = process.argv[BASE_ARGV_LENGTH];
20
+ if (firstArg === undefined) {
21
+ throw new Error(
22
+ `The ${SUBPROCESS_NAME} process did not get a valid first argument.`,
21
23
  );
22
- process.exit(1);
23
24
  }
24
25
 
25
- saveDatPath = process.argv[2];
26
+ saveDatPath = firstArg;
26
27
  saveDatFileName = path.basename(saveDatPath);
27
28
 
28
29
  // Check to see if the data directory exists
package/src/exec.ts CHANGED
@@ -69,7 +69,8 @@ export function execShell(
69
69
  );
70
70
  }
71
71
  for (let i = 0; i < args.length; i++) {
72
- if (args[i].includes('"')) {
72
+ const arg = args[i];
73
+ if (arg !== undefined && arg.includes('"')) {
73
74
  error(
74
75
  "execShell cannot execute commands with double quotes in the arguments.",
75
76
  );
package/src/file.ts CHANGED
@@ -60,7 +60,7 @@ export function exists(filePath: string, verbose: boolean): boolean {
60
60
  try {
61
61
  pathExists = fs.existsSync(filePath);
62
62
  } catch (err) {
63
- error(`Failed to check to see if "${chalk.green(filePath)}" exists:`, err);
63
+ error(`Failed to check if "${chalk.green(filePath)}" exists:`, err);
64
64
  }
65
65
 
66
66
  if (verbose) {
package/src/utils.ts CHANGED
@@ -36,7 +36,7 @@ export function isKebabCase(s: string): boolean {
36
36
  * parseIntSafe is a more reliable version of parseInt. By default, "parseInt('1a')" will return
37
37
  * "1", which is unexpected. This returns either an integer or NaN.
38
38
  */
39
- export function parseIntSafe(input: string): number {
39
+ export function parseIntSafe(input: unknown): number {
40
40
  if (typeof input !== "string") {
41
41
  return NaN;
42
42
  }
@@ -65,7 +65,7 @@ export function parseIntSafe(input: string): number {
65
65
 
66
66
  export function parseSemVer(
67
67
  versionString: string,
68
- ): [major: number, minor: number, patch: number] {
68
+ ): [majorVersion: number, minorVersion: number, patchVersion: number] {
69
69
  const match = /^v*(\d+)\.(\d+)\.(\d+)/g.exec(versionString);
70
70
  if (match === null) {
71
71
  error(`Failed to parse the version string of: ${versionString}`);
@@ -78,12 +78,12 @@ export function parseSemVer(
78
78
  error(`Failed to parse the major version number from: ${versionString}`);
79
79
  }
80
80
 
81
- const minorVersion = parseInt(minorVersionString, 10);
81
+ const minorVersion = parseIntSafe(minorVersionString);
82
82
  if (Number.isNaN(minorVersion)) {
83
83
  error(`Failed to parse the minor version number from: ${versionString}`);
84
84
  }
85
85
 
86
- const patchVersion = parseInt(patchVersionString, 10);
86
+ const patchVersion = parseIntSafe(patchVersionString);
87
87
  if (Number.isNaN(patchVersion)) {
88
88
  error(`Failed to parse the patch version number from: ${versionString}`);
89
89
  }
@@ -8,14 +8,14 @@ const REQUIRED_NODE_JS_MAJOR_VERSION = 16;
8
8
  // since that is the version that added the "fs.rmSync()" function
9
9
  // (I tested on Node v15.0.0 and it failed)
10
10
  export function validateNodeVersion(): void {
11
- const nodeJSVersionString = process.version;
12
- const [majorVersion] = parseSemVer(nodeJSVersionString);
11
+ const { version } = process;
12
+ const [majorVersion] = parseSemVer(version);
13
13
 
14
14
  if (majorVersion >= REQUIRED_NODE_JS_MAJOR_VERSION) {
15
15
  return;
16
16
  }
17
17
 
18
- console.error(`Your Node.js version is: ${chalk.red(nodeJSVersionString)}`);
18
+ console.error(`Your Node.js version is: ${chalk.red(version)}`);
19
19
  console.error(
20
20
  `${PROJECT_NAME} requires a Node.js version of ${chalk.red(
21
21
  `${REQUIRED_NODE_JS_MAJOR_VERSION}.0.0`,
package/update.sh CHANGED
@@ -13,5 +13,9 @@ OLD_HASH=$(md5sum "$PACKAGE_JSON")
13
13
  npx npm-check-updates --upgrade --packageFile "$PACKAGE_JSON" --reject chalk
14
14
  NEW_HASH=$(md5sum "$PACKAGE_JSON")
15
15
  if [[ $OLD_HASH != $NEW_HASH ]]; then
16
- npm install
16
+ if test -f "$DIR/yarn.lock"; then
17
+ yarn
18
+ else
19
+ npm install
20
+ fi
17
21
  fi
@@ -1,53 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- var __importDefault = (this && this.__importDefault) || function (mod) {
26
- return (mod && mod.__esModule) ? mod : { "default": mod };
27
- };
28
- Object.defineProperty(exports, "__esModule", { value: true });
29
- exports.getTSConfigInclude = void 0;
30
- const chalk_1 = __importDefault(require("chalk"));
31
- const JSONC = __importStar(require("jsonc-parser"));
32
- const constants_1 = require("../../constants");
33
- const file = __importStar(require("../../file"));
34
- const utils_1 = require("../../utils");
35
- function getTSConfigInclude(verbose) {
36
- const tsConfigRaw = file.read(constants_1.TSCONFIG_PATH, verbose);
37
- let tsConfig;
38
- try {
39
- tsConfig = JSONC.parse(tsConfigRaw);
40
- }
41
- catch (err) {
42
- (0, utils_1.error)(`Failed to parse "${chalk_1.default.green(constants_1.TSCONFIG_PATH)}":`, err);
43
- }
44
- if (!Object.prototype.hasOwnProperty.call(tsConfig, "include")) {
45
- (0, utils_1.error)(`Your "${chalk_1.default.green(constants_1.TSCONFIG_PATH)}" file does not have an include directive, which is surely a mistake. Delete the file and re-run isaacscript.`);
46
- }
47
- if (tsConfig.include.length === 0) {
48
- (0, utils_1.error)(`Your "${chalk_1.default.green(constants_1.TSCONFIG_PATH)}" file has an empty include directive, which is surely a mistake. Delete the file and re-run isaacscript.`);
49
- }
50
- return tsConfig.include[0];
51
- }
52
- exports.getTSConfigInclude = getTSConfigInclude;
53
- //# sourceMappingURL=getTSConfigInclude.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getTSConfigInclude.js","sourceRoot":"","sources":["../../../../src/commands/monitor/getTSConfigInclude.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kDAA0B;AAC1B,oDAAsC;AACtC,+CAAgD;AAChD,iDAAmC;AACnC,uCAAoC;AAEpC,SAAgB,kBAAkB,CAAC,OAAgB;IACjD,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,yBAAa,EAAE,OAAO,CAAC,CAAC;IACtD,IAAI,QAAkC,CAAC;IACvC,IAAI;QACF,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,WAAW,CAA6B,CAAC;KACjE;IAAC,OAAO,GAAG,EAAE;QACZ,IAAA,aAAK,EAAC,oBAAoB,eAAK,CAAC,KAAK,CAAC,yBAAa,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;KAChE;IAED,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE;QAC9D,IAAA,aAAK,EACH,SAAS,eAAK,CAAC,KAAK,CAClB,yBAAa,CACd,+GAA+G,CACjH,CAAC;KACH;IACD,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;QACjC,IAAA,aAAK,EACH,SAAS,eAAK,CAAC,KAAK,CAClB,yBAAa,CACd,2GAA2G,CAC7G,CAAC;KACH;IAED,OAAO,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAC7B,CAAC;AAzBD,gDAyBC"}
@@ -1,32 +0,0 @@
1
- import chalk from "chalk";
2
- import * as JSONC from "jsonc-parser";
3
- import { TSCONFIG_PATH } from "../../constants";
4
- import * as file from "../../file";
5
- import { error } from "../../utils";
6
-
7
- export function getTSConfigInclude(verbose: boolean): string {
8
- const tsConfigRaw = file.read(TSCONFIG_PATH, verbose);
9
- let tsConfig: Record<string, string[]>;
10
- try {
11
- tsConfig = JSONC.parse(tsConfigRaw) as Record<string, string[]>;
12
- } catch (err) {
13
- error(`Failed to parse "${chalk.green(TSCONFIG_PATH)}":`, err);
14
- }
15
-
16
- if (!Object.prototype.hasOwnProperty.call(tsConfig, "include")) {
17
- error(
18
- `Your "${chalk.green(
19
- TSCONFIG_PATH,
20
- )}" file does not have an include directive, which is surely a mistake. Delete the file and re-run isaacscript.`,
21
- );
22
- }
23
- if (tsConfig.include.length === 0) {
24
- error(
25
- `Your "${chalk.green(
26
- TSCONFIG_PATH,
27
- )}" file has an empty include directive, which is surely a mistake. Delete the file and re-run isaacscript.`,
28
- );
29
- }
30
-
31
- return tsConfig.include[0];
32
- }