isaacscript 1.1.57 → 1.1.61
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.
- package/.gitattributes +4 -0
- package/dist/package.json +2 -2
- package/dist/src/commands/monitor/monitor.js +10 -5
- package/dist/src/commands/monitor/monitor.js.map +1 -1
- package/dist/src/monkeyPatch.js +2 -1
- package/dist/src/monkeyPatch.js.map +1 -1
- package/dist/src/util.js +1 -10
- package/dist/src/util.js.map +1 -1
- package/file-templates/static/.gitattributes +4 -0
- package/file-templates/static/.github/workflows/ci.yml +3 -0
- package/file-templates/static/lint.sh +7 -1
- package/package.json +2 -2
- package/src/commands/monitor/monitor.ts +12 -6
- package/src/monkeyPatch.ts +2 -1
- package/src/util.ts +0 -11
package/.gitattributes
CHANGED
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
# Prevent Windows systems from cloning this repository with "\r\n" line endings
|
|
2
2
|
core.autocrlf=false
|
|
3
3
|
|
|
4
|
+
# Prevent people from making merge commits
|
|
5
|
+
# https://www.endoflineblog.com/gitflow-considered-harmful
|
|
6
|
+
pull.rebase=true
|
|
7
|
+
|
|
4
8
|
# Convert all files to use "\n" line endings
|
|
5
9
|
* text=auto eol=lf
|
package/dist/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "isaacscript",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.61",
|
|
4
4
|
"description": "A command line tool for managing Isaac mods written in TypeScript",
|
|
5
5
|
"homepage": "https://isaacscript.github.io/",
|
|
6
6
|
"bugs": {
|
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
"@types/command-exists": "^1.2.0",
|
|
39
39
|
"@types/figlet": "^1.5.4",
|
|
40
40
|
"@types/fs-extra": "^9.0.13",
|
|
41
|
-
"@types/node": "^16.11.
|
|
41
|
+
"@types/node": "^16.11.13",
|
|
42
42
|
"@types/prompt": "^1.1.2",
|
|
43
43
|
"@types/source-map-support": "^0.5.4",
|
|
44
44
|
"@types/update-notifier": "^5.1.0",
|
|
@@ -42,9 +42,19 @@ function monitor(argv, config) {
|
|
|
42
42
|
if (argv.saveSlot !== undefined) {
|
|
43
43
|
config.saveSlot = argv.saveSlot; // eslint-disable-line no-param-reassign
|
|
44
44
|
}
|
|
45
|
+
// Read the "tsconfig.json" file
|
|
46
|
+
const tsConfigInclude = (0, getTSConfigInclude_1.getTSConfigInclude)();
|
|
47
|
+
const resolvedIncludePath = path_1.default.resolve(constants_1.CWD, tsConfigInclude);
|
|
48
|
+
const modTargetDirectoryName = (0, util_1.getModTargetDirectoryName)(config);
|
|
49
|
+
const modTargetPath = path_1.default.join(config.modsDirectory, modTargetDirectoryName);
|
|
45
50
|
// Prepare the IsaacScript watcher mod
|
|
46
51
|
(0, copyWatcherMod_1.copyWatcherMod)(config);
|
|
47
52
|
(0, touchWatcherSaveDatFiles_1.touchWatcherSaveDatFiles)(config);
|
|
53
|
+
// Delete and re-copy the mod every time IsaacScript starts
|
|
54
|
+
// This ensures that it is always the latest version
|
|
55
|
+
if (file.exists(modTargetPath)) {
|
|
56
|
+
file.deleteFileOrDirectory(modTargetPath);
|
|
57
|
+
}
|
|
48
58
|
// Subprocess #1 - The "save#.dat" file writer
|
|
49
59
|
(0, spawnSaveDatWriter_1.spawnSaveDatWriter)(config);
|
|
50
60
|
// Subprocess #2 - The mod directory syncer
|
|
@@ -55,11 +65,6 @@ function monitor(argv, config) {
|
|
|
55
65
|
setInterval(() => {
|
|
56
66
|
notifyGame.ping();
|
|
57
67
|
}, 1000); // Every second
|
|
58
|
-
// Read the "tsconfig.json" file
|
|
59
|
-
const tsConfigInclude = (0, getTSConfigInclude_1.getTSConfigInclude)();
|
|
60
|
-
const resolvedIncludePath = path_1.default.resolve(constants_1.CWD, tsConfigInclude);
|
|
61
|
-
const modTargetDirectoryName = (0, util_1.getModTargetDirectoryName)(config);
|
|
62
|
-
const modTargetPath = path_1.default.join(config.modsDirectory, modTargetDirectoryName);
|
|
63
68
|
console.log("Automatically monitoring the following for changes:");
|
|
64
69
|
console.log(`1) your TypeScript code: ${chalk_1.default.green(resolvedIncludePath)}`);
|
|
65
70
|
console.log(`2) the source mod directory: ${chalk_1.default.green(constants_1.MOD_SOURCE_PATH)}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"monitor.js","sourceRoot":"","sources":["../../../../src/commands/monitor/monitor.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kDAA0B;AAC1B,iDAA4E;AAC5E,gDAAwB;AACxB,+CAMyB;AACzB,iDAAmC;AAEnC,qCAA8D;AAC9D,qDAAkD;AAClD,6DAA0D;AAC1D,yDAA2C;AAC3C,6DAA0D;AAC1D,yEAAsE;AAEtE,SAAgB,OAAO,CAAC,IAA6B,EAAE,MAAc;IACnE,0FAA0F;IAC1F,IAAI,IAAI,CAAC,aAAa,KAAK,SAAS,EAAE;QACpC,MAAM,CAAC,aAAa,GAAG,IAAI,CAAC,aAAuB,CAAC,CAAC,wCAAwC;KAC9F;IACD,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE;QAC/B,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAkB,CAAC,CAAC,wCAAwC;KACpF;IAED,
|
|
1
|
+
{"version":3,"file":"monitor.js","sourceRoot":"","sources":["../../../../src/commands/monitor/monitor.ts"],"names":[],"mappings":"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"}
|
package/dist/src/monkeyPatch.js
CHANGED
|
@@ -59,12 +59,13 @@ const MAIN_LUA_REPLACEMENTS = [
|
|
|
59
59
|
function monkeyPatchMainLua(targetModDirectory) {
|
|
60
60
|
const mainLuaPath = path_1.default.join(targetModDirectory, constants_1.MAIN_LUA);
|
|
61
61
|
let mainLua = file.read(mainLuaPath);
|
|
62
|
-
mainLua = patchInformationalHeader(mainLua);
|
|
62
|
+
// mainLua = patchInformationalHeader(mainLua);
|
|
63
63
|
mainLua = patchGlobalObjects(mainLua);
|
|
64
64
|
file.write(mainLuaPath, mainLua);
|
|
65
65
|
}
|
|
66
66
|
exports.monkeyPatchMainLua = monkeyPatchMainLua;
|
|
67
67
|
// Add an informational header for people who happen to be browsing the Lua output
|
|
68
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
68
69
|
function patchInformationalHeader(mainLua) {
|
|
69
70
|
return INFORMATIONAL_HEADER + mainLua;
|
|
70
71
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"monkeyPatch.js","sourceRoot":"","sources":["../../src/monkeyPatch.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gDAAwB;AACxB,2CAAuC;AACvC,6CAA+B;AAE/B,MAAM,oBAAoB,GAAG;;;;;;;;;;;;;;;CAe5B,CAAC;AAEF,MAAM,qBAAqB,GAAG;IAC5B,kBAAkB;IAClB;;;;;MAKE;IAEF,kBAAkB;IAClB,CAAC,qBAAqB,EAAE,gCAAgC,CAAC;IACzD,CAAC,qBAAqB,EAAE,gCAAgC,CAAC;IACzD,CAAC,iBAAiB,EAAE,wBAAwB,CAAC;IAC7C,CAAC,iBAAiB,EAAE,wBAAwB,CAAC;CAC9C,CAAC;AAEF,SAAgB,kBAAkB,CAAC,kBAA0B;IAC3D,MAAM,WAAW,GAAG,cAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,oBAAQ,CAAC,CAAC;IAC5D,IAAI,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAErC
|
|
1
|
+
{"version":3,"file":"monkeyPatch.js","sourceRoot":"","sources":["../../src/monkeyPatch.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gDAAwB;AACxB,2CAAuC;AACvC,6CAA+B;AAE/B,MAAM,oBAAoB,GAAG;;;;;;;;;;;;;;;CAe5B,CAAC;AAEF,MAAM,qBAAqB,GAAG;IAC5B,kBAAkB;IAClB;;;;;MAKE;IAEF,kBAAkB;IAClB,CAAC,qBAAqB,EAAE,gCAAgC,CAAC;IACzD,CAAC,qBAAqB,EAAE,gCAAgC,CAAC;IACzD,CAAC,iBAAiB,EAAE,wBAAwB,CAAC;IAC7C,CAAC,iBAAiB,EAAE,wBAAwB,CAAC;CAC9C,CAAC;AAEF,SAAgB,kBAAkB,CAAC,kBAA0B;IAC3D,MAAM,WAAW,GAAG,cAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,oBAAQ,CAAC,CAAC;IAC5D,IAAI,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAErC,+CAA+C;IAC/C,OAAO,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAEtC,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;AACnC,CAAC;AARD,gDAQC;AAED,kFAAkF;AAClF,6DAA6D;AAC7D,SAAS,wBAAwB,CAAC,OAAe;IAC/C,OAAO,oBAAoB,GAAG,OAAO,CAAC;AACxC,CAAC;AAED,2EAA2E;AAC3E,mFAAmF;AACnF,oDAAoD;AACpD,kGAAkG;AAClG,6BAA6B;AAC7B,SAAS,kBAAkB,CAAC,eAAuB;IACjD,IAAI,OAAO,GAAG,eAAe,CAAC;IAE9B,KAAK,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,IAAI,qBAAqB,EAAE;QAC/D,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;KACtD;IAED,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
package/dist/src/util.js
CHANGED
|
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.
|
|
6
|
+
exports.parseIntSafe = exports.hasWhiteSpace = exports.getTime = exports.getModTargetDirectoryName = exports.execShell = exports.error = exports.ensureAllCases = void 0;
|
|
7
7
|
const chalk_1 = __importDefault(require("chalk"));
|
|
8
8
|
const child_process_1 = require("child_process");
|
|
9
9
|
const moment_1 = __importDefault(require("moment"));
|
|
@@ -92,13 +92,4 @@ function parseIntSafe(input) {
|
|
|
92
92
|
return parseInt(trimmedInput, 10);
|
|
93
93
|
}
|
|
94
94
|
exports.parseIntSafe = parseIntSafe;
|
|
95
|
-
/**
|
|
96
|
-
* Converts snake_case and kebab-case to camelCase.
|
|
97
|
-
*
|
|
98
|
-
* From: https://hisk.io/javascript-snake-to-camel/
|
|
99
|
-
*/
|
|
100
|
-
function snakeKebabToCamel(str) {
|
|
101
|
-
return str.replace(/([-_][a-z])/g, (group) => group.toUpperCase().replace("-", "").replace("_", ""));
|
|
102
|
-
}
|
|
103
|
-
exports.snakeKebabToCamel = snakeKebabToCamel;
|
|
104
95
|
//# sourceMappingURL=util.js.map
|
package/dist/src/util.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/util.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/util.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
# Prevent Windows systems from cloning this repository with "\r\n" line endings
|
|
2
2
|
core.autocrlf=false
|
|
3
3
|
|
|
4
|
+
# Prevent people from making merge commits
|
|
5
|
+
# https://www.endoflineblog.com/gitflow-considered-harmful
|
|
6
|
+
pull.rebase=true
|
|
7
|
+
|
|
4
8
|
# Convert all files to use "\n" line endings
|
|
5
9
|
* text=auto eol=lf
|
|
@@ -23,9 +23,15 @@ npx eslint --max-warnings 0 src
|
|
|
23
23
|
npx cspell --no-progress --no-summary "src/**/*.ts"
|
|
24
24
|
npx cspell --no-progress --no-summary "mod/metadata.xml"
|
|
25
25
|
|
|
26
|
+
# Step 4 - Check for incorrectly formatted XML files
|
|
27
|
+
# (and skip this step if xmllint is not currently installed for whatever reason)
|
|
28
|
+
if ! command -v xmllint &> /dev/null; then
|
|
29
|
+
find "$DIR/mod" -name "*.xml" -print0 | xargs -0 xmllint --noout
|
|
30
|
+
fi
|
|
31
|
+
|
|
26
32
|
# Step 4 - Check for unused imports
|
|
27
33
|
# The "--error" flag makes it return an error code of 1 if unused exports are found
|
|
28
|
-
# (this starts out disabled by default, but you can uncomment
|
|
34
|
+
# (this starts out disabled by default, but you can uncomment the following line to find dead code)
|
|
29
35
|
# npx ts-prune -error
|
|
30
36
|
|
|
31
37
|
echo "Successfully linted in $SECONDS seconds."
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "isaacscript",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.61",
|
|
4
4
|
"description": "A command line tool for managing Isaac mods written in TypeScript",
|
|
5
5
|
"homepage": "https://isaacscript.github.io/",
|
|
6
6
|
"bugs": {
|
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
"@types/command-exists": "^1.2.0",
|
|
39
39
|
"@types/figlet": "^1.5.4",
|
|
40
40
|
"@types/fs-extra": "^9.0.13",
|
|
41
|
-
"@types/node": "^16.11.
|
|
41
|
+
"@types/node": "^16.11.13",
|
|
42
42
|
"@types/prompt": "^1.1.2",
|
|
43
43
|
"@types/source-map-support": "^0.5.4",
|
|
44
44
|
"@types/update-notifier": "^5.1.0",
|
|
@@ -26,10 +26,22 @@ export function monitor(argv: Record<string, unknown>, config: Config): void {
|
|
|
26
26
|
config.saveSlot = argv.saveSlot as number; // eslint-disable-line no-param-reassign
|
|
27
27
|
}
|
|
28
28
|
|
|
29
|
+
// Read the "tsconfig.json" file
|
|
30
|
+
const tsConfigInclude = getTSConfigInclude();
|
|
31
|
+
const resolvedIncludePath = path.resolve(CWD, tsConfigInclude);
|
|
32
|
+
const modTargetDirectoryName = getModTargetDirectoryName(config);
|
|
33
|
+
const modTargetPath = path.join(config.modsDirectory, modTargetDirectoryName);
|
|
34
|
+
|
|
29
35
|
// Prepare the IsaacScript watcher mod
|
|
30
36
|
copyWatcherMod(config);
|
|
31
37
|
touchWatcherSaveDatFiles(config);
|
|
32
38
|
|
|
39
|
+
// Delete and re-copy the mod every time IsaacScript starts
|
|
40
|
+
// This ensures that it is always the latest version
|
|
41
|
+
if (file.exists(modTargetPath)) {
|
|
42
|
+
file.deleteFileOrDirectory(modTargetPath);
|
|
43
|
+
}
|
|
44
|
+
|
|
33
45
|
// Subprocess #1 - The "save#.dat" file writer
|
|
34
46
|
spawnSaveDatWriter(config);
|
|
35
47
|
|
|
@@ -44,12 +56,6 @@ export function monitor(argv: Record<string, unknown>, config: Config): void {
|
|
|
44
56
|
notifyGame.ping();
|
|
45
57
|
}, 1000); // Every second
|
|
46
58
|
|
|
47
|
-
// Read the "tsconfig.json" file
|
|
48
|
-
const tsConfigInclude = getTSConfigInclude();
|
|
49
|
-
const resolvedIncludePath = path.resolve(CWD, tsConfigInclude);
|
|
50
|
-
const modTargetDirectoryName = getModTargetDirectoryName(config);
|
|
51
|
-
const modTargetPath = path.join(config.modsDirectory, modTargetDirectoryName);
|
|
52
|
-
|
|
53
59
|
console.log("Automatically monitoring the following for changes:");
|
|
54
60
|
console.log(
|
|
55
61
|
`1) your TypeScript code: ${chalk.green(resolvedIncludePath)}`,
|
package/src/monkeyPatch.ts
CHANGED
|
@@ -39,13 +39,14 @@ export function monkeyPatchMainLua(targetModDirectory: string): void {
|
|
|
39
39
|
const mainLuaPath = path.join(targetModDirectory, MAIN_LUA);
|
|
40
40
|
let mainLua = file.read(mainLuaPath);
|
|
41
41
|
|
|
42
|
-
mainLua = patchInformationalHeader(mainLua);
|
|
42
|
+
// mainLua = patchInformationalHeader(mainLua);
|
|
43
43
|
mainLua = patchGlobalObjects(mainLua);
|
|
44
44
|
|
|
45
45
|
file.write(mainLuaPath, mainLua);
|
|
46
46
|
}
|
|
47
47
|
|
|
48
48
|
// Add an informational header for people who happen to be browsing the Lua output
|
|
49
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
49
50
|
function patchInformationalHeader(mainLua: string) {
|
|
50
51
|
return INFORMATIONAL_HEADER + mainLua;
|
|
51
52
|
}
|
package/src/util.ts
CHANGED
|
@@ -112,14 +112,3 @@ export function parseIntSafe(input: string): number {
|
|
|
112
112
|
|
|
113
113
|
return parseInt(trimmedInput, 10);
|
|
114
114
|
}
|
|
115
|
-
|
|
116
|
-
/**
|
|
117
|
-
* Converts snake_case and kebab-case to camelCase.
|
|
118
|
-
*
|
|
119
|
-
* From: https://hisk.io/javascript-snake-to-camel/
|
|
120
|
-
*/
|
|
121
|
-
export function snakeKebabToCamel(str: string): string {
|
|
122
|
-
return str.replace(/([-_][a-z])/g, (group) =>
|
|
123
|
-
group.toUpperCase().replace("-", "").replace("_", ""),
|
|
124
|
-
);
|
|
125
|
-
}
|