@odg/command 1.12.0 → 1.14.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/agents.md +334 -26
- package/dist/Generators/MakeFile.d.ts +46 -35
- package/dist/Generators/MakeFile.js +94 -52
- package/dist/Generators/MakeFile.js.map +1 -1
- package/dist/Generators/StubCreator.d.ts +1 -1
- package/dist/Generators/StubCreator.js +17 -42
- package/dist/Generators/StubCreator.js.map +1 -1
- package/dist/Registrations/pascal-to-dot-lower.d.ts +15 -0
- package/dist/Registrations/pascal-to-dot-lower.js +31 -0
- package/dist/Registrations/pascal-to-dot-lower.js.map +1 -0
- package/dist/Registrations/register.d.ts +2 -0
- package/dist/Registrations/register.js +215 -0
- package/dist/Registrations/register.js.map +1 -0
- package/dist/Registrations/ts-mutators.d.ts +40 -0
- package/dist/Registrations/ts-mutators.js +202 -0
- package/dist/Registrations/ts-mutators.js.map +1 -0
- package/dist/Registrations/types.d.ts +34 -0
- package/dist/Registrations/types.js +3 -0
- package/dist/Registrations/types.js.map +1 -0
- package/dist/index.js +79 -13
- package/dist/index.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +10 -9
- package/stubs/event.stub +7 -7
- package/stubs/handler.stub +11 -33
- package/stubs/page.stub +3 -23
- package/stubs/selector.stub +2 -0
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
export declare function ensureEnumMember(parameters: {
|
|
2
|
+
filePath: string;
|
|
3
|
+
enumName: string;
|
|
4
|
+
memberName: string;
|
|
5
|
+
memberValue?: string;
|
|
6
|
+
}): Promise<boolean>;
|
|
7
|
+
export declare function ensureBarrelExport(parameters: {
|
|
8
|
+
barrelPath: string;
|
|
9
|
+
relativeExportPath: string;
|
|
10
|
+
}): Promise<boolean>;
|
|
11
|
+
export declare function ensureTopLevelStatements(parameters: {
|
|
12
|
+
filePath: string;
|
|
13
|
+
statements: string[];
|
|
14
|
+
}): Promise<boolean>;
|
|
15
|
+
export declare function ensureInterfaceProperty(parameters: {
|
|
16
|
+
filePath: string;
|
|
17
|
+
interfaceName: string;
|
|
18
|
+
propertyName: string;
|
|
19
|
+
propertyType: string;
|
|
20
|
+
}): Promise<boolean>;
|
|
21
|
+
export declare function ensureEnvironmentExampleLines(parameters: {
|
|
22
|
+
filePath: string;
|
|
23
|
+
lines: string[];
|
|
24
|
+
}): Promise<boolean>;
|
|
25
|
+
export declare function ensureZodObjectEntry(parameters: {
|
|
26
|
+
filePath: string;
|
|
27
|
+
constName: string;
|
|
28
|
+
propertyName: string;
|
|
29
|
+
propertyValue: string;
|
|
30
|
+
}): Promise<boolean>;
|
|
31
|
+
export declare function ensureTypeNamedImport(parameters: {
|
|
32
|
+
filePath: string;
|
|
33
|
+
moduleSpecifier: string;
|
|
34
|
+
name: string;
|
|
35
|
+
}): Promise<boolean>;
|
|
36
|
+
export declare function ensureValueNamedImport(parameters: {
|
|
37
|
+
filePath: string;
|
|
38
|
+
moduleSpecifier: string;
|
|
39
|
+
name: string;
|
|
40
|
+
}): Promise<boolean>;
|
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ensureEnumMember = ensureEnumMember;
|
|
4
|
+
exports.ensureBarrelExport = ensureBarrelExport;
|
|
5
|
+
exports.ensureTopLevelStatements = ensureTopLevelStatements;
|
|
6
|
+
exports.ensureInterfaceProperty = ensureInterfaceProperty;
|
|
7
|
+
exports.ensureEnvironmentExampleLines = ensureEnvironmentExampleLines;
|
|
8
|
+
exports.ensureZodObjectEntry = ensureZodObjectEntry;
|
|
9
|
+
exports.ensureTypeNamedImport = ensureTypeNamedImport;
|
|
10
|
+
exports.ensureValueNamedImport = ensureValueNamedImport;
|
|
11
|
+
const exception_1 = require("@odg/exception");
|
|
12
|
+
const ts_morph_1 = require("ts-morph");
|
|
13
|
+
function createProject() {
|
|
14
|
+
return new ts_morph_1.Project({
|
|
15
|
+
manipulationSettings: {
|
|
16
|
+
quoteKind: ts_morph_1.QuoteKind.Double,
|
|
17
|
+
useTrailingCommas: true,
|
|
18
|
+
},
|
|
19
|
+
skipAddingFilesFromTsConfig: true,
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
function addSourceFile(project, filePath) {
|
|
23
|
+
return project.addSourceFileAtPathIfExists(filePath)
|
|
24
|
+
?? project.createSourceFile(filePath, "", { scriptKind: ts_morph_1.ScriptKind.TS, overwrite: false });
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Collapses duplicate commas that ts-morph can emit when appending enum members
|
|
28
|
+
* (e.g. after trailing commas and section comments).
|
|
29
|
+
*
|
|
30
|
+
* @param {string} source Full source text
|
|
31
|
+
* @returns {string} Source with adjacent duplicate commas normalized
|
|
32
|
+
*/
|
|
33
|
+
function collapseAdjacentDuplicateCommas(source) {
|
|
34
|
+
let result = source;
|
|
35
|
+
let previous = "";
|
|
36
|
+
while (result !== previous) {
|
|
37
|
+
previous = result;
|
|
38
|
+
result = result.replaceAll(/,\s*,/g, ",");
|
|
39
|
+
}
|
|
40
|
+
return result;
|
|
41
|
+
}
|
|
42
|
+
function appendNamedImport(importDeclaration, name) {
|
|
43
|
+
const hasNamed = importDeclaration.getNamedImports().some((named) => named.getName() === name);
|
|
44
|
+
if (hasNamed) {
|
|
45
|
+
return false;
|
|
46
|
+
}
|
|
47
|
+
importDeclaration.addNamedImport({ name });
|
|
48
|
+
return true;
|
|
49
|
+
}
|
|
50
|
+
function mutateNamedImport(sourceFile, moduleSpecifier, name, isTypeOnly) {
|
|
51
|
+
const importDeclaration = sourceFile.getImportDeclarations().find((declaration) => declaration.getModuleSpecifierValue() === moduleSpecifier
|
|
52
|
+
&& declaration.isTypeOnly() === isTypeOnly);
|
|
53
|
+
if (importDeclaration) {
|
|
54
|
+
return appendNamedImport(importDeclaration, name);
|
|
55
|
+
}
|
|
56
|
+
sourceFile.addImportDeclaration({
|
|
57
|
+
isTypeOnly,
|
|
58
|
+
namedImports: [{ name }],
|
|
59
|
+
moduleSpecifier,
|
|
60
|
+
});
|
|
61
|
+
return true;
|
|
62
|
+
}
|
|
63
|
+
async function commitNamedImport(parameters, isTypeOnly) {
|
|
64
|
+
const project = createProject();
|
|
65
|
+
const sourceFile = addSourceFile(project, parameters.filePath);
|
|
66
|
+
if (!mutateNamedImport(sourceFile, parameters.moduleSpecifier, parameters.name, isTypeOnly)) {
|
|
67
|
+
return false;
|
|
68
|
+
}
|
|
69
|
+
await sourceFile.save();
|
|
70
|
+
return true;
|
|
71
|
+
}
|
|
72
|
+
function resolveZodObjectLiteral(parameters, sourceFile) {
|
|
73
|
+
const variableDeclaration = sourceFile
|
|
74
|
+
.getVariableDeclarations()
|
|
75
|
+
.find((declaration) => declaration.getName() === parameters.constName);
|
|
76
|
+
if (!variableDeclaration) {
|
|
77
|
+
throw new exception_1.InvalidArgumentException(`Const "${parameters.constName}" not found in ${parameters.filePath}`);
|
|
78
|
+
}
|
|
79
|
+
const initializer = variableDeclaration.getInitializer();
|
|
80
|
+
if (!initializer || !ts_morph_1.Node.isCallExpression(initializer)) {
|
|
81
|
+
throw new exception_1.InvalidArgumentException(`"${parameters.constName}" initializer is not a call expression`);
|
|
82
|
+
}
|
|
83
|
+
const [firstArgument] = initializer.getArguments();
|
|
84
|
+
if (!ts_morph_1.Node.isObjectLiteralExpression(firstArgument)) {
|
|
85
|
+
throw new exception_1.InvalidArgumentException(`"${parameters.constName}" first argument is not an object literal`);
|
|
86
|
+
}
|
|
87
|
+
return firstArgument;
|
|
88
|
+
}
|
|
89
|
+
function hasObjectPropertyByNamePrefix(objectLiteral, propertyName) {
|
|
90
|
+
return objectLiteral.getProperties().some((property) => property.getText().startsWith(propertyName));
|
|
91
|
+
}
|
|
92
|
+
async function ensureEnumMember(parameters) {
|
|
93
|
+
const project = createProject();
|
|
94
|
+
const sourceFile = addSourceFile(project, parameters.filePath);
|
|
95
|
+
const enumDeclaration = sourceFile.getEnum(parameters.enumName);
|
|
96
|
+
if (!enumDeclaration) {
|
|
97
|
+
throw new exception_1.InvalidArgumentException(`Enum "${parameters.enumName}" not found in ${parameters.filePath}`);
|
|
98
|
+
}
|
|
99
|
+
const existing = enumDeclaration.getMembers().some((member) => {
|
|
100
|
+
const memberName = member.getName().split("\"").join("");
|
|
101
|
+
return memberName === parameters.memberName;
|
|
102
|
+
});
|
|
103
|
+
if (existing) {
|
|
104
|
+
return false;
|
|
105
|
+
}
|
|
106
|
+
enumDeclaration.addMember({
|
|
107
|
+
name: `"${parameters.memberName}"`,
|
|
108
|
+
initializer: `"${parameters.memberValue ?? parameters.memberName}"`,
|
|
109
|
+
});
|
|
110
|
+
sourceFile.replaceWithText(collapseAdjacentDuplicateCommas(sourceFile.getFullText()));
|
|
111
|
+
await sourceFile.save();
|
|
112
|
+
return true;
|
|
113
|
+
}
|
|
114
|
+
async function ensureBarrelExport(parameters) {
|
|
115
|
+
const project = createProject();
|
|
116
|
+
const sourceFile = addSourceFile(project, parameters.barrelPath);
|
|
117
|
+
const normalized = parameters.relativeExportPath.startsWith("./")
|
|
118
|
+
? parameters.relativeExportPath
|
|
119
|
+
: `./${parameters.relativeExportPath}`;
|
|
120
|
+
// eslint-disable-next-line @stylistic/max-len
|
|
121
|
+
const already = sourceFile.getExportDeclarations().some((declaration) => declaration.getModuleSpecifierValue() === normalized);
|
|
122
|
+
if (already) {
|
|
123
|
+
return false;
|
|
124
|
+
}
|
|
125
|
+
sourceFile.addExportDeclaration({
|
|
126
|
+
moduleSpecifier: normalized,
|
|
127
|
+
isTypeOnly: false,
|
|
128
|
+
});
|
|
129
|
+
await sourceFile.save();
|
|
130
|
+
return true;
|
|
131
|
+
}
|
|
132
|
+
async function ensureTopLevelStatements(parameters) {
|
|
133
|
+
if (parameters.statements.length === 0) {
|
|
134
|
+
return false;
|
|
135
|
+
}
|
|
136
|
+
const project = createProject();
|
|
137
|
+
const sourceFile = addSourceFile(project, parameters.filePath);
|
|
138
|
+
const text = sourceFile.getFullText();
|
|
139
|
+
const toAdd = parameters.statements.filter((statement) => !text.includes(statement));
|
|
140
|
+
if (toAdd.length === 0) {
|
|
141
|
+
return false;
|
|
142
|
+
}
|
|
143
|
+
sourceFile.insertStatements(0, `${toAdd.join("\n")}\n`);
|
|
144
|
+
await sourceFile.save();
|
|
145
|
+
return true;
|
|
146
|
+
}
|
|
147
|
+
async function ensureInterfaceProperty(parameters) {
|
|
148
|
+
const project = createProject();
|
|
149
|
+
const sourceFile = addSourceFile(project, parameters.filePath);
|
|
150
|
+
const iface = sourceFile.getInterface(parameters.interfaceName);
|
|
151
|
+
if (!iface) {
|
|
152
|
+
throw new exception_1.InvalidArgumentException(`Interface "${parameters.interfaceName}" not found in ${parameters.filePath}`);
|
|
153
|
+
}
|
|
154
|
+
const exists = iface.getProperties().some((property) => property.getName() === parameters.propertyName);
|
|
155
|
+
if (exists) {
|
|
156
|
+
return false;
|
|
157
|
+
}
|
|
158
|
+
iface.addProperty({
|
|
159
|
+
name: parameters.propertyName,
|
|
160
|
+
type: parameters.propertyType,
|
|
161
|
+
hasQuestionToken: false,
|
|
162
|
+
});
|
|
163
|
+
await sourceFile.save();
|
|
164
|
+
return true;
|
|
165
|
+
}
|
|
166
|
+
async function ensureEnvironmentExampleLines(parameters) {
|
|
167
|
+
const project = createProject();
|
|
168
|
+
const sourceFile = addSourceFile(project, parameters.filePath);
|
|
169
|
+
/**
|
|
170
|
+
* This file can be non-TS; we treat it as raw text but keep a single write path.
|
|
171
|
+
*/
|
|
172
|
+
const existing = sourceFile.getFullText();
|
|
173
|
+
const missing = parameters.lines.filter((line) => !existing.includes(line));
|
|
174
|
+
if (missing.length === 0) {
|
|
175
|
+
return false;
|
|
176
|
+
}
|
|
177
|
+
const insertNewline = existing.endsWith("\n") || existing.length === 0 ? "" : "\n";
|
|
178
|
+
sourceFile.replaceWithText(`${existing}${insertNewline}${missing.join("\n")}\n`);
|
|
179
|
+
await sourceFile.save();
|
|
180
|
+
return true;
|
|
181
|
+
}
|
|
182
|
+
async function ensureZodObjectEntry(parameters) {
|
|
183
|
+
const project = createProject();
|
|
184
|
+
const sourceFile = addSourceFile(project, parameters.filePath);
|
|
185
|
+
const zodObjectLiteral = resolveZodObjectLiteral(parameters, sourceFile);
|
|
186
|
+
if (hasObjectPropertyByNamePrefix(zodObjectLiteral, parameters.propertyName)) {
|
|
187
|
+
return false;
|
|
188
|
+
}
|
|
189
|
+
zodObjectLiteral.addPropertyAssignment({
|
|
190
|
+
name: parameters.propertyName,
|
|
191
|
+
initializer: parameters.propertyValue,
|
|
192
|
+
});
|
|
193
|
+
await sourceFile.save();
|
|
194
|
+
return true;
|
|
195
|
+
}
|
|
196
|
+
async function ensureTypeNamedImport(parameters) {
|
|
197
|
+
return commitNamedImport(parameters, true);
|
|
198
|
+
}
|
|
199
|
+
async function ensureValueNamedImport(parameters) {
|
|
200
|
+
return commitNamedImport(parameters, false);
|
|
201
|
+
}
|
|
202
|
+
//# sourceMappingURL=ts-mutators.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ts-mutators.js","sourceRoot":"","sources":["../../src/Registrations/ts-mutators.ts"],"names":[],"mappings":";;AAuIA,4CAkCC;AAED,gDA0BC;AAED,4DAsBC;AAED,0DA8BC;AAED,sEAuBC;AAED,oDAuBC;AAED,sDAMC;AAED,wDAMC;AA/TD,8CAA0D;AAC1D,uCAQkB;AAElB,SAAS,aAAa;IAClB,OAAO,IAAI,kBAAO,CAAC;QACf,oBAAoB,EAAE;YAClB,SAAS,EAAE,oBAAS,CAAC,MAAM;YAC3B,iBAAiB,EAAE,IAAI;SAC1B;QACD,2BAA2B,EAAE,IAAI;KACpC,CAAC,CAAC;AACP,CAAC;AAED,SAAS,aAAa,CAAC,OAAgB,EAAE,QAAgB;IACrD,OAAO,OAAO,CAAC,2BAA2B,CAAC,QAAQ,CAAC;WAC7C,OAAO,CAAC,gBAAgB,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,qBAAU,CAAC,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;AACnG,CAAC;AAED;;;;;;GAMG;AACH,SAAS,+BAA+B,CAAC,MAAc;IACnD,IAAI,MAAM,GAAG,MAAM,CAAC;IACpB,IAAI,QAAQ,GAAG,EAAE,CAAC;IAElB,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QACzB,QAAQ,GAAG,MAAM,CAAC;QAClB,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IAC9C,CAAC;IAED,OAAO,MAAM,CAAC;AAClB,CAAC;AAED,SAAS,iBAAiB,CAAC,iBAAoC,EAAE,IAAY;IACzE,MAAM,QAAQ,GAAG,iBAAiB,CAAC,eAAe,EAAE,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,IAAI,CAAC,CAAC;IAE/F,IAAI,QAAQ,EAAE,CAAC;QACX,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,iBAAiB,CAAC,cAAc,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;IAE3C,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,SAAS,iBAAiB,CACtB,UAAsB,EACtB,eAAuB,EACvB,IAAY,EACZ,UAAmB;IAEnB,MAAM,iBAAiB,GAAG,UAAU,CAAC,qBAAqB,EAAE,CAAC,IAAI,CAC7D,CAAC,WAAW,EAAE,EAAE,CAAC,WAAW,CAAC,uBAAuB,EAAE,KAAK,eAAe;WACnE,WAAW,CAAC,UAAU,EAAE,KAAK,UAAU,CACjD,CAAC;IAEF,IAAI,iBAAiB,EAAE,CAAC;QACpB,OAAO,iBAAiB,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAC;IACtD,CAAC;IAED,UAAU,CAAC,oBAAoB,CAAC;QAC5B,UAAU;QACV,YAAY,EAAE,CAAE,EAAE,IAAI,EAAE,CAAE;QAC1B,eAAe;KAClB,CAAC,CAAC;IAEH,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,KAAK,UAAU,iBAAiB,CAAC,UAIhC,EAAE,UAAmB;IAClB,MAAM,OAAO,GAAG,aAAa,EAAE,CAAC;IAChC,MAAM,UAAU,GAAG,aAAa,CAAC,OAAO,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;IAE/D,IAAI,CAAC,iBAAiB,CAAC,UAAU,EAAE,UAAU,CAAC,eAAe,EAAE,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,EAAE,CAAC;QAC1F,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,MAAM,UAAU,CAAC,IAAI,EAAE,CAAC;IAExB,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,SAAS,uBAAuB,CAC5B,UAGC,EACD,UAAsB;IAEtB,MAAM,mBAAmB,GAAG,UAAU;SACjC,uBAAuB,EAAE;SACzB,IAAI,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,WAAW,CAAC,OAAO,EAAE,KAAK,UAAU,CAAC,SAAS,CAAC,CAAC;IAE3E,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACvB,MAAM,IAAI,oCAAwB,CAAC,UAAU,UAAU,CAAC,SAAS,kBAAkB,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC9G,CAAC;IAED,MAAM,WAAW,GAAG,mBAAmB,CAAC,cAAc,EAAE,CAAC;IAEzD,IAAI,CAAC,WAAW,IAAI,CAAC,eAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,EAAE,CAAC;QACtD,MAAM,IAAI,oCAAwB,CAAC,IAAI,UAAU,CAAC,SAAS,wCAAwC,CAAC,CAAC;IACzG,CAAC;IAED,MAAM,CAAE,aAAa,CAAE,GAAG,WAAW,CAAC,YAAY,EAAE,CAAC;IAErD,IAAI,CAAC,eAAI,CAAC,yBAAyB,CAAC,aAAa,CAAC,EAAE,CAAC;QACjD,MAAM,IAAI,oCAAwB,CAAC,IAAI,UAAU,CAAC,SAAS,2CAA2C,CAAC,CAAC;IAC5G,CAAC;IAED,OAAO,aAAa,CAAC;AACzB,CAAC;AAED,SAAS,6BAA6B,CAClC,aAAsC,EACtC,YAAoB;IAEpB,OAAO,aAAa,CAAC,aAAa,EAAE,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC;AACzG,CAAC;AAEM,KAAK,UAAU,gBAAgB,CAAC,UAKtC;IACG,MAAM,OAAO,GAAG,aAAa,EAAE,CAAC;IAChC,MAAM,UAAU,GAAG,aAAa,CAAC,OAAO,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;IAE/D,MAAM,eAAe,GAAG,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IAEhE,IAAI,CAAC,eAAe,EAAE,CAAC;QACnB,MAAM,IAAI,oCAAwB,CAAC,SAAS,UAAU,CAAC,QAAQ,kBAAkB,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC5G,CAAC;IAED,MAAM,QAAQ,GAAG,eAAe,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;QAC1D,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEzD,OAAO,UAAU,KAAK,UAAU,CAAC,UAAU,CAAC;IAChD,CAAC,CAAC,CAAC;IAEH,IAAI,QAAQ,EAAE,CAAC;QACX,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,eAAe,CAAC,SAAS,CAAC;QACtB,IAAI,EAAE,IAAI,UAAU,CAAC,UAAU,GAAG;QAClC,WAAW,EAAE,IAAI,UAAU,CAAC,WAAW,IAAI,UAAU,CAAC,UAAU,GAAG;KACtE,CAAC,CAAC;IAEH,UAAU,CAAC,eAAe,CAAC,+BAA+B,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IACtF,MAAM,UAAU,CAAC,IAAI,EAAE,CAAC;IAExB,OAAO,IAAI,CAAC;AAChB,CAAC;AAEM,KAAK,UAAU,kBAAkB,CAAC,UAGxC;IACG,MAAM,OAAO,GAAG,aAAa,EAAE,CAAC;IAChC,MAAM,UAAU,GAAG,aAAa,CAAC,OAAO,EAAE,UAAU,CAAC,UAAU,CAAC,CAAC;IAEjE,MAAM,UAAU,GAAG,UAAU,CAAC,kBAAkB,CAAC,UAAU,CAAC,IAAI,CAAC;QAC7D,CAAC,CAAC,UAAU,CAAC,kBAAkB;QAC/B,CAAC,CAAC,KAAK,UAAU,CAAC,kBAAkB,EAAE,CAAC;IAE3C,8CAA8C;IAC9C,MAAM,OAAO,GAAG,UAAU,CAAC,qBAAqB,EAAE,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,WAAW,CAAC,uBAAuB,EAAE,KAAK,UAAU,CAAC,CAAC;IAE/H,IAAI,OAAO,EAAE,CAAC;QACV,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,UAAU,CAAC,oBAAoB,CAAC;QAC5B,eAAe,EAAE,UAAU;QAC3B,UAAU,EAAE,KAAK;KACpB,CAAC,CAAC;IAEH,MAAM,UAAU,CAAC,IAAI,EAAE,CAAC;IAExB,OAAO,IAAI,CAAC;AAChB,CAAC;AAEM,KAAK,UAAU,wBAAwB,CAAC,UAG9C;IACG,IAAI,UAAU,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrC,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,MAAM,OAAO,GAAG,aAAa,EAAE,CAAC;IAChC,MAAM,UAAU,GAAG,aAAa,CAAC,OAAO,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;IAE/D,MAAM,IAAI,GAAG,UAAU,CAAC,WAAW,EAAE,CAAC;IACtC,MAAM,KAAK,GAAG,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;IAErF,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrB,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,UAAU,CAAC,gBAAgB,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACxD,MAAM,UAAU,CAAC,IAAI,EAAE,CAAC;IAExB,OAAO,IAAI,CAAC;AAChB,CAAC;AAEM,KAAK,UAAU,uBAAuB,CAAC,UAK7C;IACG,MAAM,OAAO,GAAG,aAAa,EAAE,CAAC;IAChC,MAAM,UAAU,GAAG,aAAa,CAAC,OAAO,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;IAE/D,MAAM,KAAK,GAAG,UAAU,CAAC,YAAY,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;IAEhE,IAAI,CAAC,KAAK,EAAE,CAAC;QACT,MAAM,IAAI,oCAAwB,CAAC,cAAc,UAAU,CAAC,aAAa,kBAAkB,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;IACtH,CAAC;IAED,MAAM,MAAM,GAAG,KAAK,CAAC,aAAa,EAAE,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,UAAU,CAAC,YAAY,CAAC,CAAC;IAExG,IAAI,MAAM,EAAE,CAAC;QACT,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,WAAW,CAAC;QACd,IAAI,EAAE,UAAU,CAAC,YAAY;QAC7B,IAAI,EAAE,UAAU,CAAC,YAAY;QAC7B,gBAAgB,EAAE,KAAK;KAC1B,CAAC,CAAC;IAEH,MAAM,UAAU,CAAC,IAAI,EAAE,CAAC;IAExB,OAAO,IAAI,CAAC;AAChB,CAAC;AAEM,KAAK,UAAU,6BAA6B,CAAC,UAGnD;IACG,MAAM,OAAO,GAAG,aAAa,EAAE,CAAC;IAChC,MAAM,UAAU,GAAG,aAAa,CAAC,OAAO,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;IAE/D;;OAEG;IACH,MAAM,QAAQ,GAAG,UAAU,CAAC,WAAW,EAAE,CAAC;IAC1C,MAAM,OAAO,GAAG,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;IAE5E,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,MAAM,aAAa,GAAG,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAEnF,UAAU,CAAC,eAAe,CAAC,GAAG,QAAQ,GAAG,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjF,MAAM,UAAU,CAAC,IAAI,EAAE,CAAC;IAExB,OAAO,IAAI,CAAC;AAChB,CAAC;AAEM,KAAK,UAAU,oBAAoB,CAAC,UAK1C;IACG,MAAM,OAAO,GAAG,aAAa,EAAE,CAAC;IAChC,MAAM,UAAU,GAAG,aAAa,CAAC,OAAO,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;IAE/D,MAAM,gBAAgB,GAAG,uBAAuB,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;IAEzE,IAAI,6BAA6B,CAAC,gBAAgB,EAAE,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QAC3E,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,gBAAgB,CAAC,qBAAqB,CAAC;QACnC,IAAI,EAAE,UAAU,CAAC,YAAY;QAC7B,WAAW,EAAE,UAAU,CAAC,aAAa;KACxC,CAAC,CAAC;IAEH,MAAM,UAAU,CAAC,IAAI,EAAE,CAAC;IAExB,OAAO,IAAI,CAAC;AAChB,CAAC;AAEM,KAAK,UAAU,qBAAqB,CAAC,UAI3C;IACG,OAAO,iBAAiB,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;AAC/C,CAAC;AAEM,KAAK,UAAU,sBAAsB,CAAC,UAI5C;IACG,OAAO,iBAAiB,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;AAChD,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
export type ArtifactKind = "config" | "event" | "handler" | "page" | "selector";
|
|
2
|
+
export interface RegistrationTargets {
|
|
3
|
+
enabled: boolean;
|
|
4
|
+
containerEnumPath?: string;
|
|
5
|
+
eventEnumPath?: string;
|
|
6
|
+
configEnumPath?: string;
|
|
7
|
+
containerInterfacePath?: string;
|
|
8
|
+
eventsInterfacePath?: string;
|
|
9
|
+
pagesIndexPath?: string;
|
|
10
|
+
selectorsIndexPath?: string;
|
|
11
|
+
handlersIndexPath?: string;
|
|
12
|
+
listenersIndexPath?: string;
|
|
13
|
+
envExamplePath?: string;
|
|
14
|
+
/** Path to the file containing `configValidator = zod.object({...})` to mutate. */
|
|
15
|
+
configValidatorPath?: string;
|
|
16
|
+
eventPayloadType?: string;
|
|
17
|
+
typeImports?: string[];
|
|
18
|
+
/** Overrides ContainerName enum value for event/listener registration (default: dot.lower from class name). */
|
|
19
|
+
containerEnumMemberValue?: string;
|
|
20
|
+
}
|
|
21
|
+
export interface ArtifactDescriptor {
|
|
22
|
+
kind: ArtifactKind;
|
|
23
|
+
name: string;
|
|
24
|
+
pageClassName?: string;
|
|
25
|
+
selectorClassName?: string;
|
|
26
|
+
handlerClassName?: string;
|
|
27
|
+
eventEnumMember?: string;
|
|
28
|
+
listenerClassName?: string;
|
|
29
|
+
containerEnumMember?: string;
|
|
30
|
+
filePath?: string;
|
|
31
|
+
configEnumMembers?: string[];
|
|
32
|
+
envExampleLines?: string[];
|
|
33
|
+
configValidatorType?: string;
|
|
34
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/Registrations/types.ts"],"names":[],"mappings":""}
|
package/dist/index.js
CHANGED
|
@@ -8,55 +8,121 @@ const commander_1 = require("commander");
|
|
|
8
8
|
const MakeFile_1 = __importDefault(require("./Generators/MakeFile"));
|
|
9
9
|
const make = new MakeFile_1.default(new log_1.ConsoleLogger());
|
|
10
10
|
const pathOption = "-p, --path <path>";
|
|
11
|
+
function collect(value, previous = []) {
|
|
12
|
+
return [...previous, value];
|
|
13
|
+
}
|
|
14
|
+
const commandPathsDefaults = {
|
|
15
|
+
pages: "./src/Pages/",
|
|
16
|
+
selectors: "./src/Selectors/",
|
|
17
|
+
handlers: "./src/Handlers/",
|
|
18
|
+
listeners: "./src/app/Listeners/",
|
|
19
|
+
exceptions: "./src/Exceptions/",
|
|
20
|
+
};
|
|
21
|
+
const registrationDefaults = {
|
|
22
|
+
register: false,
|
|
23
|
+
containerEnumPath: "./src/app/Enums/ContainerName.ts",
|
|
24
|
+
eventEnumPath: "./src/app/Enums/EventName.ts",
|
|
25
|
+
configEnumPath: "./src/app/Enums/ConfigName.ts",
|
|
26
|
+
containerInterfacePath: "./@types/ContainerInterface.d.ts",
|
|
27
|
+
eventsInterfacePath: "./@types/EventsInterface.d.ts",
|
|
28
|
+
pagesIndexPath: "./src/Pages/index.ts",
|
|
29
|
+
selectorsIndexPath: "./src/Selectors/index.ts",
|
|
30
|
+
handlersIndexPath: "./src/Handlers/index.ts",
|
|
31
|
+
listenersIndexPath: "./src/app/Listeners/index.ts",
|
|
32
|
+
envExamplePath: "./.env.example",
|
|
33
|
+
eventPayloadType: "EventBrowserParameters",
|
|
34
|
+
};
|
|
11
35
|
commander_1.program
|
|
12
36
|
.command("make:page")
|
|
13
37
|
.name("make:page")
|
|
14
38
|
.argument("<pageName>", "page name create")
|
|
15
|
-
.option(pathOption, "Destination Page Path",
|
|
39
|
+
.option(pathOption, "Destination Page Path", commandPathsDefaults.pages)
|
|
16
40
|
.option("-s, --selectors", "Create Selectors", false)
|
|
17
|
-
.option("--selectorPath", "Selector Path",
|
|
41
|
+
.option("--selectorPath <selectorPath>", "Selector Path", commandPathsDefaults.selectors)
|
|
18
42
|
.option("-e, --event", "Create Event", false)
|
|
19
|
-
.option("--eventPath", "Event Path",
|
|
20
|
-
.option("--handlerPath", "Handler Path",
|
|
43
|
+
.option("--eventPath <eventPath>", "Event Path", commandPathsDefaults.listeners)
|
|
44
|
+
.option("--handlerPath <handlerPath>", "Handler Path", commandPathsDefaults.handlers)
|
|
21
45
|
.option("--handler-from <handlerFrom>", "Use If Handler From")
|
|
22
46
|
.option("--handler-to <handlerTo>", "Use if Handler To")
|
|
47
|
+
.option("--register", "Enable post-scaffold registration (Container, barrels, events, etc.)", registrationDefaults.register)
|
|
48
|
+
.option("--containerEnumPath <containerEnumPath>", "Container enum path", registrationDefaults.containerEnumPath)
|
|
49
|
+
.option("--eventEnumPath <eventEnumPath>", "EventName enum path", registrationDefaults.eventEnumPath)
|
|
50
|
+
.option("--configEnumPath <configEnumPath>", "ConfigName enum path", registrationDefaults.configEnumPath)
|
|
51
|
+
.option("--containerInterfacePath <containerInterfacePath>", "ContainerInterface path", registrationDefaults.containerInterfacePath)
|
|
52
|
+
.option("--eventsInterfacePath <eventsInterfacePath>", "EventsInterface path", registrationDefaults.eventsInterfacePath)
|
|
53
|
+
.option("--pagesIndexPath <pagesIndexPath>", "Pages barrel path", registrationDefaults.pagesIndexPath)
|
|
54
|
+
.option("--selectorsIndexPath <selectorsIndexPath>", "Selectors barrel path", registrationDefaults.selectorsIndexPath)
|
|
55
|
+
.option("--handlersIndexPath <handlersIndexPath>", "Handlers barrel path", registrationDefaults.handlersIndexPath)
|
|
56
|
+
.option("--listenersIndexPath <listenersIndexPath>", "Listeners barrel path", registrationDefaults.listenersIndexPath)
|
|
57
|
+
.option("--envExamplePath <envExamplePath>", ".env.example path", registrationDefaults.envExamplePath)
|
|
58
|
+
.option("--typeImport <statement>", "Explicit import statement to insert (repeatable)", collect, [])
|
|
59
|
+
.option("--eventPayloadType <type>", "EventsInterface payload type", registrationDefaults.eventPayloadType)
|
|
23
60
|
.description("Test command description")
|
|
24
61
|
.version("0.1.1")
|
|
25
|
-
.action(make.makePage
|
|
62
|
+
.action(async (pageName, options) => make.makePage(pageName, options));
|
|
26
63
|
commander_1.program
|
|
27
64
|
.command("make:selector")
|
|
28
65
|
.name("make:selector")
|
|
29
66
|
.argument("<selectorName>", "selector of page name")
|
|
30
|
-
.option(pathOption, "Destination Selector Path",
|
|
67
|
+
.option(pathOption, "Destination Selector Path", commandPathsDefaults.selectors)
|
|
68
|
+
.option("--register", "Enable post-scaffold registration (Container, barrels, etc.)", registrationDefaults.register)
|
|
69
|
+
.option("--selectorsIndexPath <selectorsIndexPath>", "Selectors barrel path", registrationDefaults.selectorsIndexPath)
|
|
70
|
+
.option("--typeImport <statement>", "Explicit import statement to insert (repeatable)", collect, [])
|
|
31
71
|
.description("Test command description")
|
|
32
72
|
.version("0.1.1")
|
|
33
|
-
.action(make.makeSelectors
|
|
73
|
+
.action(async (selectorName, options) => make.makeSelectors(selectorName, options));
|
|
34
74
|
commander_1.program
|
|
35
75
|
.command("make:handler")
|
|
36
76
|
.name("make:handler")
|
|
37
77
|
.argument("<handlerName>", "selector of page name")
|
|
38
78
|
.option("--handler-from <handlerFrom>", "handler source page")
|
|
39
79
|
.option("--handler-to <handlerTo>", "handler destination page")
|
|
40
|
-
.option(pathOption, "Destination Path",
|
|
80
|
+
.option(pathOption, "Destination Path", commandPathsDefaults.handlers)
|
|
81
|
+
.option("--register", "Enable post-scaffold registration", registrationDefaults.register)
|
|
82
|
+
.option("--containerEnumPath <containerEnumPath>", "ContainerName enum path", registrationDefaults.containerEnumPath)
|
|
83
|
+
.option("--containerInterfacePath <containerInterfacePath>", "ContainerInterface path", registrationDefaults.containerInterfacePath)
|
|
84
|
+
.option("--handlersIndexPath <handlersIndexPath>", "Handlers barrel path", registrationDefaults.handlersIndexPath)
|
|
85
|
+
.option("--typeImport <statement>", "Explicit import statement to insert (repeatable)", collect, [])
|
|
41
86
|
.description("Make Handler file")
|
|
42
87
|
.version("0.1.1")
|
|
43
|
-
.action(make.makeHandler
|
|
88
|
+
.action(async (handlerName, options) => make.makeHandler(handlerName, options));
|
|
44
89
|
commander_1.program
|
|
45
90
|
.command("make:event")
|
|
46
91
|
.name("make:event")
|
|
47
92
|
.argument("<eventName>", "EventName")
|
|
48
|
-
.option(pathOption, "Destination EventListener Path",
|
|
93
|
+
.option(pathOption, "Destination EventListener Path", commandPathsDefaults.listeners)
|
|
94
|
+
.option("--register", "Enable post-scaffold registration (Container, barrels, etc.)", registrationDefaults.register)
|
|
95
|
+
.option("--containerEnumPath <containerEnumPath>", "ContainerName enum path", registrationDefaults.containerEnumPath)
|
|
96
|
+
.option("--eventEnumPath <eventEnumPath>", "EventName enum path", registrationDefaults.eventEnumPath)
|
|
97
|
+
.option("--containerInterfacePath <containerInterfacePath>", "ContainerInterface path", registrationDefaults.containerInterfacePath)
|
|
98
|
+
.option("--eventsInterfacePath <eventsInterfacePath>", "EventsInterface path", registrationDefaults.eventsInterfacePath)
|
|
99
|
+
.option("--listenersIndexPath <listenersIndexPath>", "Listeners barrel path", registrationDefaults.listenersIndexPath)
|
|
100
|
+
.option("--typeImport <statement>", "Explicit import statement to insert (repeatable)", collect, [])
|
|
101
|
+
.option("--eventPayloadType <type>", "EventsInterface payload type", registrationDefaults.eventPayloadType)
|
|
49
102
|
.description("Create EventListener file example")
|
|
50
103
|
.version("0.1.1")
|
|
51
|
-
.action(make.makeEvent
|
|
104
|
+
.action(async (eventName, options) => make.makeEvent(eventName, options));
|
|
105
|
+
commander_1.program
|
|
106
|
+
.command("make:config")
|
|
107
|
+
.name("make:config")
|
|
108
|
+
.argument("<configName>", "Config key name (PascalCase, converted to CONST_CASE automatically)")
|
|
109
|
+
.option("-v, --validator <validator>", "Zod validator expression", "zod.string()")
|
|
110
|
+
.option("--register", "Enable post-scaffold registration (ConfigName enum + .env.example)", registrationDefaults.register)
|
|
111
|
+
.option("--configEnumPath <configEnumPath>", "ConfigName enum path", registrationDefaults.configEnumPath)
|
|
112
|
+
.option("--configValidatorPath <configValidatorPath>", "Path to file with configValidator = zod.object({...})", "./src/Configs/index.ts")
|
|
113
|
+
.option("--envExamplePath <envExamplePath>", ".env.example path", registrationDefaults.envExamplePath)
|
|
114
|
+
.option("--typeImport <statement>", "Explicit import statement to insert (repeatable)", collect, [])
|
|
115
|
+
.description("Register a new config entry in ConfigName enum, configValidator object and .env.example")
|
|
116
|
+
.version("0.1.1")
|
|
117
|
+
.action(async (configName, options) => make.makeConfig(configName, options));
|
|
52
118
|
commander_1.program
|
|
53
119
|
.command("make:exception")
|
|
54
120
|
.name("make:exception")
|
|
55
121
|
.argument("<exceptionName>", "ExceptionName")
|
|
56
122
|
.option("-u, --isUnknown", "UnknownException", false)
|
|
57
|
-
.option(pathOption, "Destination Exception Path",
|
|
123
|
+
.option(pathOption, "Destination Exception Path", commandPathsDefaults.exceptions)
|
|
58
124
|
.description("Create Exception file example")
|
|
59
125
|
.version("0.1.1")
|
|
60
|
-
.action(make.makeException
|
|
126
|
+
.action(async (exceptionName, options) => make.makeException(exceptionName, options));
|
|
61
127
|
commander_1.program.parse();
|
|
62
128
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;AAAA,kCAAyC;AACzC,yCAAoC;AAEpC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|