electron-reactive-event-cli 1.0.38 → 1.0.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.
- package/Distribution/Initialize.Types.d.ts +0 -11
- package/Distribution/Initialize.Types.d.ts.map +1 -1
- package/Distribution/Register/RegisterCommand.Types.d.ts +2 -0
- package/Distribution/Register/RegisterCommand.Types.d.ts.map +1 -0
- package/Distribution/Register/RegisterCommand.Types.js +7 -0
- package/Distribution/Register/RegisterCommand.Types.js.map +1 -0
- package/Distribution/Register/RegisterCommand.d.ts +3 -0
- package/Distribution/Register/RegisterCommand.d.ts.map +1 -0
- package/Distribution/Register/RegisterCommand.js +120 -0
- package/Distribution/Register/RegisterCommand.js.map +1 -0
- package/Distribution/Register/RegisterCommandBin.d.ts +2 -0
- package/Distribution/Register/RegisterCommandBin.d.ts.map +1 -0
- package/Distribution/Register/RegisterCommandBin.js +8 -0
- package/Distribution/Register/RegisterCommandBin.js.map +1 -0
- package/Distribution/Register/index.d.ts +2 -0
- package/Distribution/Register/index.d.ts.map +1 -0
- package/Distribution/Register/index.js +7 -0
- package/Distribution/Register/index.js.map +1 -0
- package/Distribution/Schema.Types.d.ts +0 -7
- package/Distribution/Schema.Types.d.ts.map +1 -1
- package/Distribution/Select.Types.d.ts +1 -4
- package/Distribution/Select.Types.d.ts.map +1 -1
- package/Distribution/Select.d.ts +1 -8
- package/Distribution/Select.d.ts.map +1 -1
- package/Distribution/Select.js +1 -344
- package/Distribution/Select.js.map +1 -1
- package/Distribution/Setup/Prompt.Types.d.ts +12 -0
- package/Distribution/Setup/Prompt.Types.d.ts.map +1 -0
- package/Distribution/Setup/Prompt.Types.js +7 -0
- package/Distribution/Setup/Prompt.Types.js.map +1 -0
- package/Distribution/Setup/Prompt.d.ts +10 -0
- package/Distribution/Setup/Prompt.d.ts.map +1 -0
- package/Distribution/Setup/Prompt.js +250 -0
- package/Distribution/Setup/Prompt.js.map +1 -0
- package/Distribution/Setup/SetupCommand.Types.d.ts +5 -0
- package/Distribution/Setup/SetupCommand.Types.d.ts.map +1 -0
- package/Distribution/Setup/SetupCommand.Types.js +7 -0
- package/Distribution/Setup/SetupCommand.Types.js.map +1 -0
- package/Distribution/Setup/SetupCommand.d.ts +3 -0
- package/Distribution/Setup/SetupCommand.d.ts.map +1 -0
- package/Distribution/Setup/SetupCommand.js +259 -0
- package/Distribution/Setup/SetupCommand.js.map +1 -0
- package/Distribution/Setup/TsConfig.Types.d.ts +10 -0
- package/Distribution/Setup/TsConfig.Types.d.ts.map +1 -0
- package/Distribution/Setup/TsConfig.Types.js +7 -0
- package/Distribution/Setup/TsConfig.Types.js.map +1 -0
- package/Distribution/Setup/TsConfig.d.ts +7 -0
- package/Distribution/Setup/TsConfig.d.ts.map +1 -0
- package/Distribution/Setup/TsConfig.js +62 -0
- package/Distribution/Setup/TsConfig.js.map +1 -0
- package/Distribution/Setup/index.d.ts +6 -0
- package/Distribution/Setup/index.d.ts.map +1 -0
- package/Distribution/Setup/index.js +11 -0
- package/Distribution/Setup/index.js.map +1 -0
- package/Distribution/Setup.js +1 -115
- package/Distribution/Setup.js.map +1 -1
- package/Distribution/Shared.d.ts +1 -2
- package/Distribution/Shared.d.ts.map +1 -1
- package/Distribution/Shared.js +1 -11
- package/Distribution/Shared.js.map +1 -1
- package/Distribution/Utility.Types.d.ts +2 -0
- package/Distribution/Utility.Types.d.ts.map +1 -0
- package/Distribution/Utility.Types.js +7 -0
- package/Distribution/Utility.Types.js.map +1 -0
- package/Distribution/Utility.d.ts +2 -1
- package/Distribution/Utility.d.ts.map +1 -1
- package/Distribution/Utility.js +16 -1
- package/Distribution/Utility.js.map +1 -1
- package/Distribution/index.d.ts +2 -3
- package/Distribution/index.d.ts.map +1 -1
- package/Distribution/index.js +2 -3
- package/Distribution/index.js.map +1 -1
- package/package.json +6 -5
|
@@ -1,15 +1,4 @@
|
|
|
1
|
-
export type FOutputType = "console" | "clipboard" | "file";
|
|
2
1
|
export type FSetupOptions = {
|
|
3
2
|
interactive: boolean;
|
|
4
3
|
};
|
|
5
|
-
export type FCommandName = "preload" | "provider";
|
|
6
|
-
export interface IOptions {
|
|
7
|
-
Output: FOutputType;
|
|
8
|
-
}
|
|
9
|
-
export interface IGenerationRequest {
|
|
10
|
-
CommandName: FCommandName;
|
|
11
|
-
OutputType: FOutputType;
|
|
12
|
-
OutputPath: string | undefined;
|
|
13
|
-
OutputPathExists: boolean;
|
|
14
|
-
}
|
|
15
4
|
//# sourceMappingURL=Initialize.Types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Initialize.Types.d.ts","sourceRoot":"","sources":["../Source/Initialize.Types.ts"],"names":[],"mappings":"AAMA,MAAM,MAAM,
|
|
1
|
+
{"version":3,"file":"Initialize.Types.d.ts","sourceRoot":"","sources":["../Source/Initialize.Types.ts"],"names":[],"mappings":"AAMA,MAAM,MAAM,aAAa,GACrB;IACI,WAAW,EAAE,OAAO,CAAC;CACxB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RegisterCommand.Types.d.ts","sourceRoot":"","sources":["../../Source/Register/RegisterCommand.Types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RegisterCommand.Types.js","sourceRoot":"","sources":["../../Source/Register/RegisterCommand.Types.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RegisterCommand.d.ts","sourceRoot":"","sources":["../../Source/Register/RegisterCommand.ts"],"names":[],"mappings":";AAgKA,wBAAsB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAc9C"}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/* File: RegisterCommand.ts
|
|
3
|
+
* Author: Gage Sorrell <gage@sorrell.sh>
|
|
4
|
+
* Copyright: (c) 2026 Gage Sorrell
|
|
5
|
+
* License: MIT
|
|
6
|
+
*/
|
|
7
|
+
import { DefaultConfigFileName } from "../index.js";
|
|
8
|
+
import { GetPackageRootDirectory, OraTask, Try } from "@sorrell/utilities";
|
|
9
|
+
import Chalk from "chalk";
|
|
10
|
+
import { Code } from "@sorrell/cli-utilities";
|
|
11
|
+
import { readFile } from "fs/promises";
|
|
12
|
+
import { resolve } from "path";
|
|
13
|
+
async function GetConfigFromContents(Contents) {
|
|
14
|
+
try {
|
|
15
|
+
const ParsedJson = JSON.parse(Contents);
|
|
16
|
+
if (typeof ParsedJson === "object") {
|
|
17
|
+
if (ParsedJson !== null) {
|
|
18
|
+
if ("main" in ParsedJson && typeof ParsedJson.main === "object" && ParsedJson.main !== null) {
|
|
19
|
+
if ("name" in ParsedJson.main) {
|
|
20
|
+
if ("path" in ParsedJson.main) {
|
|
21
|
+
if ("renderer" in ParsedJson && typeof ParsedJson.renderer === "object" && ParsedJson.renderer !== null) {
|
|
22
|
+
if ("name" in ParsedJson.renderer) {
|
|
23
|
+
if ("path" in ParsedJson.renderer) {
|
|
24
|
+
if ("outPath" in ParsedJson) {
|
|
25
|
+
if (typeof ParsedJson.outPath === "string") {
|
|
26
|
+
return ParsedJson;
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
throw new Error(`The ${Code("outPath")} property of the config file was specified, but it must be a string.`);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
throw new Error(`The config file is missing the property ${Code("outPath")}.`);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
throw new Error(`The ${Code("renderer")} property in the config file is missing property ${Code("path")}.`);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
throw new Error(`The ${Code("renderer")} property in the config file is missing property ${Code("name")}.`);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
throw new Error(`The config file is missing the property ${Code("main")}.`);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
throw new Error(`The ${Code("main")} property in the config file is missing property ${Code("path")}.`);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
else {
|
|
53
|
+
throw new Error(`The ${Code("main")} property in the config file is missing property ${Code("name")}.`);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
else {
|
|
57
|
+
throw new Error(`The config file is missing the property ${Code("main")}.`);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
else {
|
|
61
|
+
throw new Error(`A config file was found, but parsed into ${Code("null")}.`);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
throw new Error("A config file was found, but could not be parsed into an object.");
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
catch (_Error) {
|
|
69
|
+
throw new Error("A config file was found, but its contents are invalid.");
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
async function GetConfigContents() {
|
|
73
|
+
const DefaultPath = resolve(await GetPackageRootDirectory(), DefaultConfigFileName);
|
|
74
|
+
const { Data: DefaultPathConfigContents } = await Try(readFile(DefaultPath, { encoding: "utf-8" }));
|
|
75
|
+
if (DefaultPathConfigContents !== undefined) {
|
|
76
|
+
return DefaultPathConfigContents;
|
|
77
|
+
}
|
|
78
|
+
const { Data: PackageJsonContents } = await Try(readFile(resolve(await GetPackageRootDirectory(), "package.json"), { encoding: "utf-8" }));
|
|
79
|
+
if (PackageJsonContents === undefined) {
|
|
80
|
+
/* eslint-disable-next-line @stylistic/max-len */
|
|
81
|
+
throw new Error(`Could not find a config file at the default path, and the project's ${Code("package.json")} could not be loaded. Exiting...`);
|
|
82
|
+
}
|
|
83
|
+
const PackageJson = JSON.parse(PackageJsonContents);
|
|
84
|
+
if ("config" in PackageJson) {
|
|
85
|
+
if ("electron-reactive-event-cli" in PackageJson.config) {
|
|
86
|
+
const CustomPath = PackageJson.config["electron-reactive-event-cli"];
|
|
87
|
+
const { Data: CustomPathCliConfigContents } = await Try(readFile(CustomPath, { encoding: "utf-8" }));
|
|
88
|
+
if (CustomPathCliConfigContents !== undefined) {
|
|
89
|
+
try {
|
|
90
|
+
return CustomPathCliConfigContents;
|
|
91
|
+
}
|
|
92
|
+
catch (_Error) {
|
|
93
|
+
throw new Error("A custom config file was found, but it could not be parsed.");
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
else {
|
|
97
|
+
/* eslint-disable-next-line @stylistic/max-len */
|
|
98
|
+
throw new Error(`Found a custom path for the config file in ${Code("package.json")} in the ${Code("config")} property, but the file could not be loaded. Exiting...`);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
else {
|
|
102
|
+
throw new Error(`Could not find a config file in the default path, and the ${Code("package.json")} ${Chalk.italic("does")} feature a ${Code("config")} property, but not a ${Code("config.electron-reactive-event-cli")} property.`);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
else {
|
|
106
|
+
throw new Error(`Could not find a config file in the default path, and the ${Code("package.json")} does not have a ${Code("config")} property in which a custom path would be provided.`);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
async function GetCliConfig() {
|
|
110
|
+
return GetConfigFromContents(await GetConfigContents());
|
|
111
|
+
}
|
|
112
|
+
export async function Register() {
|
|
113
|
+
const { Data: CliConfig } = await OraTask(GetCliConfig, "Loading your config file...");
|
|
114
|
+
if (CliConfig === undefined) {
|
|
115
|
+
process.exit(1);
|
|
116
|
+
}
|
|
117
|
+
// Find all event declarations
|
|
118
|
+
// Rewrite built module
|
|
119
|
+
}
|
|
120
|
+
//# sourceMappingURL=RegisterCommand.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RegisterCommand.js","sourceRoot":"","sources":["../../Source/Register/RegisterCommand.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RegisterCommandBin.d.ts","sourceRoot":"","sources":["../../Source/Register/RegisterCommandBin.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RegisterCommandBin.js","sourceRoot":"","sources":["../../Source/Register/RegisterCommandBin.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAEhD,QAAQ,EAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../Source/Register/index.ts"],"names":[],"mappings":"AAMA,cAAc,4BAA4B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../Source/Register/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,4BAA4B,CAAC"}
|
|
@@ -15,12 +15,5 @@ export type FCliConfig = {
|
|
|
15
15
|
};
|
|
16
16
|
/** Where the module containing the `declare module` blocks will be written. */
|
|
17
17
|
outPath: string;
|
|
18
|
-
/**
|
|
19
|
-
* The glob(s) of path(s) to modules containing your event declarations.
|
|
20
|
-
*
|
|
21
|
-
* If this property is not specified, then the paths given in the
|
|
22
|
-
* `include` property of your package's `tsconfig.json` will be used.
|
|
23
|
-
*/
|
|
24
|
-
files?: Array<string>;
|
|
25
18
|
};
|
|
26
19
|
//# sourceMappingURL=Schema.Types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Schema.Types.d.ts","sourceRoot":"","sources":["../Source/Schema.Types.ts"],"names":[],"mappings":"AASA,MAAM,MAAM,UAAU,GAClB;IACI,6EAA6E;IAC7E,IAAI,EACJ;QACI,sCAAsC;QACtC,IAAI,EAAE,MAAM,CAAC;QAEb,+DAA+D;QAC/D,IAAI,EAAE,MAAM,CAAC;KAChB,CAAC;IAEF,iFAAiF;IACjF,QAAQ,EACR;QACI,sCAAsC;QACtC,IAAI,EAAE,MAAM,CAAC;QAEb,+DAA+D;QAC/D,IAAI,EAAE,MAAM,CAAC;KAChB,CAAC;IAEF,+EAA+E;IAC/E,OAAO,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"Schema.Types.d.ts","sourceRoot":"","sources":["../Source/Schema.Types.ts"],"names":[],"mappings":"AASA,MAAM,MAAM,UAAU,GAClB;IACI,6EAA6E;IAC7E,IAAI,EACJ;QACI,sCAAsC;QACtC,IAAI,EAAE,MAAM,CAAC;QAEb,+DAA+D;QAC/D,IAAI,EAAE,MAAM,CAAC;KAChB,CAAC;IAEF,iFAAiF;IACjF,QAAQ,EACR;QACI,sCAAsC;QACtC,IAAI,EAAE,MAAM,CAAC;QAEb,+DAA+D;QAC/D,IAAI,EAAE,MAAM,CAAC;KAChB,CAAC;IAEF,+EAA+E;IAC/E,OAAO,EAAE,MAAM,CAAC;CACnB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Select.Types.d.ts","sourceRoot":"","sources":["../Source/Select.Types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Select.Types.d.ts","sourceRoot":"","sources":["../Source/Select.Types.ts"],"names":[],"mappings":""}
|
package/Distribution/Select.d.ts
CHANGED
|
@@ -1,9 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
export declare function PromptModule(ProjectRootDirectoryPathArgument: string, SelectedInterfaces: FSelectedInterfaces | undefined): Promise<string>;
|
|
3
|
-
export type FRegistrarInterfaceNames = Readonly<{
|
|
4
|
-
Main: ReadonlyArray<string>;
|
|
5
|
-
Renderer: ReadonlyArray<string>;
|
|
6
|
-
}>;
|
|
7
|
-
export declare const GoBackChoice: string;
|
|
8
|
-
export declare function SelectInterfacesFromModule(Path: string, SelectedThusFar: FSelectedInterfaces | undefined): Promise<FSelectedInterfaces>;
|
|
1
|
+
export {};
|
|
9
2
|
//# sourceMappingURL=Select.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Select.d.ts","sourceRoot":"","sources":["../Source/Select.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Select.d.ts","sourceRoot":"","sources":["../Source/Select.ts"],"names":[],"mappings":""}
|
package/Distribution/Select.js
CHANGED
|
@@ -1,350 +1,7 @@
|
|
|
1
|
+
export {};
|
|
1
2
|
/* File: Select.ts
|
|
2
3
|
* Author: Gage Sorrell <gage@sorrell.sh>
|
|
3
4
|
* Copyright: (c) 2026 Gage Sorrell
|
|
4
5
|
* License: MIT
|
|
5
6
|
*/
|
|
6
|
-
/* eslint-disable no-console */
|
|
7
|
-
import { fileSelector } from "@sorrell/inquirer-file-selector";
|
|
8
|
-
import { basename, normalize, resolve } from "path";
|
|
9
|
-
import { confirm, select } from "@inquirer/prompts";
|
|
10
|
-
import { Code } from "@sorrell/cli-utilities";
|
|
11
|
-
import { stat } from "fs/promises";
|
|
12
|
-
import ts from "typescript";
|
|
13
|
-
// type FMenuSelection =
|
|
14
|
-
// | {
|
|
15
|
-
// Kind: "Parent";
|
|
16
|
-
// }
|
|
17
|
-
// | {
|
|
18
|
-
// Kind: "Directory";
|
|
19
|
-
// AbsolutePath: string;
|
|
20
|
-
// }
|
|
21
|
-
// | {
|
|
22
|
-
// Kind: "File";
|
|
23
|
-
// AbsolutePath: string;
|
|
24
|
-
// };
|
|
25
|
-
// type TChoice<ValueType> =
|
|
26
|
-
// {
|
|
27
|
-
// description?: string;
|
|
28
|
-
// disabled?: boolean | string;
|
|
29
|
-
// name: string;
|
|
30
|
-
// value: ValueType;
|
|
31
|
-
// };
|
|
32
|
-
// function IsTypeScriptModuleFile(FileName: string): boolean
|
|
33
|
-
// {
|
|
34
|
-
// const Extension: string = extname(FileName).toLowerCase();
|
|
35
|
-
// return Extension === ".ts" || Extension === ".tsx";
|
|
36
|
-
// }
|
|
37
|
-
// function GetDisplayDirectory(ProjectRootDirectoryPath: string, CurrentDirectoryPath: string): string
|
|
38
|
-
// {
|
|
39
|
-
// const RelativeDirectoryPath: string = relative(ProjectRootDirectoryPath, CurrentDirectoryPath);
|
|
40
|
-
// return RelativeDirectoryPath === "" ? "." : RelativeDirectoryPath;
|
|
41
|
-
// }
|
|
42
|
-
// async function ReadMenuChoices(
|
|
43
|
-
// ProjectRootDirectoryPath: string,
|
|
44
|
-
// CurrentDirectoryPath: string
|
|
45
|
-
// ): Promise<ReadonlyArray<TChoice<FMenuSelection>>>
|
|
46
|
-
// {
|
|
47
|
-
// type FDirectory = Dirent<string>;
|
|
48
|
-
// const DirectoryEntries: ReadonlyArray<FDirectory> =
|
|
49
|
-
// await readdir(CurrentDirectoryPath, { withFileTypes: true });
|
|
50
|
-
// const SortDirectories = (A: FDirectory, B: FDirectory): number =>
|
|
51
|
-
// {
|
|
52
|
-
// return A.name.localeCompare(
|
|
53
|
-
// B.name,
|
|
54
|
-
// undefined,
|
|
55
|
-
// {
|
|
56
|
-
// numeric: true,
|
|
57
|
-
// sensitivity: "base"
|
|
58
|
-
// });
|
|
59
|
-
// };
|
|
60
|
-
// const GetDirectoryChoice = (DirectoryEntry: FDirectory): TChoice<FMenuSelection> =>
|
|
61
|
-
// {
|
|
62
|
-
// const AbsolutePath: string = resolve(CurrentDirectoryPath, DirectoryEntry.name);
|
|
63
|
-
// return {
|
|
64
|
-
// description: "Open directory",
|
|
65
|
-
// name: `${DirectoryEntry.name}/`,
|
|
66
|
-
// value: {
|
|
67
|
-
// AbsolutePath,
|
|
68
|
-
// Kind: "Directory"
|
|
69
|
-
// }
|
|
70
|
-
// };
|
|
71
|
-
// };
|
|
72
|
-
// const IsDirectory = (DirectoryEntry: FDirectory): boolean =>
|
|
73
|
-
// {
|
|
74
|
-
// return DirectoryEntry.isDirectory();
|
|
75
|
-
// };
|
|
76
|
-
// const DirectoryChoices: Array<TChoice<FMenuSelection>> =
|
|
77
|
-
// DirectoryEntries
|
|
78
|
-
// .filter(IsDirectory)
|
|
79
|
-
// .sort(SortDirectories)
|
|
80
|
-
// .map(GetDirectoryChoice);
|
|
81
|
-
// const IsModule = (DirectoryEntry: FDirectory): boolean =>
|
|
82
|
-
// {
|
|
83
|
-
// return (
|
|
84
|
-
// DirectoryEntry.isFile() &&
|
|
85
|
-
// IsTypeScriptModuleFile(DirectoryEntry.name)
|
|
86
|
-
// );
|
|
87
|
-
// };
|
|
88
|
-
// const GetModuleChoice = (DirectoryEntry: FDirectory): TChoice<FMenuSelection> =>
|
|
89
|
-
// {
|
|
90
|
-
// const AbsolutePath: string = resolve(CurrentDirectoryPath, DirectoryEntry.name);
|
|
91
|
-
// return {
|
|
92
|
-
// description: "Select module",
|
|
93
|
-
// name: DirectoryEntry.name,
|
|
94
|
-
// value: {
|
|
95
|
-
// AbsolutePath,
|
|
96
|
-
// Kind: "File"
|
|
97
|
-
// }
|
|
98
|
-
// };
|
|
99
|
-
// };
|
|
100
|
-
// const FileChoices: Array<TChoice<FMenuSelection>> =
|
|
101
|
-
// DirectoryEntries
|
|
102
|
-
// .filter(IsModule)
|
|
103
|
-
// .sort(SortDirectories)
|
|
104
|
-
// .map(GetModuleChoice);
|
|
105
|
-
// const Choices: Array<TChoice<FMenuSelection>> = [ ];
|
|
106
|
-
// if (CurrentDirectoryPath !== ProjectRootDirectoryPath)
|
|
107
|
-
// {
|
|
108
|
-
// Choices.push({
|
|
109
|
-
// description: "Go to parent directory",
|
|
110
|
-
// name: "../",
|
|
111
|
-
// value: {
|
|
112
|
-
// Kind: "Parent"
|
|
113
|
-
// }
|
|
114
|
-
// });
|
|
115
|
-
// }
|
|
116
|
-
// Choices.push(...DirectoryChoices);
|
|
117
|
-
// Choices.push(...FileChoices);
|
|
118
|
-
// return Choices;
|
|
119
|
-
// }
|
|
120
|
-
export async function PromptModule(ProjectRootDirectoryPathArgument, SelectedInterfaces) {
|
|
121
|
-
const ProjectRootDirectoryPath = resolve(ProjectRootDirectoryPathArgument);
|
|
122
|
-
const ProjectRootDirectoryStats = await stat(ProjectRootDirectoryPath);
|
|
123
|
-
if (!ProjectRootDirectoryStats.isDirectory()) {
|
|
124
|
-
throw new Error(`The path "${ProjectRootDirectoryPath}" is not a directory.`);
|
|
125
|
-
}
|
|
126
|
-
const IsModuleOrDirectory = (InItem) => {
|
|
127
|
-
return ((InItem.name.endsWith(".ts") ||
|
|
128
|
-
InItem.name.endsWith(".tsx") ||
|
|
129
|
-
InItem.isDirectory) &&
|
|
130
|
-
normalize(InItem.path) !== normalize(ProjectRootDirectoryPath));
|
|
131
|
-
};
|
|
132
|
-
const InterfaceTypesRemaining = SelectedInterfaces?.Main === undefined
|
|
133
|
-
? SelectedInterfaces?.Renderer === undefined
|
|
134
|
-
? "one (or both) of your registrar interfaces"
|
|
135
|
-
: "your Main registrar interface"
|
|
136
|
-
: "your Renderer registrar interface";
|
|
137
|
-
console.log(`Choose the module that contains ${InterfaceTypesRemaining}.`);
|
|
138
|
-
const Selection = await fileSelector({
|
|
139
|
-
basePath: ProjectRootDirectoryPath,
|
|
140
|
-
filter: IsModuleOrDirectory,
|
|
141
|
-
keybinds: {
|
|
142
|
-
back: ["left"],
|
|
143
|
-
confirm: ["enter", "return"],
|
|
144
|
-
down: ["down"],
|
|
145
|
-
forward: ["right"],
|
|
146
|
-
up: ["up"]
|
|
147
|
-
},
|
|
148
|
-
loop: true,
|
|
149
|
-
message: "Select a file or directory:",
|
|
150
|
-
theme: {
|
|
151
|
-
labels: {
|
|
152
|
-
hints: {
|
|
153
|
-
confirm: "{{confirm}} to select"
|
|
154
|
-
},
|
|
155
|
-
keys: {
|
|
156
|
-
back: "←",
|
|
157
|
-
confirm: "↵",
|
|
158
|
-
down: "↓",
|
|
159
|
-
forward: "→",
|
|
160
|
-
up: "↑"
|
|
161
|
-
}
|
|
162
|
-
}
|
|
163
|
-
},
|
|
164
|
-
type: "file"
|
|
165
|
-
});
|
|
166
|
-
return Selection.path;
|
|
167
|
-
// let CurrentDirectoryPath: string = ProjectRootDirectoryPath;
|
|
168
|
-
// while (true)
|
|
169
|
-
// {
|
|
170
|
-
// const Choices: ReadonlyArray<TChoice<FMenuSelection>> = await ReadMenuChoices(
|
|
171
|
-
// ProjectRootDirectoryPath,
|
|
172
|
-
// CurrentDirectoryPath
|
|
173
|
-
// );
|
|
174
|
-
// if (Choices.length === 0)
|
|
175
|
-
// {
|
|
176
|
-
// throw new Error(
|
|
177
|
-
// `No subdirectories or TypeScript modules were found under "${ProjectRootDirectoryPath}".`
|
|
178
|
-
// );
|
|
179
|
-
// }
|
|
180
|
-
// const DisplayDirectory: string = GetDisplayDirectory(
|
|
181
|
-
// ProjectRootDirectoryPath,
|
|
182
|
-
// CurrentDirectoryPath
|
|
183
|
-
// );
|
|
184
|
-
// // const Selection: FMenuSelection = await select<FMenuSelection>({
|
|
185
|
-
// // choices: Choices,
|
|
186
|
-
// // loop: true,
|
|
187
|
-
// // message: `Select a TypeScript module (${ DisplayDirectory })`
|
|
188
|
-
// // });
|
|
189
|
-
// // switch (Selection.Kind)
|
|
190
|
-
// // {
|
|
191
|
-
// // case "Parent":
|
|
192
|
-
// // CurrentDirectoryPath = resolve(CurrentDirectoryPath, "..");
|
|
193
|
-
// // break;
|
|
194
|
-
// // case "Directory":
|
|
195
|
-
// // CurrentDirectoryPath = Selection.AbsolutePath;
|
|
196
|
-
// // break;
|
|
197
|
-
// // case "File":
|
|
198
|
-
// // {
|
|
199
|
-
// // const RelativeModulePath: string = relative(
|
|
200
|
-
// // ProjectRootDirectoryPath,
|
|
201
|
-
// // Selection.AbsolutePath
|
|
202
|
-
// // );
|
|
203
|
-
// // const Confirmed: boolean = await confirm({
|
|
204
|
-
// // message: `Use "${RelativeModulePath}"?`
|
|
205
|
-
// // });
|
|
206
|
-
// // if (Confirmed)
|
|
207
|
-
// // {
|
|
208
|
-
// // return Selection.AbsolutePath;
|
|
209
|
-
// // }
|
|
210
|
-
// // break;
|
|
211
|
-
// // }
|
|
212
|
-
// // }
|
|
213
|
-
// }
|
|
214
|
-
}
|
|
215
|
-
function NormalizePathForComparison(FilePath) {
|
|
216
|
-
const ResolvedPath = resolve(FilePath);
|
|
217
|
-
return ts.sys.useCaseSensitiveFileNames
|
|
218
|
-
? ResolvedPath
|
|
219
|
-
: ResolvedPath.toLowerCase();
|
|
220
|
-
}
|
|
221
|
-
function GetSourceFileFromProgram(Program, ModulePath) {
|
|
222
|
-
const NormalizedModulePath = NormalizePathForComparison(ModulePath);
|
|
223
|
-
const SourceFile = Program
|
|
224
|
-
.getSourceFiles()
|
|
225
|
-
.find((CurrentSourceFile) => {
|
|
226
|
-
return NormalizePathForComparison(CurrentSourceFile.fileName) === NormalizedModulePath;
|
|
227
|
-
});
|
|
228
|
-
if (SourceFile === undefined) {
|
|
229
|
-
throw new Error(`Could not load source file "${ModulePath}".`);
|
|
230
|
-
}
|
|
231
|
-
return SourceFile;
|
|
232
|
-
}
|
|
233
|
-
function IsInterfaceExportedFromModule(Checker, SourceFile, InterfaceDeclaration) {
|
|
234
|
-
const ModuleSymbol = Checker.getSymbolAtLocation(SourceFile);
|
|
235
|
-
const InterfaceSymbol = Checker.getSymbolAtLocation(InterfaceDeclaration.name);
|
|
236
|
-
if (ModuleSymbol === undefined || InterfaceSymbol === undefined) {
|
|
237
|
-
return false;
|
|
238
|
-
}
|
|
239
|
-
const ExportSymbols = Checker.getExportsOfModule(ModuleSymbol);
|
|
240
|
-
return ExportSymbols.some((ExportSymbol) => {
|
|
241
|
-
const TargetSymbol = (ExportSymbol.flags & ts.SymbolFlags.Alias) !== 0
|
|
242
|
-
? Checker.getAliasedSymbol(ExportSymbol)
|
|
243
|
-
: ExportSymbol;
|
|
244
|
-
return TargetSymbol === InterfaceSymbol;
|
|
245
|
-
});
|
|
246
|
-
}
|
|
247
|
-
function GetExtendedBaseInterfaceNames(Checker, InterfaceDeclaration) {
|
|
248
|
-
const BaseInterfaceNames = new Set();
|
|
249
|
-
const ExtendsClauses = InterfaceDeclaration.heritageClauses?.filter((HeritageClause) => {
|
|
250
|
-
return HeritageClause.token === ts.SyntaxKind.ExtendsKeyword;
|
|
251
|
-
}) ?? [];
|
|
252
|
-
for (const ExtendsClause of ExtendsClauses) {
|
|
253
|
-
for (const HeritageType of ExtendsClause.types) {
|
|
254
|
-
let Symbol = Checker.getSymbolAtLocation(HeritageType.expression);
|
|
255
|
-
if (Symbol === undefined) {
|
|
256
|
-
continue;
|
|
257
|
-
}
|
|
258
|
-
if ((Symbol.flags & ts.SymbolFlags.Alias) !== 0) {
|
|
259
|
-
Symbol = Checker.getAliasedSymbol(Symbol);
|
|
260
|
-
}
|
|
261
|
-
BaseInterfaceNames.add(Symbol.getName());
|
|
262
|
-
}
|
|
263
|
-
}
|
|
264
|
-
return BaseInterfaceNames;
|
|
265
|
-
}
|
|
266
|
-
function GetExportedRegistrarInterfaceNames(ModulePath) {
|
|
267
|
-
const ResolvedModulePath = resolve(ModulePath);
|
|
268
|
-
const Program = ts.createProgram([ResolvedModulePath], {
|
|
269
|
-
jsx: ts.JsxEmit.ReactJSX,
|
|
270
|
-
module: ts.ModuleKind.NodeNext,
|
|
271
|
-
moduleResolution: ts.ModuleResolutionKind.NodeNext,
|
|
272
|
-
noEmit: true,
|
|
273
|
-
skipLibCheck: true,
|
|
274
|
-
target: ts.ScriptTarget.ESNext
|
|
275
|
-
});
|
|
276
|
-
const Checker = Program.getTypeChecker();
|
|
277
|
-
const SourceFile = GetSourceFileFromProgram(Program, ResolvedModulePath);
|
|
278
|
-
const MainNames = new Set();
|
|
279
|
-
const RendererNames = new Set();
|
|
280
|
-
for (const Statement of SourceFile.statements) {
|
|
281
|
-
if (!ts.isInterfaceDeclaration(Statement)) {
|
|
282
|
-
continue;
|
|
283
|
-
}
|
|
284
|
-
if (!IsInterfaceExportedFromModule(Checker, SourceFile, Statement)) {
|
|
285
|
-
continue;
|
|
286
|
-
}
|
|
287
|
-
const BaseInterfaceNames = GetExtendedBaseInterfaceNames(Checker, Statement);
|
|
288
|
-
if (BaseInterfaceNames.has("IMainRegistrarBase")) {
|
|
289
|
-
MainNames.add(Statement.name.text);
|
|
290
|
-
}
|
|
291
|
-
if (BaseInterfaceNames.has("IRendererRegistrarBase")) {
|
|
292
|
-
RendererNames.add(Statement.name.text);
|
|
293
|
-
}
|
|
294
|
-
}
|
|
295
|
-
return {
|
|
296
|
-
Main: [...MainNames],
|
|
297
|
-
Renderer: [...RendererNames]
|
|
298
|
-
};
|
|
299
|
-
}
|
|
300
|
-
export const GoBackChoice = "Choose another module (go back).";
|
|
301
|
-
export async function SelectInterfacesFromModule(Path, SelectedThusFar) {
|
|
302
|
-
const Interfaces = await GetExportedRegistrarInterfaceNames(Path);
|
|
303
|
-
const GetChoices = (Interfaces) => {
|
|
304
|
-
return [...Interfaces, GoBackChoice];
|
|
305
|
-
};
|
|
306
|
-
const Out = {
|
|
307
|
-
Main: undefined,
|
|
308
|
-
Renderer: undefined
|
|
309
|
-
};
|
|
310
|
-
const NoneFound = Interfaces.Main.length === 0 && Interfaces.Renderer.length === 0;
|
|
311
|
-
if (NoneFound) {
|
|
312
|
-
return Out;
|
|
313
|
-
}
|
|
314
|
-
const GetSelection = async (Owner) => {
|
|
315
|
-
if (Interfaces[Owner].length > 1) {
|
|
316
|
-
const choices = [...GetChoices(Interfaces[Owner]), GoBackChoice];
|
|
317
|
-
/* eslint-disable-next-line @stylistic/max-len */
|
|
318
|
-
const message = `There were ${Interfaces[Owner].length} interfaces found in the module that ${Code("extend IMainRegistrar")}.\nSelect the interface that you would like to use.`;
|
|
319
|
-
const Selection = await select({
|
|
320
|
-
choices,
|
|
321
|
-
loop: true,
|
|
322
|
-
message
|
|
323
|
-
});
|
|
324
|
-
return Selection;
|
|
325
|
-
}
|
|
326
|
-
else {
|
|
327
|
-
/* eslint-disable-next-line @stylistic/max-len */
|
|
328
|
-
const message = `The interface ${Code(Interfaces[Owner][0] || "")} is the only exported interface in ${Code(basename(Path))} that ${Code(`extends I${Owner}RegistrarBase`)}.\nUse this interface?`;
|
|
329
|
-
return (await confirm({ default: true, message }))
|
|
330
|
-
? Interfaces[Owner][0]
|
|
331
|
-
: GoBackChoice;
|
|
332
|
-
}
|
|
333
|
-
};
|
|
334
|
-
const PromptMainInterface = (Interfaces.Main.length > 0 &&
|
|
335
|
-
(SelectedThusFar === undefined ||
|
|
336
|
-
SelectedThusFar.Main === undefined ||
|
|
337
|
-
SelectedThusFar.Main === GoBackChoice));
|
|
338
|
-
if (PromptMainInterface) {
|
|
339
|
-
Out.Main = await GetSelection("Main");
|
|
340
|
-
}
|
|
341
|
-
const PromptRendererInterface = (Interfaces.Renderer.length > 0 &&
|
|
342
|
-
(SelectedThusFar === undefined ||
|
|
343
|
-
SelectedThusFar.Renderer === undefined ||
|
|
344
|
-
SelectedThusFar.Renderer === GoBackChoice));
|
|
345
|
-
if (PromptRendererInterface) {
|
|
346
|
-
Out.Renderer = await GetSelection("Renderer");
|
|
347
|
-
}
|
|
348
|
-
return Out;
|
|
349
|
-
}
|
|
350
7
|
//# sourceMappingURL=Select.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Select.js","sourceRoot":"","sources":["../Source/Select.ts"],"names":[],"mappings":"AAAA;;;;GAIG
|
|
1
|
+
{"version":3,"file":"Select.js","sourceRoot":"","sources":["../Source/Select.ts"],"names":[],"mappings":";AAAA;;;;GAIG"}
|