isaacscript 5.2.15 → 6.0.1
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/dist/banner.js +2 -2
- package/dist/banner.js.map +1 -1
- package/dist/commands/check/check.js +32 -22
- package/dist/commands/check/check.js.map +1 -1
- package/dist/commands/copy/copy.js +4 -4
- package/dist/commands/copy/copy.js.map +1 -1
- package/dist/commands/init/checkIfProjectPathExists.js +15 -5
- package/dist/commands/init/checkIfProjectPathExists.js.map +1 -1
- package/dist/commands/init/checkModTargetDirectory.js +11 -5
- package/dist/commands/init/checkModTargetDirectory.js.map +1 -1
- package/dist/commands/init/createProject.js +38 -82
- package/dist/commands/init/createProject.js.map +1 -1
- package/dist/commands/init/getModsDirectory.js +4 -2
- package/dist/commands/init/getModsDirectory.js.map +1 -1
- package/dist/commands/init/init.js +1 -1
- package/dist/commands/init/init.js.map +1 -1
- package/dist/commands/init/vsCode.js +4 -1
- package/dist/commands/init/vsCode.js.map +1 -1
- package/dist/commands/monitor/copyWatcherMod.js +9 -9
- package/dist/commands/monitor/copyWatcherMod.js.map +1 -1
- package/dist/commands/monitor/monitor.js +18 -18
- package/dist/commands/monitor/monitor.js.map +1 -1
- package/dist/commands/monitor/saveDatWriter/saveDatWriter.js +13 -9
- package/dist/commands/monitor/saveDatWriter/saveDatWriter.js.map +1 -1
- package/dist/commands/monitor/spawnTSTLWatcher.js +39 -34
- package/dist/commands/monitor/spawnTSTLWatcher.js.map +1 -1
- package/dist/commands/monitor/touchWatcherSaveDatFiles.js +7 -5
- package/dist/commands/monitor/touchWatcherSaveDatFiles.js.map +1 -1
- package/dist/commands/publish/isaacscriptMod.js +23 -17
- package/dist/commands/publish/isaacscriptMod.js.map +1 -1
- package/dist/commands/publish/publish.js +20 -18
- package/dist/commands/publish/publish.js.map +1 -1
- package/dist/commands/publish/validate.js +2 -2
- package/dist/commands/publish/validate.js.map +1 -1
- package/dist/configFile.js +7 -4
- package/dist/configFile.js.map +1 -1
- package/dist/constants.js +2 -2
- package/dist/constants.js.map +1 -1
- package/dist/customStage.js +55 -36
- package/dist/customStage.js.map +1 -1
- package/dist/dev.js +3 -2
- package/dist/dev.js.map +1 -1
- package/dist/git.js +3 -2
- package/dist/git.js.map +1 -1
- package/dist/tsconfig.js +5 -2
- package/dist/tsconfig.js.map +1 -1
- package/dist/validateMod.js +14 -9
- package/dist/validateMod.js.map +1 -1
- package/file-templates/dynamic/Node.gitignore +3 -1
- package/file-templates/static/eslint.config.mjs +3 -3
- package/file-templates/static/scripts/lint.ts +1 -1
- package/package.json +8 -11
package/dist/banner.js
CHANGED
|
@@ -2,8 +2,8 @@ import chalk from "chalk";
|
|
|
2
2
|
import { fatalError } from "complete-node";
|
|
3
3
|
import figlet from "figlet"; // Cannot be "import * as figlet" or else run-time errors occur.
|
|
4
4
|
import { PROJECT_NAME, PROJECT_VERSION } from "./constants.js";
|
|
5
|
-
export function printBanner() {
|
|
6
|
-
const banner = figlet.
|
|
5
|
+
export async function printBanner() {
|
|
6
|
+
const banner = await figlet.text(PROJECT_NAME);
|
|
7
7
|
console.log(chalk.green(banner));
|
|
8
8
|
const versionString = `v${PROJECT_VERSION}`;
|
|
9
9
|
const bannerLines = banner.split("\n");
|
package/dist/banner.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"banner.js","sourceRoot":"","sources":["../src/banner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,MAAM,MAAM,QAAQ,CAAC,CAAC,gEAAgE;AAC7F,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAE/D,MAAM,UAAU,WAAW;
|
|
1
|
+
{"version":3,"file":"banner.js","sourceRoot":"","sources":["../src/banner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,MAAM,MAAM,QAAQ,CAAC,CAAC,gEAAgE;AAC7F,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAE/D,MAAM,CAAC,KAAK,UAAU,WAAW;IAC/B,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC/C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IAEjC,MAAM,aAAa,GAAG,IAAI,eAAe,EAAE,CAAC;IAC5C,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACvC,MAAM,eAAe,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;IACvC,IAAI,eAAe,KAAK,SAAS,EAAE,CAAC;QAClC,UAAU,CACR,eAAe,EACf,kDAAkD,CACnD,CAAC;IACJ,CAAC;IACD,MAAM,sBAAsB,GAAG,eAAe,CAAC,MAAM,CAAC;IACtD,MAAM,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAClC,CAAC,sBAAsB,GAAG,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CACpD,CAAC;IACF,MAAM,WAAW,GAAG,aAAa,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;IAC9D,OAAO,CAAC,GAAG,CAAC,GAAG,WAAW,IAAI,CAAC,CAAC;AAClC,CAAC"}
|
|
@@ -26,34 +26,39 @@ export const checkCommand = new Command()
|
|
|
26
26
|
.helpOption("-h, --help", "Display the list of options for this command.")
|
|
27
27
|
.option("--ignore <ignoreList>", "Comma separated list of file names to ignore.")
|
|
28
28
|
.option("-v, --verbose", "Enable verbose output.", false)
|
|
29
|
-
.action((options) => {
|
|
30
|
-
check(options);
|
|
29
|
+
.action(async (options) => {
|
|
30
|
+
await check(options);
|
|
31
31
|
});
|
|
32
32
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
33
33
|
const checkOptions = checkCommand.opts();
|
|
34
|
-
function check(options) {
|
|
34
|
+
async function check(options) {
|
|
35
35
|
const { verbose } = options;
|
|
36
36
|
let oneOrMoreErrors = false;
|
|
37
37
|
const ignore = options.ignore ?? "";
|
|
38
38
|
const ignoreFileNames = ignore.split(",");
|
|
39
39
|
const ignoreFileNamesSet = new ReadonlySet(ignoreFileNames);
|
|
40
40
|
// First, check the static files that are shared between TypeScript projects and IsaacScript mods.
|
|
41
|
-
|
|
41
|
+
const templateDirectoryErrors = await checkTemplateDirectory(TEMPLATES_STATIC_DIR, ignoreFileNamesSet, verbose);
|
|
42
|
+
if (templateDirectoryErrors) {
|
|
42
43
|
oneOrMoreErrors = true;
|
|
43
44
|
}
|
|
44
45
|
// Second, check dynamic files that require specific logic.
|
|
45
|
-
|
|
46
|
+
const filesError = await checkIndividualFiles(ignoreFileNamesSet, verbose);
|
|
47
|
+
if (filesError) {
|
|
46
48
|
oneOrMoreErrors = true;
|
|
47
49
|
}
|
|
48
50
|
if (oneOrMoreErrors) {
|
|
49
51
|
fatalError("The check command failed.");
|
|
50
52
|
}
|
|
51
53
|
}
|
|
52
|
-
|
|
54
|
+
/** @returns oneOrMoreErrors */
|
|
55
|
+
async function checkTemplateDirectory(templateDirectory, ignoreFileNamesSet, verbose) {
|
|
53
56
|
let oneOrMoreErrors = false;
|
|
54
57
|
for (const klawItem of klawSync(templateDirectory)) {
|
|
55
58
|
const templateFilePath = klawItem.path;
|
|
56
|
-
|
|
59
|
+
// eslint-disable-next-line no-await-in-loop
|
|
60
|
+
const directory = await isDirectory(templateFilePath);
|
|
61
|
+
if (directory) {
|
|
57
62
|
continue;
|
|
58
63
|
}
|
|
59
64
|
const originalFileName = path.basename(templateFilePath);
|
|
@@ -80,41 +85,46 @@ function checkTemplateDirectory(templateDirectory, ignoreFileNamesSet, verbose)
|
|
|
80
85
|
if (ignoreFileNamesSet.has(projectFileName)) {
|
|
81
86
|
continue;
|
|
82
87
|
}
|
|
83
|
-
|
|
88
|
+
// eslint-disable-next-line no-await-in-loop
|
|
89
|
+
const valid = await compareTextFiles(projectFilePath, templateFilePath, verbose);
|
|
90
|
+
if (!valid) {
|
|
84
91
|
oneOrMoreErrors = true;
|
|
85
92
|
}
|
|
86
93
|
}
|
|
87
94
|
return oneOrMoreErrors;
|
|
88
95
|
}
|
|
89
|
-
|
|
96
|
+
/** @returns oneOrMoreErrors */
|
|
97
|
+
async function checkIndividualFiles(ignoreFileNamesSet, verbose) {
|
|
90
98
|
let oneOrMoreErrors = false;
|
|
91
99
|
if (!ignoreFileNamesSet.has(ACTION_YML)) {
|
|
92
100
|
const templateFilePath = ACTION_YML_TEMPLATE_PATH;
|
|
93
101
|
const relativeTemplateFilePath = path.relative(TEMPLATES_DYNAMIC_DIR, templateFilePath);
|
|
94
102
|
const projectFilePath = path.join(CWD, relativeTemplateFilePath);
|
|
95
|
-
|
|
103
|
+
const valid = await compareTextFiles(projectFilePath, templateFilePath, verbose);
|
|
104
|
+
if (!valid) {
|
|
96
105
|
oneOrMoreErrors = true;
|
|
97
106
|
}
|
|
98
107
|
}
|
|
99
108
|
return oneOrMoreErrors;
|
|
100
109
|
}
|
|
101
110
|
/** @returns Whether the project file is valid in reference to the template file. */
|
|
102
|
-
function compareTextFiles(projectFilePath, templateFilePath, verbose) {
|
|
103
|
-
|
|
111
|
+
async function compareTextFiles(projectFilePath, templateFilePath, verbose) {
|
|
112
|
+
const file = await isFile(projectFilePath);
|
|
113
|
+
if (!file) {
|
|
104
114
|
console.log(`Failed to find the following file: ${projectFilePath}`);
|
|
105
115
|
printTemplateLocation(templateFilePath);
|
|
106
116
|
return false;
|
|
107
117
|
}
|
|
108
|
-
const projectFileObject = getTruncatedFileText(projectFilePath, new Set(), new Set());
|
|
109
|
-
const templateFileObject = getTruncatedFileText(templateFilePath, projectFileObject.ignoreLines, projectFileObject.linesBeforeIgnore);
|
|
118
|
+
const projectFileObject = await getTruncatedFileText(projectFilePath, new Set(), new Set());
|
|
119
|
+
const templateFileObject = await getTruncatedFileText(templateFilePath, projectFileObject.ignoreLines, projectFileObject.linesBeforeIgnore);
|
|
110
120
|
if (projectFileObject.text === templateFileObject.text) {
|
|
111
121
|
return true;
|
|
112
122
|
}
|
|
113
123
|
console.log(`The contents of the following file do not match: ${chalk.red(projectFilePath)}`);
|
|
114
124
|
printTemplateLocation(templateFilePath);
|
|
115
125
|
if (verbose) {
|
|
116
|
-
const originalTemplateFile = readFile(templateFilePath);
|
|
117
|
-
const originalProjectFile = readFile(projectFilePath);
|
|
126
|
+
const originalTemplateFile = await readFile(templateFilePath);
|
|
127
|
+
const originalProjectFile = await readFile(projectFilePath);
|
|
118
128
|
console.log("--- Original template file: ---\n");
|
|
119
129
|
console.log(originalTemplateFile);
|
|
120
130
|
console.log();
|
|
@@ -130,17 +140,17 @@ function compareTextFiles(projectFilePath, templateFilePath, verbose) {
|
|
|
130
140
|
}
|
|
131
141
|
const tempProjectFilePath = path.join(CWD, "tempProjectFile.txt");
|
|
132
142
|
const tempTemplateFilePath = path.join(CWD, "tempTemplateFile.txt");
|
|
133
|
-
writeFile(tempProjectFilePath, projectFileObject.text);
|
|
134
|
-
writeFile(tempTemplateFilePath, templateFileObject.text);
|
|
143
|
+
await writeFile(tempProjectFilePath, projectFileObject.text);
|
|
144
|
+
await writeFile(tempTemplateFilePath, templateFileObject.text);
|
|
135
145
|
const { stdout } = execShell("diff", [tempProjectFilePath, tempTemplateFilePath, "--ignore-blank-lines"], verbose, true);
|
|
136
146
|
console.log(`${stdout}\n`);
|
|
137
|
-
deleteFileOrDirectory(tempProjectFilePath);
|
|
138
|
-
deleteFileOrDirectory(tempTemplateFilePath);
|
|
147
|
+
await deleteFileOrDirectory(tempProjectFilePath);
|
|
148
|
+
await deleteFileOrDirectory(tempTemplateFilePath);
|
|
139
149
|
return false;
|
|
140
150
|
}
|
|
141
|
-
function getTruncatedFileText(filePath, ignoreLines, linesBeforeIgnore) {
|
|
151
|
+
async function getTruncatedFileText(filePath, ignoreLines, linesBeforeIgnore) {
|
|
142
152
|
const fileName = path.basename(filePath);
|
|
143
|
-
const fileContents = readFile(filePath);
|
|
153
|
+
const fileContents = await readFile(filePath);
|
|
144
154
|
return getTruncatedText(fileName, fileContents, ignoreLines, linesBeforeIgnore);
|
|
145
155
|
}
|
|
146
156
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check.js","sourceRoot":"","sources":["../../../src/commands/check/check.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AACtD,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AACzE,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,UAAU,EACV,8BAA8B,EAC9B,WAAW,EACX,MAAM,EACN,QAAQ,EACR,SAAS,GACV,MAAM,eAAe,CAAC;AACvB,OAAO,QAAQ,MAAM,WAAW,CAAC;AACjC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EACL,UAAU,EACV,wBAAwB,EACxB,GAAG,EACH,qBAAqB,EACrB,oBAAoB,GACrB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE1C,MAAM,UAAU,GACd,wGAAwG,CAAC;AAE3G,MAAM,0BAA0B,GAAG,+BAA+B,CAAC;AACnE,MAAM,wBAAwB,GAAG,6BAA6B,CAAC;AAC/D,MAAM,yBAAyB,GAAG,8BAA8B,CAAC;AACjE,MAAM,uBAAuB,GAAG,4BAA4B,CAAC;AAC7D,MAAM,uBAAuB,GAAG,4BAA4B,CAAC;AAE7D,MAAM,uBAAuB,GAAG;IAC9B,sBAAsB;IACtB,iCAAiC;IACjC,gCAAgC;IAChC,GAAG,aAAa,CAAC,cAAc,CAAC;IAChC,GAAG,8BAA8B,EAAE;CAC3B,CAAC;AAEX,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,OAAO,EAAE;KACtC,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CACV,wFAAwF,CACzF;KACA,oBAAoB,CAAC,KAAK,CAAC,CAAC,kEAAkE;KAC9F,UAAU,CAAC,YAAY,EAAE,+CAA+C,CAAC;KACzE,MAAM,CACL,uBAAuB,EACvB,+CAA+C,CAChD;KACA,MAAM,CAAC,eAAe,EAAE,wBAAwB,EAAE,KAAK,CAAC;KACxD,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"check.js","sourceRoot":"","sources":["../../../src/commands/check/check.ts"],"names":[],"mappings":"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"}
|
|
@@ -29,16 +29,16 @@ async function copy(options) {
|
|
|
29
29
|
export async function compileAndCopy(modSourcePath, modTargetPath, packageManager, isaacScriptCommonDev, verbose) {
|
|
30
30
|
await prepareCustomStages(packageManager, isaacScriptCommonDev, verbose);
|
|
31
31
|
compile(packageManager, verbose);
|
|
32
|
-
copyMod(modSourcePath, modTargetPath);
|
|
32
|
+
await copyMod(modSourcePath, modTargetPath);
|
|
33
33
|
}
|
|
34
34
|
function compile(packageManager, verbose) {
|
|
35
35
|
const command = getPackageManagerExecCommand(packageManager);
|
|
36
36
|
execShellString(`${command} tstl`, verbose);
|
|
37
37
|
console.log("Mod compiled successfully.");
|
|
38
38
|
}
|
|
39
|
-
function copyMod(modSourcePath, modTargetPath) {
|
|
40
|
-
deleteFileOrDirectory(modTargetPath);
|
|
41
|
-
copyFileOrDirectory(modSourcePath, modTargetPath);
|
|
39
|
+
async function copyMod(modSourcePath, modTargetPath) {
|
|
40
|
+
await deleteFileOrDirectory(modTargetPath);
|
|
41
|
+
await copyFileOrDirectory(modSourcePath, modTargetPath);
|
|
42
42
|
console.log("Mod copied successfully.");
|
|
43
43
|
}
|
|
44
44
|
//# sourceMappingURL=copy.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"copy.js","sourceRoot":"","sources":["../../../src/commands/copy/copy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAEtD,OAAO,EACL,mBAAmB,EACnB,qBAAqB,EACrB,4BAA4B,GAC7B,MAAM,eAAe,CAAC;AACvB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,uCAAuC,EAAE,MAAM,yBAAyB,CAAC;AAClF,OAAO,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAE3D,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,OAAO,EAAE;KACrC,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,8BAA8B,CAAC;KAC3C,oBAAoB,CAAC,KAAK,CAAC,CAAC,kEAAkE;KAC9F,UAAU,CAAC,YAAY,EAAE,+CAA+C,CAAC;KACzE,MAAM,CAAC,eAAe,EAAE,wBAAwB,EAAE,KAAK,CAAC;KACxD,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC;AACtB,CAAC,CAAC,CAAC;AAEL,6DAA6D;AAC7D,MAAM,WAAW,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC;AAGvC,KAAK,UAAU,IAAI,CAAC,OAAoB;IACtC,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;IAE5B,MAAM,cAAc,GAAG,MAAM,uCAAuC,EAAE,CAAC;IACvE,MAAM,MAAM,GAAG,MAAM,iBAAiB,EAAE,CAAC;IACzC,MAAM,sBAAsB,GAAG,yBAAyB,CAAC,MAAM,CAAC,CAAC;IACjE,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,sBAAsB,CAAC,CAAC;IAE9E,MAAM,cAAc,CAClB,eAAe,EACf,aAAa,EACb,cAAc,EACd,MAAM,CAAC,oBAAoB,EAC3B,OAAO,CACR,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,aAAqB,EACrB,aAAqB,EACrB,cAA8B,EAC9B,oBAAyC,EACzC,OAAgB;IAEhB,MAAM,mBAAmB,CAAC,cAAc,EAAE,oBAAoB,EAAE,OAAO,CAAC,CAAC;IACzE,OAAO,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;IACjC,OAAO,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"copy.js","sourceRoot":"","sources":["../../../src/commands/copy/copy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAEtD,OAAO,EACL,mBAAmB,EACnB,qBAAqB,EACrB,4BAA4B,GAC7B,MAAM,eAAe,CAAC;AACvB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,uCAAuC,EAAE,MAAM,yBAAyB,CAAC;AAClF,OAAO,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAE3D,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,OAAO,EAAE;KACrC,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,8BAA8B,CAAC;KAC3C,oBAAoB,CAAC,KAAK,CAAC,CAAC,kEAAkE;KAC9F,UAAU,CAAC,YAAY,EAAE,+CAA+C,CAAC;KACzE,MAAM,CAAC,eAAe,EAAE,wBAAwB,EAAE,KAAK,CAAC;KACxD,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC;AACtB,CAAC,CAAC,CAAC;AAEL,6DAA6D;AAC7D,MAAM,WAAW,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC;AAGvC,KAAK,UAAU,IAAI,CAAC,OAAoB;IACtC,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;IAE5B,MAAM,cAAc,GAAG,MAAM,uCAAuC,EAAE,CAAC;IACvE,MAAM,MAAM,GAAG,MAAM,iBAAiB,EAAE,CAAC;IACzC,MAAM,sBAAsB,GAAG,yBAAyB,CAAC,MAAM,CAAC,CAAC;IACjE,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,sBAAsB,CAAC,CAAC;IAE9E,MAAM,cAAc,CAClB,eAAe,EACf,aAAa,EACb,cAAc,EACd,MAAM,CAAC,oBAAoB,EAC3B,OAAO,CACR,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,aAAqB,EACrB,aAAqB,EACrB,cAA8B,EAC9B,oBAAyC,EACzC,OAAgB;IAEhB,MAAM,mBAAmB,CAAC,cAAc,EAAE,oBAAoB,EAAE,OAAO,CAAC,CAAC;IACzE,OAAO,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;IACjC,MAAM,OAAO,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;AAC9C,CAAC;AAED,SAAS,OAAO,CAAC,cAA8B,EAAE,OAAgB;IAC/D,MAAM,OAAO,GAAG,4BAA4B,CAAC,cAAc,CAAC,CAAC;IAC7D,eAAe,CAAC,GAAG,OAAO,OAAO,EAAE,OAAO,CAAC,CAAC;IAC5C,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;AAC5C,CAAC;AAED,KAAK,UAAU,OAAO,CAAC,aAAqB,EAAE,aAAqB;IACjE,MAAM,qBAAqB,CAAC,aAAa,CAAC,CAAC;IAC3C,MAAM,mBAAmB,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;IACxD,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;AAC1C,CAAC"}
|
|
@@ -1,14 +1,24 @@
|
|
|
1
1
|
import chalk from "chalk";
|
|
2
|
-
import { deleteFileOrDirectory,
|
|
2
|
+
import { deleteFileOrDirectory, exists, fatalError, isDirectory, isFile, } from "complete-node";
|
|
3
3
|
import { CWD } from "../../constants.js";
|
|
4
4
|
import { getInputYesNo } from "../../prompt.js";
|
|
5
|
+
/** @throws If the project path exists and is not a file or a directory. */
|
|
5
6
|
export async function checkIfProjectPathExists(projectPath, yes) {
|
|
6
|
-
if (projectPath === CWD
|
|
7
|
+
if (projectPath === CWD) {
|
|
7
8
|
return;
|
|
8
9
|
}
|
|
9
|
-
const
|
|
10
|
+
const projectPathExists = await exists(projectPath);
|
|
11
|
+
if (!projectPathExists) {
|
|
12
|
+
return;
|
|
13
|
+
}
|
|
14
|
+
const file = await isFile(projectPath);
|
|
15
|
+
const directory = await isDirectory(projectPath);
|
|
16
|
+
if (!file && !directory) {
|
|
17
|
+
throw new Error(`Failed to detect if the path was a file or a directory: ${projectPath}`);
|
|
18
|
+
}
|
|
19
|
+
const fileType = directory ? "directory" : "file";
|
|
10
20
|
if (yes) {
|
|
11
|
-
deleteFileOrDirectory(projectPath);
|
|
21
|
+
await deleteFileOrDirectory(projectPath);
|
|
12
22
|
console.log(`Deleted ${fileType}: ${chalk.green(projectPath)}`);
|
|
13
23
|
return;
|
|
14
24
|
}
|
|
@@ -17,6 +27,6 @@ export async function checkIfProjectPathExists(projectPath, yes) {
|
|
|
17
27
|
if (!shouldDelete) {
|
|
18
28
|
fatalError("Ok then. Goodbye.");
|
|
19
29
|
}
|
|
20
|
-
deleteFileOrDirectory(projectPath);
|
|
30
|
+
await deleteFileOrDirectory(projectPath);
|
|
21
31
|
}
|
|
22
32
|
//# sourceMappingURL=checkIfProjectPathExists.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkIfProjectPathExists.js","sourceRoot":"","sources":["../../../src/commands/init/checkIfProjectPathExists.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EACL,qBAAqB,EACrB,UAAU,EACV,
|
|
1
|
+
{"version":3,"file":"checkIfProjectPathExists.js","sourceRoot":"","sources":["../../../src/commands/init/checkIfProjectPathExists.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EACL,qBAAqB,EACrB,MAAM,EACN,UAAU,EACV,WAAW,EACX,MAAM,GACP,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,2EAA2E;AAC3E,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,WAAmB,EACnB,GAAY;IAEZ,IAAI,WAAW,KAAK,GAAG,EAAE,CAAC;QACxB,OAAO;IACT,CAAC;IAED,MAAM,iBAAiB,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC;IACpD,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACvB,OAAO;IACT,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC;IACvC,MAAM,SAAS,GAAG,MAAM,WAAW,CAAC,WAAW,CAAC,CAAC;IACjD,IAAI,CAAC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CACb,2DAA2D,WAAW,EAAE,CACzE,CAAC;IACJ,CAAC;IACD,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC;IAElD,IAAI,GAAG,EAAE,CAAC;QACR,MAAM,qBAAqB,CAAC,WAAW,CAAC,CAAC;QACzC,OAAO,CAAC,GAAG,CAAC,WAAW,QAAQ,KAAK,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QAChE,OAAO;IACT,CAAC;IAED,OAAO,CAAC,GAAG,CACT,KAAK,QAAQ,mCAAmC,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAC3E,CAAC;IACF,MAAM,YAAY,GAAG,MAAM,aAAa,CAAC,8BAA8B,CAAC,CAAC;IAEzE,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,UAAU,CAAC,mBAAmB,CAAC,CAAC;IAClC,CAAC;IAED,MAAM,qBAAqB,CAAC,WAAW,CAAC,CAAC;AAC3C,CAAC"}
|
|
@@ -1,16 +1,22 @@
|
|
|
1
1
|
import chalk from "chalk";
|
|
2
|
-
import { deleteFileOrDirectory,
|
|
2
|
+
import { deleteFileOrDirectory, exists, fatalError, isDirectory, isFile, } from "complete-node";
|
|
3
3
|
import path from "node:path";
|
|
4
4
|
import { PROJECT_NAME } from "../../constants.js";
|
|
5
5
|
import { getInputYesNo } from "../../prompt.js";
|
|
6
6
|
export async function checkModTargetDirectory(modsDirectory, projectName, yes) {
|
|
7
7
|
const modTargetPath = path.join(modsDirectory, projectName);
|
|
8
|
-
|
|
8
|
+
const modTargetPathExists = await exists(modTargetPath);
|
|
9
|
+
if (!modTargetPathExists) {
|
|
9
10
|
return;
|
|
10
11
|
}
|
|
11
|
-
const
|
|
12
|
+
const file = await isFile(modTargetPath);
|
|
13
|
+
const directory = await isDirectory(modTargetPath);
|
|
14
|
+
if (!file && !directory) {
|
|
15
|
+
throw new Error(`Failed to detect if the path was a file or a directory: ${modTargetPath}`);
|
|
16
|
+
}
|
|
17
|
+
const fileType = directory ? "directory" : "file";
|
|
12
18
|
if (yes) {
|
|
13
|
-
deleteFileOrDirectory(modTargetPath);
|
|
19
|
+
await deleteFileOrDirectory(modTargetPath);
|
|
14
20
|
console.log(`Deleted ${fileType}: ${chalk.green(modTargetPath)}`);
|
|
15
21
|
return;
|
|
16
22
|
}
|
|
@@ -20,6 +26,6 @@ export async function checkModTargetDirectory(modsDirectory, projectName, yes) {
|
|
|
20
26
|
if (!shouldDelete) {
|
|
21
27
|
fatalError("Ok then. Goodbye.");
|
|
22
28
|
}
|
|
23
|
-
deleteFileOrDirectory(modTargetPath);
|
|
29
|
+
await deleteFileOrDirectory(modTargetPath);
|
|
24
30
|
}
|
|
25
31
|
//# sourceMappingURL=checkModTargetDirectory.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkModTargetDirectory.js","sourceRoot":"","sources":["../../../src/commands/init/checkModTargetDirectory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EACL,qBAAqB,EACrB,UAAU,EACV,
|
|
1
|
+
{"version":3,"file":"checkModTargetDirectory.js","sourceRoot":"","sources":["../../../src/commands/init/checkModTargetDirectory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EACL,qBAAqB,EACrB,MAAM,EACN,UAAU,EACV,WAAW,EACX,MAAM,GACP,MAAM,eAAe,CAAC;AACvB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,aAAqB,EACrB,WAAmB,EACnB,GAAY;IAEZ,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;IAC5D,MAAM,mBAAmB,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;IACxD,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACzB,OAAO;IACT,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;IACzC,MAAM,SAAS,GAAG,MAAM,WAAW,CAAC,aAAa,CAAC,CAAC;IACnD,IAAI,CAAC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CACb,2DAA2D,aAAa,EAAE,CAC3E,CAAC;IACJ,CAAC;IACD,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC;IAElD,IAAI,GAAG,EAAE,CAAC;QACR,MAAM,qBAAqB,CAAC,aAAa,CAAC,CAAC;QAC3C,OAAO,CAAC,GAAG,CAAC,WAAW,QAAQ,KAAK,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;QAClE,OAAO;IACT,CAAC;IAED,OAAO,CAAC,GAAG,CACT,KAAK,QAAQ,0CAA0C,KAAK,CAAC,KAAK,CAChE,aAAa,CACd,EAAE,CACJ,CAAC;IACF,OAAO,CAAC,GAAG,CACT,GAAG,YAAY,6DAA6D,CAC7E,CAAC;IACF,MAAM,YAAY,GAAG,MAAM,aAAa,CAAC,8BAA8B,CAAC,CAAC;IAEzE,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,UAAU,CAAC,mBAAmB,CAAC,CAAC;IAClC,CAAC;IAED,MAAM,qBAAqB,CAAC,aAAa,CAAC,CAAC;AAC7C,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import chalk from "chalk";
|
|
2
|
-
import { isObject,
|
|
3
|
-
import {
|
|
2
|
+
import { isObject, removeLinesBetweenMarkers, removeLinesMatching, repeat, } from "complete-common";
|
|
3
|
+
import { copyFileOrDirectory, fatalError, getFileNamesInDirectory, getPackageManagerExecCommand, getPackageManagerInstallCICommand, getPackageManagerInstallCommand, getPackageManagerLockFileName, isFile, makeDirectory, readFile, renameFileOrDirectory, updatePackageJSONDependencies, writeFile, } from "complete-node";
|
|
4
4
|
import path from "node:path";
|
|
5
5
|
import { Config } from "../../classes/Config.js";
|
|
6
6
|
import { createConfigFile } from "../../configFile.js";
|
|
@@ -9,13 +9,12 @@ import { execShell, execShellString } from "../../exec.js";
|
|
|
9
9
|
import { initGitRepository } from "../../git.js";
|
|
10
10
|
export async function createProject(projectName, projectPath, createNewDir, modsDirectory, saveSlot, gitRemoteURL, skipInstall, packageManager, dev, verbose) {
|
|
11
11
|
if (createNewDir) {
|
|
12
|
-
makeDirectory(projectPath);
|
|
12
|
+
await makeDirectory(projectPath);
|
|
13
13
|
}
|
|
14
14
|
const config = new Config(modsDirectory, saveSlot, dev);
|
|
15
|
-
createConfigFile(projectPath, config);
|
|
16
|
-
copyStaticFiles(projectPath);
|
|
17
|
-
copyDynamicFiles(projectName, projectPath, packageManager, dev);
|
|
18
|
-
upgradeYarn(projectPath, packageManager, verbose);
|
|
15
|
+
await createConfigFile(projectPath, config);
|
|
16
|
+
await copyStaticFiles(projectPath);
|
|
17
|
+
await copyDynamicFiles(projectName, projectPath, packageManager, dev);
|
|
19
18
|
// There is no package manager lock files yet, so we have to pass "false" to this function.
|
|
20
19
|
const updated = await updatePackageJSONDependencies(projectPath, false, true);
|
|
21
20
|
if (!updated) {
|
|
@@ -29,37 +28,40 @@ export async function createProject(projectName, projectPath, createNewDir, mods
|
|
|
29
28
|
console.log(`Successfully created mod: ${chalk.green(projectName)}`);
|
|
30
29
|
}
|
|
31
30
|
/** Copy static files, like "eslint.config.mjs", "tsconfig.json", etc. */
|
|
32
|
-
function copyStaticFiles(projectPath) {
|
|
31
|
+
async function copyStaticFiles(projectPath) {
|
|
33
32
|
// First, copy the static files that are shared between TypeScript projects and IsaacScript mods.
|
|
34
|
-
copyTemplateDirectoryWithoutOverwriting(TEMPLATES_STATIC_DIR, projectPath);
|
|
33
|
+
await copyTemplateDirectoryWithoutOverwriting(TEMPLATES_STATIC_DIR, projectPath);
|
|
35
34
|
// Rename "_gitattributes" to ".gitattributes". (If it is kept as ".gitattributes", then it won't
|
|
36
35
|
// be committed to git.)
|
|
37
36
|
const gitAttributesPath = path.join(projectPath, "_gitattributes");
|
|
38
37
|
const correctGitAttributesPath = path.join(projectPath, ".gitattributes");
|
|
39
|
-
|
|
38
|
+
await renameFileOrDirectory(gitAttributesPath, correctGitAttributesPath);
|
|
40
39
|
// Rename "_cspell.config.jsonc" to "cspell.config.jsonc". (If it is kept as
|
|
41
40
|
// "cspell.config.jsonc", then local spell checking will fail.)
|
|
42
41
|
const cSpellConfigPath = path.join(projectPath, "_cspell.config.jsonc");
|
|
43
42
|
const correctCSpellConfigPath = path.join(projectPath, "cspell.config.jsonc");
|
|
44
|
-
|
|
43
|
+
await renameFileOrDirectory(cSpellConfigPath, correctCSpellConfigPath);
|
|
45
44
|
}
|
|
46
|
-
function copyTemplateDirectoryWithoutOverwriting(templateDirPath, projectPath) {
|
|
47
|
-
const fileNames = getFileNamesInDirectory(templateDirPath);
|
|
45
|
+
async function copyTemplateDirectoryWithoutOverwriting(templateDirPath, projectPath) {
|
|
46
|
+
const fileNames = await getFileNamesInDirectory(templateDirPath);
|
|
48
47
|
for (const fileName of fileNames) {
|
|
49
48
|
const templateFilePath = path.join(templateDirPath, fileName);
|
|
50
49
|
const destinationFilePath = path.join(projectPath, fileName);
|
|
51
|
-
|
|
52
|
-
|
|
50
|
+
// eslint-disable-next-line no-await-in-loop
|
|
51
|
+
const file = await isFile(destinationFilePath);
|
|
52
|
+
if (!file) {
|
|
53
|
+
// eslint-disable-next-line no-await-in-loop
|
|
54
|
+
await copyFileOrDirectory(templateFilePath, destinationFilePath);
|
|
53
55
|
}
|
|
54
56
|
}
|
|
55
57
|
}
|
|
56
58
|
/** Copy files that need to have text replaced inside of them. */
|
|
57
|
-
function copyDynamicFiles(projectName, projectPath, packageManager, dev) {
|
|
59
|
+
async function copyDynamicFiles(projectName, projectPath, packageManager, dev) {
|
|
58
60
|
// `.github/workflows/setup/action.yml`
|
|
59
61
|
{
|
|
60
62
|
const fileName = ACTION_YML;
|
|
61
63
|
const templatePath = ACTION_YML_TEMPLATE_PATH;
|
|
62
|
-
const templateRaw = readFile(templatePath);
|
|
64
|
+
const templateRaw = await readFile(templatePath);
|
|
63
65
|
const template = parseTemplate(templateRaw);
|
|
64
66
|
const lockFileName = getPackageManagerLockFileName(packageManager);
|
|
65
67
|
const installCommand = getPackageManagerInstallCICommand(packageManager);
|
|
@@ -68,14 +70,14 @@ function copyDynamicFiles(projectName, projectPath, packageManager, dev) {
|
|
|
68
70
|
.replaceAll("PACKAGE_MANAGER_LOCK_FILE_NAME", lockFileName)
|
|
69
71
|
.replaceAll("PACKAGE_MANAGER_INSTALL_COMMAND", installCommand);
|
|
70
72
|
const setupPath = path.join(projectPath, ".github", "workflows", "setup");
|
|
71
|
-
makeDirectory(setupPath);
|
|
73
|
+
await makeDirectory(setupPath);
|
|
72
74
|
const destinationPath = path.join(setupPath, fileName);
|
|
73
|
-
writeFile(destinationPath, actionYML);
|
|
75
|
+
await writeFile(destinationPath, actionYML);
|
|
74
76
|
}
|
|
75
77
|
// `.gitignore`
|
|
76
78
|
{
|
|
77
79
|
const templatePath = GITIGNORE_TEMPLATE_PATH;
|
|
78
|
-
const templateRaw = readFile(templatePath);
|
|
80
|
+
const templateRaw = await readFile(templatePath);
|
|
79
81
|
const template = parseTemplate(templateRaw);
|
|
80
82
|
// Prepend a header with the project name.
|
|
81
83
|
let separatorLine = "# ";
|
|
@@ -85,27 +87,27 @@ function copyDynamicFiles(projectName, projectPath, packageManager, dev) {
|
|
|
85
87
|
separatorLine += "\n";
|
|
86
88
|
const gitIgnoreHeader = `${separatorLine}# ${projectName}\n${separatorLine}\n`;
|
|
87
89
|
const nodeGitIgnorePath = path.join(TEMPLATES_DYNAMIC_DIR, "Node.gitignore");
|
|
88
|
-
const nodeGitIgnore = readFile(nodeGitIgnorePath);
|
|
90
|
+
const nodeGitIgnore = await readFile(nodeGitIgnorePath);
|
|
89
91
|
// eslint-disable-next-line prefer-template
|
|
90
92
|
const gitignore = gitIgnoreHeader + template + "\n" + nodeGitIgnore;
|
|
91
93
|
// We need to replace the underscore with a period.
|
|
92
94
|
const destinationPath = path.join(projectPath, ".gitignore");
|
|
93
|
-
writeFile(destinationPath, gitignore);
|
|
95
|
+
await writeFile(destinationPath, gitignore);
|
|
94
96
|
}
|
|
95
97
|
// `package.json`
|
|
96
98
|
{
|
|
97
99
|
const packageJSONTemplateFileName = "package.json";
|
|
98
100
|
const templatePath = path.join(TEMPLATES_DYNAMIC_DIR, packageJSONTemplateFileName);
|
|
99
|
-
const template = readFile(templatePath);
|
|
101
|
+
const template = await readFile(templatePath);
|
|
100
102
|
const packageJSON = template.replaceAll("project-name", projectName);
|
|
101
103
|
const destinationPath = path.join(projectPath, "package.json");
|
|
102
|
-
writeFile(destinationPath, packageJSON);
|
|
104
|
+
await writeFile(destinationPath, packageJSON);
|
|
103
105
|
}
|
|
104
106
|
// `README.md`
|
|
105
107
|
{
|
|
106
108
|
const readmeMDTemplateFileName = "README.md";
|
|
107
109
|
const templatePath = path.join(TEMPLATES_DYNAMIC_DIR, readmeMDTemplateFileName);
|
|
108
|
-
const template = readFile(templatePath);
|
|
110
|
+
const template = await readFile(templatePath);
|
|
109
111
|
// "PROJECT-NAME" must be hyphenated, as using an underscore will break Prettier for some
|
|
110
112
|
// reason.
|
|
111
113
|
const installCommand = getPackageManagerInstallCICommand(packageManager);
|
|
@@ -115,41 +117,41 @@ function copyDynamicFiles(projectName, projectPath, packageManager, dev) {
|
|
|
115
117
|
.replaceAll("PACKAGE-MANAGER-INSTALL-COMMAND", installCommand)
|
|
116
118
|
.replaceAll("PACKAGE-MANAGER-EXEC-COMMAND", execCommand);
|
|
117
119
|
const destinationPath = path.join(projectPath, README_MD);
|
|
118
|
-
writeFile(destinationPath, readmeMD);
|
|
120
|
+
await writeFile(destinationPath, readmeMD);
|
|
119
121
|
}
|
|
120
122
|
// `mod/metadata.xml`
|
|
121
123
|
{
|
|
122
124
|
const modPath = path.join(projectPath, "mod");
|
|
123
|
-
makeDirectory(modPath);
|
|
125
|
+
await makeDirectory(modPath);
|
|
124
126
|
const fileName = METADATA_XML;
|
|
125
127
|
const templatePath = METADATA_XML_TEMPLATE_PATH;
|
|
126
|
-
const template = readFile(templatePath);
|
|
128
|
+
const template = await readFile(templatePath);
|
|
127
129
|
const metadataXML = template.replaceAll("PROJECT_NAME", projectName);
|
|
128
130
|
const destinationPath = path.join(modPath, fileName);
|
|
129
|
-
writeFile(destinationPath, metadataXML);
|
|
131
|
+
await writeFile(destinationPath, metadataXML);
|
|
130
132
|
}
|
|
131
133
|
const srcPath = path.join(projectPath, "src");
|
|
132
|
-
makeDirectory(srcPath);
|
|
134
|
+
await makeDirectory(srcPath);
|
|
133
135
|
// `src/main.ts` (TypeScript projects use the simple version from the "static-ts" directory.)
|
|
134
136
|
{
|
|
135
137
|
// Convert snake_case and kebab-case to camelCase. (Kebab-case in particular will make the
|
|
136
138
|
// example TypeScript file fail to compile.)
|
|
137
139
|
const fileName = MAIN_TS;
|
|
138
140
|
const templatePath = MAIN_TS_TEMPLATE_PATH;
|
|
139
|
-
const template = readFile(templatePath);
|
|
141
|
+
const template = await readFile(templatePath);
|
|
140
142
|
const mainTS = template.replaceAll("PROJECT_NAME", projectName);
|
|
141
143
|
const destinationPath = path.join(srcPath, fileName);
|
|
142
|
-
writeFile(destinationPath, mainTS);
|
|
144
|
+
await writeFile(destinationPath, mainTS);
|
|
143
145
|
}
|
|
144
146
|
// If we are initializing an IsaacScript project intended to be used for development, we can
|
|
145
147
|
// include a better starter file.
|
|
146
148
|
if (dev) {
|
|
147
149
|
const fileName = MAIN_TS;
|
|
148
150
|
const templatePath = MAIN_DEV_TS_TEMPLATE_PATH;
|
|
149
|
-
const template = readFile(templatePath);
|
|
151
|
+
const template = await readFile(templatePath);
|
|
150
152
|
const mainTS = template; // No replacements are necessary for this file.
|
|
151
153
|
const destinationPath = path.join(srcPath, fileName);
|
|
152
|
-
writeFile(destinationPath, mainTS);
|
|
154
|
+
await writeFile(destinationPath, mainTS);
|
|
153
155
|
}
|
|
154
156
|
}
|
|
155
157
|
function parseTemplate(template) {
|
|
@@ -160,52 +162,6 @@ function parseTemplate(template) {
|
|
|
160
162
|
const templateWithoutMultipleLineBreaks = templateWithoutTemplateComments.replaceAll(/\n\s*\n\s*\n/g, "\n\n");
|
|
161
163
|
return templateWithoutMultipleLineBreaks;
|
|
162
164
|
}
|
|
163
|
-
/**
|
|
164
|
-
* If we are using yarn, assume that we want to use the latest version, which requires some
|
|
165
|
-
* additional commands to be performed.
|
|
166
|
-
*/
|
|
167
|
-
function upgradeYarn(projectPath, packageManager, verbose) {
|
|
168
|
-
if (packageManager !== PackageManager.yarn) {
|
|
169
|
-
return;
|
|
170
|
-
}
|
|
171
|
-
// First, check to see if they have already done "corepack enable". If they have not, then yarn
|
|
172
|
-
// might still be on version 1. Otherwise it will be version 3.
|
|
173
|
-
const { stdout } = execShellString("yarn --version", verbose);
|
|
174
|
-
const yarnVersion = parseSemanticVersion(stdout);
|
|
175
|
-
if (yarnVersion === undefined) {
|
|
176
|
-
fatalError(`Failed to parse the Yarn version when running the "yarn --version" command: ${stdout}`);
|
|
177
|
-
}
|
|
178
|
-
if (yarnVersion.majorVersion === 1) {
|
|
179
|
-
// They have not done a "corepack enable", so let them use Yarn 1 to reduce the complexity.
|
|
180
|
-
if (verbose) {
|
|
181
|
-
console.log('Yarn 1 detected; skipping ".yarnrc.yml" configuration.');
|
|
182
|
-
}
|
|
183
|
-
return;
|
|
184
|
-
}
|
|
185
|
-
// Yarn v3.5.1 is the default in Node.js v20 (once corepack has been enabled). On this version of
|
|
186
|
-
// node, the command will do two things:
|
|
187
|
-
// - It creates `./.yarn/releases/yarn-#.#.#.cjs`.
|
|
188
|
-
// - It creates the following string in the "package.json" file: `"packageManager": "yarn@#.#.#"`
|
|
189
|
-
execShellString("yarn set version latest", verbose, false, projectPath);
|
|
190
|
-
// Having the "yarn-#.#.#.cjs" file inside of the repository is now discouraged in Yarn 4+, so we
|
|
191
|
-
// can safely delete this directory.
|
|
192
|
-
const yarnDirectoryPath = path.join(projectPath, ".yarn");
|
|
193
|
-
deleteFileOrDirectory(yarnDirectoryPath);
|
|
194
|
-
// - The ".yarnrc.yml" file will now look like this: `yarnPath: .yarn/releases/yarn-4.0.1.cjs`
|
|
195
|
-
// - As mentioned above, we do not need the "yarnPath" setting if the "yarn-#.#.#.cjs" file is not
|
|
196
|
-
// inside of the repository, so we need to delete it.
|
|
197
|
-
// - Additionally, since there is not a setting specified for "nodeLinker", it will use `pnp`,
|
|
198
|
-
// which is not desired:
|
|
199
|
-
// https://yarnpkg.com/features/linkers
|
|
200
|
-
// - `pnp` is the default, but it requires a VSCode extension.
|
|
201
|
-
// - `pnpm` is fast, but it does not work with a D drive:
|
|
202
|
-
// https://github.com/yarnpkg/berry/issues/5326
|
|
203
|
-
// - Thus, we use `node-modules`, which can be set with: `yarn config set nodeLinker node-modules`
|
|
204
|
-
// - However, in order to fix both of these at the same time, we just overwrite the file, which is
|
|
205
|
-
// simpler than running commands or manually editing the file.
|
|
206
|
-
const yarnConfigPath = path.join(projectPath, ".yarnrc.yml");
|
|
207
|
-
writeFile(yarnConfigPath, "nodeLinker: node-modules\n");
|
|
208
|
-
}
|
|
209
165
|
/**
|
|
210
166
|
* Since TypeScriptToLua needs a specific version of TypeScript, the latest version of TypeScript at
|
|
211
167
|
* the time of mod initialization may not work. Thus, we manually retrieve the correct version and
|
|
@@ -228,9 +184,9 @@ async function fixTypeScriptVersionInPackageJSON(projectPath) {
|
|
|
228
184
|
throw new TypeError('Failed to parse the "typescript" peer dependency in the TSTL package.json file.');
|
|
229
185
|
}
|
|
230
186
|
const packageJSONPath = path.join(projectPath, "package.json");
|
|
231
|
-
const packageJSON = await
|
|
187
|
+
const packageJSON = await readFile(packageJSONPath);
|
|
232
188
|
const updatedPackageJSON = packageJSON.replace(/"typescript": "[^"]*"/, `"typescript": "${TSTLTypeScriptVersion}"`);
|
|
233
|
-
await
|
|
189
|
+
await writeFile(packageJSONPath, updatedPackageJSON);
|
|
234
190
|
}
|
|
235
191
|
function installNodeModules(projectPath, skipInstall, packageManager, verbose) {
|
|
236
192
|
if (skipInstall) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createProject.js","sourceRoot":"","sources":["../../../src/commands/init/createProject.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EACL,QAAQ,EACR,
|
|
1
|
+
{"version":3,"file":"createProject.js","sourceRoot":"","sources":["../../../src/commands/init/createProject.ts"],"names":[],"mappings":"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"}
|