@odg/command 1.13.0 → 1.15.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 +148 -44
- package/dist/Generators/MakeFile.d.ts +56 -37
- package/dist/Generators/MakeFile.d.ts.map +1 -0
- package/dist/Generators/MakeFile.js +132 -66
- package/dist/Generators/MakeFile.js.map +1 -1
- package/dist/Generators/StubCreator.d.ts +2 -1
- package/dist/Generators/StubCreator.d.ts.map +1 -0
- package/dist/Generators/StubCreator.js +17 -42
- package/dist/Generators/StubCreator.js.map +1 -1
- package/dist/Registrations/pascal-to-dot-lower.d.ts +16 -0
- package/dist/Registrations/pascal-to-dot-lower.d.ts.map +1 -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 +3 -0
- package/dist/Registrations/register.d.ts.map +1 -0
- package/dist/Registrations/register.js +222 -0
- package/dist/Registrations/register.js.map +1 -0
- package/dist/Registrations/ts-mutators.d.ts +41 -0
- package/dist/Registrations/ts-mutators.d.ts.map +1 -0
- package/dist/Registrations/ts-mutators.js +202 -0
- package/dist/Registrations/ts-mutators.js.map +1 -0
- package/dist/Registrations/types.d.ts +35 -0
- package/dist/Registrations/types.d.ts.map +1 -0
- package/dist/Registrations/types.js +3 -0
- package/dist/Registrations/types.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +107 -16
- package/dist/index.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +12 -11
- package/stubs/handler.stub +14 -36
- package/stubs/listener.stub +26 -0
- package/stubs/page.stub +2 -20
- package/stubs/selector.stub +2 -0
- package/stubs/event.stub +0 -26
package/agents.md
CHANGED
|
@@ -31,16 +31,34 @@ Flags:
|
|
|
31
31
|
- `-p, --path` → output path for the page. Default: `./src/Pages/`
|
|
32
32
|
- `--selectors` → also generate selectors for the page
|
|
33
33
|
- `--selectorPath` → custom selector output path
|
|
34
|
-
- `-e, --event` →
|
|
35
|
-
- `--
|
|
36
|
-
- `--
|
|
34
|
+
- `-e, --event <eventBaseName>` → event **base** name for this page (`Login` → `EventName.LoginEvent` + `EventsInterface` when `--register`; enum/interface updates are idempotent if the member already exists). When `--listeners` is set, the listener subscribes to this event; if the flag is omitted, the listener uses `<pageName>Event`
|
|
35
|
+
- `--listeners` → scaffold `<pageName>EventListener` (event binding: `--event` or `<pageName>`)
|
|
36
|
+
- `--listenersPath` → folder for listener `.ts` when `--listeners` is set. Default: `./src/app/Listeners/`
|
|
37
|
+
- `--handlerPath` → custom handler output path when generating a handler alongside the page
|
|
38
|
+
- `--handler` → also generate default `<pageName>Handler` (non-transition). Default: `false`
|
|
37
39
|
- `--handler-from` → generate handler using `<from>To<to>Handler` convention
|
|
38
40
|
- `--handler-to` → generate handler using `<from>To<to>Handler` convention
|
|
41
|
+
- `--register` → enable post-scaffold registration. Default: `false`
|
|
42
|
+
- `--containerEnumPath` → custom ContainerName enum path. Default: `./src/app/Enums/ContainerName.ts`
|
|
43
|
+
- `--eventEnumPath` → custom EventName enum path. Default: `./src/app/Enums/EventName.ts`
|
|
44
|
+
- `--configEnumPath` → custom ConfigName enum path. Default: `./src/app/Enums/ConfigName.ts`
|
|
45
|
+
- `--containerInterfacePath` → custom ContainerInterface path. Default: `./@types/ContainerInterface.d.ts`
|
|
46
|
+
- `--eventsInterfacePath` → custom EventsInterface path. Default: `./@types/EventsInterface.d.ts`
|
|
47
|
+
- `--pagesIndexPath` → custom pages barrel path. Default: `./src/Pages/index.ts`
|
|
48
|
+
- `--selectorsIndexPath` → custom selectors barrel path. Default: `./src/Selectors/index.ts`
|
|
49
|
+
- `--handlersIndexPath` → custom handlers barrel path. Default: `./src/Handlers/index.ts`
|
|
50
|
+
- `--listenersIndexPath` → custom listeners barrel path. Default: `./src/app/Listeners/index.ts`
|
|
51
|
+
- `--envExamplePath` → custom `.env.example` path. Default: `./.env.example`
|
|
52
|
+
- `--typeImport <statement>` → explicit top-level import statement to inject. Repeatable.
|
|
53
|
+
- `--eventPayloadType <type>` → explicit EventsInterface payload type. Default: `EventBrowserParameters`
|
|
39
54
|
|
|
40
55
|
Operational notes:
|
|
41
56
|
|
|
42
|
-
- `make:page`
|
|
57
|
+
- `make:page` triggers handler generation if `handlerPath` is set and any of `--handler`, `--handler-from`, or `--handler-to` is provided (`--handler` scaffolds `<pageName>Handler`; from/to scaffolds a transition handler).
|
|
43
58
|
- The command input is the base page name, not the final class name with `Page` suffix.
|
|
59
|
+
- `--listeners` requires `--listenersPath` (or rely on the CLI default); if the path is omitted in programmatic calls, no listener file is created.
|
|
60
|
+
- When `--register` is enabled, registration flags are also forwarded to selector/event/listener/handler add-ons generated by the same `make:page` command.
|
|
61
|
+
- Prefer explicit registration flags instead of assuming app structure when the target project differs from the default ODG layout.
|
|
44
62
|
|
|
45
63
|
Examples:
|
|
46
64
|
|
|
@@ -53,13 +71,22 @@ yarn odg make:page Search
|
|
|
53
71
|
# output file: src/Pages/LoginPage.ts & src/Selectors/LoginSelector.ts
|
|
54
72
|
yarn odg make:page Login --selectors
|
|
55
73
|
|
|
56
|
-
# Generate Page + event
|
|
57
|
-
|
|
58
|
-
yarn odg make:page Login --event
|
|
74
|
+
# Generate Page + event contract for Login (EventName + EventsInterface when --register)
|
|
75
|
+
yarn odg make:page Login --event Login
|
|
59
76
|
|
|
60
|
-
# Generate Page +
|
|
61
|
-
# output
|
|
62
|
-
yarn odg make:page Login --
|
|
77
|
+
# Generate Page + listener class (default: listens to LoginEvent, runs LoginPage)
|
|
78
|
+
# output: src/Pages/LoginPage.ts & src/app/Listeners/LoginEventListener.ts
|
|
79
|
+
yarn odg make:page Login --listeners
|
|
80
|
+
|
|
81
|
+
# Page listener bound to another event (CheckoutEvent / CheckoutPage)
|
|
82
|
+
yarn odg make:page Login --listeners --event Checkout
|
|
83
|
+
|
|
84
|
+
# Generate Page + selector + event + listener
|
|
85
|
+
yarn odg make:page Login --selectors --event Login --listeners
|
|
86
|
+
|
|
87
|
+
# Generate Page + default handler (same base name as the page)
|
|
88
|
+
# output files: src/Pages/LoginPage.ts & src/Handlers/LoginHandler.ts
|
|
89
|
+
yarn odg make:page Login --handler
|
|
63
90
|
|
|
64
91
|
# Generate Page + transition handler (requires at least one of --handler-from/--handler-to)
|
|
65
92
|
# output files: src/Pages/LoginPage.ts & src/Handlers/Auth/LoginToSearchHandler.ts
|
|
@@ -85,6 +112,9 @@ yarn odg make:selector <selectorName>
|
|
|
85
112
|
Flags:
|
|
86
113
|
|
|
87
114
|
- `-p, --path` → output path for selectors. Default: `./src/Selectors/`
|
|
115
|
+
- `--register` → enable post-scaffold registration. Default: `false`
|
|
116
|
+
- `--selectorsIndexPath` → custom selectors barrel path. Default: `./src/Selectors/index.ts`
|
|
117
|
+
- `--typeImport <statement>` → explicit top-level import statement to inject. Repeatable.
|
|
88
118
|
|
|
89
119
|
Operational notes:
|
|
90
120
|
|
|
@@ -120,6 +150,11 @@ Flags:
|
|
|
120
150
|
- `--handler-from` → origin name for `FromTo` handler generation
|
|
121
151
|
- `--handler-to` → destination name for `FromTo` handler generation
|
|
122
152
|
- `-p, --path` → output path for handlers. Default: `./src/Handlers/`
|
|
153
|
+
- `--register` → enable post-scaffold registration. Default: `false`
|
|
154
|
+
- `--containerEnumPath` → custom ContainerName enum path. Default: `./src/app/Enums/ContainerName.ts`
|
|
155
|
+
- `--containerInterfacePath` → custom ContainerInterface path. Default: `./@types/ContainerInterface.d.ts`
|
|
156
|
+
- `--handlersIndexPath` → custom handlers barrel path. Default: `./src/Handlers/index.ts`
|
|
157
|
+
- `--typeImport <statement>` → explicit top-level import statement to inject. Repeatable.
|
|
123
158
|
|
|
124
159
|
Generated naming:
|
|
125
160
|
|
|
@@ -153,7 +188,7 @@ yarn odg make:handler Flow --handler-from Buy --handler-to Payment -p src/Handle
|
|
|
153
188
|
|
|
154
189
|
Purpose:
|
|
155
190
|
|
|
156
|
-
-
|
|
191
|
+
- Register a new **event contract**: `EventName.<Name>Event` and `EventsInterface[EventName.<Name>Event]` (with `--register`). Does **not** create a listener file.
|
|
157
192
|
|
|
158
193
|
Syntax:
|
|
159
194
|
|
|
@@ -163,25 +198,104 @@ yarn odg make:event <eventName>
|
|
|
163
198
|
|
|
164
199
|
Flags:
|
|
165
200
|
|
|
166
|
-
- `-p, --path` →
|
|
201
|
+
- `-p, --path` → EventName enum file path. Default: `./src/app/Enums/EventName.ts`
|
|
202
|
+
- `--register` → enable registration (enums + `EventsInterface`). Default: `false`
|
|
203
|
+
- `--eventsInterfacePath` → custom EventsInterface path. Default: `./@types/EventsInterface.d.ts`
|
|
204
|
+
- `--typeImport <statement>` → explicit top-level import statement to inject. Repeatable.
|
|
205
|
+
- `--eventPayloadType <type>` → explicit EventsInterface payload type. Default: `EventBrowserParameters`
|
|
167
206
|
|
|
168
207
|
Operational notes:
|
|
169
208
|
|
|
170
|
-
-
|
|
209
|
+
- Input is the **base** name (`Login` → enum member `LoginEvent`). Use `-p` for the EventName enum file path; use `make:listener` for listener class files.
|
|
210
|
+
- With `--register`, you still need `--eventPayloadType` (or default) so `EventsInterface` can be updated safely.
|
|
171
211
|
|
|
172
212
|
Examples:
|
|
173
213
|
|
|
174
214
|
```bash
|
|
175
|
-
#
|
|
176
|
-
|
|
177
|
-
|
|
215
|
+
# Add LoginEvent to EventName + EventsInterface (with registration)
|
|
216
|
+
yarn odg make:event Login --register
|
|
217
|
+
|
|
218
|
+
yarn odg make:event Search --register --eventPayloadType EventBrowserParameters
|
|
219
|
+
```
|
|
220
|
+
|
|
221
|
+
### `make:listener <listenerName>`
|
|
178
222
|
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
223
|
+
Purpose:
|
|
224
|
+
|
|
225
|
+
- Scaffold `<listenerName>EventListener` that listens to an **existing** `EventName.<event>Event` and injects the matching `<event>Page`.
|
|
226
|
+
|
|
227
|
+
Syntax:
|
|
182
228
|
|
|
183
|
-
|
|
184
|
-
|
|
229
|
+
```bash
|
|
230
|
+
yarn odg make:listener <listenerName> --event <eventBase>
|
|
231
|
+
```
|
|
232
|
+
|
|
233
|
+
Flags:
|
|
234
|
+
|
|
235
|
+
- `--event <eventBase>` → **required**. Base name of the event (`Login` → `EventName.LoginEvent`, injects `LoginPage`).
|
|
236
|
+
- `-p, --path` → folder for the new listener `.ts`. Default: `./src/app/Listeners/`
|
|
237
|
+
- `--register` → registers the event contract first (if missing), then ContainerName, listeners barrel, and `ContainerInterface` for the listener. Default: `false`
|
|
238
|
+
- `--eventEnumPath`, `--eventsInterfacePath`, `--eventPayloadType` → same semantics as `make:event` (used when `--register` ensures the event exists)
|
|
239
|
+
- `--containerEnumPath`, `--containerInterfacePath`, `--listenersIndexPath`, `--typeImport` → same semantics as other `make:*` commands.
|
|
240
|
+
|
|
241
|
+
Examples:
|
|
242
|
+
|
|
243
|
+
```bash
|
|
244
|
+
# After: yarn odg make:event Login --register
|
|
245
|
+
# Creates LoginSaveEventListener → EventName.LoginEvent, uses LoginPage in handler
|
|
246
|
+
yarn odg make:listener LoginSave --event Login --register
|
|
247
|
+
```
|
|
248
|
+
|
|
249
|
+
### make:config
|
|
250
|
+
|
|
251
|
+
Purpose:
|
|
252
|
+
|
|
253
|
+
- Register a new config key in the existing config wiring.
|
|
254
|
+
|
|
255
|
+
Syntax:
|
|
256
|
+
|
|
257
|
+
```bash
|
|
258
|
+
yarn odg make:config <configName>
|
|
259
|
+
```
|
|
260
|
+
|
|
261
|
+
Flags:
|
|
262
|
+
|
|
263
|
+
- `-v, --validator <validator>` → zod validator expression. Default: `zod.string()`
|
|
264
|
+
- `--register` → enable registration. Default: `false`
|
|
265
|
+
- `--configEnumPath` → custom ConfigName enum path. Default: `./src/app/Enums/ConfigName.ts`
|
|
266
|
+
- `--configValidatorPath` → path to the file containing `configValidator = zod.object({...})`. Default: `./src/Configs/index.ts`
|
|
267
|
+
- `--envExamplePath` → custom `.env.example` path. Default: `./.env.example`
|
|
268
|
+
- `--typeImport <statement>` → explicit top-level import statement to inject. Repeatable.
|
|
269
|
+
|
|
270
|
+
Operational notes:
|
|
271
|
+
|
|
272
|
+
- `make:config` does not create a new config stub file.
|
|
273
|
+
- It mutates the existing `configValidator = zod.object({...})` file and appends a new property.
|
|
274
|
+
- The command input is normalized to `CONST_CASE` before registration.
|
|
275
|
+
- If the input is already `CONST_CASE`, it is preserved as-is.
|
|
276
|
+
- The `.env.example` block is appended with one blank line above it, then:
|
|
277
|
+
`# CONFIG_NAME`
|
|
278
|
+
`CONFIG_NAME=""`
|
|
279
|
+
|
|
280
|
+
Examples:
|
|
281
|
+
|
|
282
|
+
```bash
|
|
283
|
+
# PascalCase input → normalized to APP_URL
|
|
284
|
+
# Mutations:
|
|
285
|
+
# - ConfigName.APP_URL = "APP_URL"
|
|
286
|
+
# - configValidator gains [ConfigName.APP_URL]: zod.string()
|
|
287
|
+
# - .env.example gains a blank line, comment and APP_URL=""
|
|
288
|
+
yarn odg make:config APP_URL --register
|
|
289
|
+
|
|
290
|
+
# CONST_CASE input is preserved as-is
|
|
291
|
+
# Mutations use ZECA_URL, not Z_E_C_A__U_R_L
|
|
292
|
+
yarn odg make:config ZECA_URL --register
|
|
293
|
+
|
|
294
|
+
# Custom validator expression in existing config validator file
|
|
295
|
+
yarn odg make:config USE_HEADLESS --register --validator "CustomValidator.zodStringToBoolean()"
|
|
296
|
+
|
|
297
|
+
# Custom config validator path
|
|
298
|
+
yarn odg make:config APP_URL --register --configValidatorPath src/Config/index.ts
|
|
185
299
|
```
|
|
186
300
|
|
|
187
301
|
### make:exception
|
|
@@ -199,7 +313,7 @@ yarn odg make:exception <exceptionName>
|
|
|
199
313
|
Flags:
|
|
200
314
|
|
|
201
315
|
- `-u, --isUnknown` → generate unknown exception variant
|
|
202
|
-
- `-p, --path` → output path for exceptions. Default: `./src/Exceptions
|
|
316
|
+
- `-p, --path` → output path for exceptions. Default: `./src/Exceptions/`
|
|
203
317
|
|
|
204
318
|
Examples:
|
|
205
319
|
|
|
@@ -215,10 +329,10 @@ yarn odg make:exception RequestFailure --isUnknown
|
|
|
215
329
|
|
|
216
330
|
## Naming Rules
|
|
217
331
|
|
|
218
|
-
### Event input
|
|
332
|
+
### Event and listener input
|
|
219
333
|
|
|
220
|
-
- Pass the base
|
|
221
|
-
-
|
|
334
|
+
- Pass the **base** name to `make:event` (`Login` → `LoginEvent` in `EventName`).
|
|
335
|
+
- Pass the listener **base** name to `make:listener` (`LoginSave` → class `LoginSaveEventListener`); pass `--event` as the **base** of the existing event (`Login` → listens to `LoginEvent`).
|
|
222
336
|
|
|
223
337
|
### Handler naming
|
|
224
338
|
|
|
@@ -229,39 +343,29 @@ yarn odg make:exception RequestFailure --isUnknown
|
|
|
229
343
|
### Selector naming
|
|
230
344
|
|
|
231
345
|
- Follow the naming convention already used in the selector namespace.
|
|
232
|
-
- If the domain already uses a prefix such as `googleSearchSelector`, keep the same pattern for new selectors.
|
|
233
346
|
- Do not mix prefixed and non-prefixed selectors in the same domain without explicit reason.
|
|
234
347
|
|
|
235
|
-
## Known Pitfalls
|
|
236
|
-
|
|
237
|
-
- Existing destination file: the command fails if the target file already exists.
|
|
238
|
-
- Existing `index.ts`: scaffold may append exports automatically, which can create duplicates.
|
|
239
|
-
- `make:page` does not always generate a handler; linked handler generation is conditional.
|
|
240
|
-
- Default paths assume a standard `src/...` layout.
|
|
241
|
-
|
|
242
|
-
## Agent Checklist
|
|
243
|
-
|
|
244
|
-
- Identify whether a `make:*` command already solves the requested artifact.
|
|
245
|
-
- Use the base resource name as CLI input.
|
|
246
|
-
- Confirm whether the handler validates a result or a transition.
|
|
247
|
-
- Preserve the selector naming convention already used by the domain.
|
|
248
|
-
- Prefer examples derived from `yarn odg --help` and `yarn odg make:* --help`.
|
|
249
|
-
|
|
250
348
|
## 🚦 Rules (Usage)
|
|
251
349
|
|
|
350
|
+
- Prefer examples derived from `yarn odg --help` and `yarn odg make:* --help`.
|
|
252
351
|
- execute in **root app** where default paths and stubs are expected; otherwise, use `-p` to specify custom paths
|
|
253
|
-
- use `--handler-from` and/or `--handler-to`
|
|
254
|
-
-
|
|
352
|
+
- use `--handler` for a default `<pageName>Handler`, or `--handler-from` and/or `--handler-to` for transition handlers
|
|
353
|
+
- use `make:event` then `make:listener` (or `make:page --event <name>` / `--listeners`) so event contracts exist before listener scaffolds; prefer `make:page` with flags when page + wiring should stay aligned
|
|
354
|
+
- registration is opt-in: only expect enum/interface/barrel mutation when `--register` is explicitly present
|
|
355
|
+
- when registration is enabled, prefer explicit path flags over assumptions if the app does not match the default ODG folder layout
|
|
356
|
+
- `--typeImport` is repeatable and intended for explicit imports required before mutating enums/interfaces/barrels
|
|
255
357
|
|
|
256
358
|
## 💥 Exceptions
|
|
257
359
|
|
|
258
360
|
- `InvalidArgumentException` (`@odg/exception`): if file already exists - message error `The {name} already exists.`
|
|
259
|
-
|
|
361
|
+
- Handling: do not create again with the same name in the same path; delete/rename the existing file or change `-p`/name
|
|
260
362
|
- Node I/O failures (reading stub, writing, mkdir) may propagate native error not encapsulated in package-specific type
|
|
261
363
|
|
|
262
364
|
## ⚠️ Integration Pitfalls
|
|
263
365
|
|
|
264
366
|
- Paths default to `./src/...` structure; if the app has a different structure, the agent must use `-p` to specify correct paths.
|
|
367
|
+
- Registration defaults are conservative: no enum/interface/barrel mutation happens unless `--register` is passed.
|
|
265
368
|
- If `index.ts` exists in the target directory, the generator may **append** `export * from "./{FileName}";` — risk of duplicate or undesired export order
|
|
369
|
+
- `make:page --register` can mutate multiple files transitively if `--selectors`, `--event`, `--listeners`, `--handler`, or transition handler flags are also enabled, because registration options propagate to generated add-ons
|
|
266
370
|
- Stubs in `./stubs` in the CWD **override** package stubs for that `.stub` file name
|
|
267
371
|
- `main`/`types` point to `dist/` of runtime CLI; do not expect public API types beyond what the package exports in `package.json` (currently: focus on bin + assets)
|
|
@@ -1,71 +1,90 @@
|
|
|
1
1
|
import type { LoggerInterface } from "@odg/log";
|
|
2
|
-
|
|
2
|
+
import type { RegistrationTargets } from "../Registrations/types";
|
|
3
|
+
interface RegistrationOptions {
|
|
4
|
+
register?: boolean;
|
|
5
|
+
registrationTargets?: Omit<RegistrationTargets, "enabled">;
|
|
6
|
+
containerEnumPath?: string;
|
|
7
|
+
eventEnumPath?: string;
|
|
8
|
+
configEnumPath?: string;
|
|
9
|
+
configValidatorPath?: string;
|
|
10
|
+
containerInterfacePath?: string;
|
|
11
|
+
eventsInterfacePath?: string;
|
|
12
|
+
pagesIndexPath?: string;
|
|
13
|
+
selectorsIndexPath?: string;
|
|
14
|
+
handlersIndexPath?: string;
|
|
15
|
+
listenersIndexPath?: string;
|
|
16
|
+
envExamplePath?: string;
|
|
17
|
+
eventPayloadType?: string;
|
|
18
|
+
containerEnumMemberValue?: string;
|
|
19
|
+
typeImport?: string[];
|
|
20
|
+
typeImports?: string[];
|
|
21
|
+
}
|
|
22
|
+
export interface MakePageOptions extends RegistrationOptions {
|
|
3
23
|
selectors: boolean;
|
|
4
|
-
event
|
|
24
|
+
event?: string;
|
|
25
|
+
listeners?: boolean;
|
|
5
26
|
path: string;
|
|
6
|
-
|
|
27
|
+
listenersPath?: string;
|
|
7
28
|
selectorPath?: string;
|
|
8
29
|
handlerPath?: string;
|
|
30
|
+
handler?: boolean;
|
|
9
31
|
handlerFrom?: string;
|
|
10
32
|
handlerTo?: string;
|
|
11
33
|
}
|
|
12
|
-
interface
|
|
34
|
+
export interface MakeSelectorOptions extends RegistrationOptions {
|
|
13
35
|
path: string;
|
|
14
36
|
}
|
|
15
|
-
interface
|
|
37
|
+
export interface MakeHandlerOptions extends RegistrationOptions {
|
|
16
38
|
path: string;
|
|
17
39
|
handlerFrom?: string;
|
|
18
40
|
handlerTo?: string;
|
|
19
41
|
}
|
|
20
|
-
interface
|
|
42
|
+
export interface MakeEventOptions extends RegistrationOptions {
|
|
43
|
+
path?: string;
|
|
44
|
+
}
|
|
45
|
+
export interface MakeListenerOptions extends RegistrationOptions {
|
|
21
46
|
path: string;
|
|
47
|
+
event: string;
|
|
22
48
|
}
|
|
23
|
-
interface
|
|
49
|
+
export interface MakeExceptionOptions {
|
|
24
50
|
path: string;
|
|
25
51
|
isUnknown: boolean;
|
|
26
52
|
}
|
|
53
|
+
export interface MakeConfigOptions extends RegistrationOptions {
|
|
54
|
+
path?: string;
|
|
55
|
+
/** Zod validator expression written into configValidator, e.g. `zod.string()` */
|
|
56
|
+
validator?: string;
|
|
57
|
+
/** Path to the file that exports `configValidator = zod.object({...})`. */
|
|
58
|
+
configValidatorPath?: string;
|
|
59
|
+
}
|
|
27
60
|
export default class MakeFile {
|
|
28
61
|
private readonly logger;
|
|
62
|
+
private readonly stubCreator;
|
|
29
63
|
constructor(logger: LoggerInterface);
|
|
30
64
|
/**
|
|
31
65
|
* Use this function to create Page Crawler class
|
|
32
66
|
*
|
|
33
67
|
* @param {string} pageName Selector file name
|
|
34
|
-
* @param {
|
|
35
|
-
* @returns {Promise<void>}
|
|
36
|
-
*/
|
|
37
|
-
makePage(pageName: string, options: MakePageInterface): Promise<void>;
|
|
38
|
-
/**
|
|
39
|
-
* Use this function to create selector class
|
|
40
|
-
*
|
|
41
|
-
* @param {string} selectorName Page Selector file name
|
|
42
|
-
* @param {MakeSelectorInterface} options Options command
|
|
43
|
-
* @returns {Promise<void>}
|
|
44
|
-
*/
|
|
45
|
-
makeSelectors(selectorName: string, options: MakeSelectorInterface): Promise<void>;
|
|
46
|
-
/**
|
|
47
|
-
* Use this function to create handler file
|
|
48
|
-
*
|
|
49
|
-
* @param {string} handlerName Handler name to make
|
|
50
|
-
* @param {MakeHandlerInterface} options Options command
|
|
51
|
-
* @returns {Promise<void>}
|
|
52
|
-
*/
|
|
53
|
-
makeHandler(handlerName: string, options: MakeHandlerInterface): Promise<void>;
|
|
54
|
-
/**
|
|
55
|
-
* Use this function to create handler file
|
|
56
|
-
*
|
|
57
|
-
* @param {string} eventName Event name to make
|
|
58
|
-
* @param {MakeEventInterface} options Options command
|
|
68
|
+
* @param {MakePageOptions} options Options command
|
|
59
69
|
* @returns {Promise<void>}
|
|
60
70
|
*/
|
|
61
|
-
|
|
71
|
+
makePage(pageName: string, options: MakePageOptions): Promise<void>;
|
|
72
|
+
makeSelectors(selectorName: string, options: MakeSelectorOptions): Promise<void>;
|
|
73
|
+
makeHandler(handlerName: string, options: MakeHandlerOptions): Promise<void>;
|
|
74
|
+
makeEvent(eventName: string, options: MakeEventOptions): Promise<void>;
|
|
75
|
+
makeListener(listenerName: string, options: MakeListenerOptions): Promise<void>;
|
|
76
|
+
makeConfig(configName: string, options: MakeConfigOptions): Promise<void>;
|
|
77
|
+
makeException(exceptionName: string, options: MakeExceptionOptions): Promise<void>;
|
|
78
|
+
private buildRegistrationTargets;
|
|
62
79
|
/**
|
|
63
|
-
*
|
|
80
|
+
* Runs optional selector, event, and handler file generation from make:page, forwarding `register` and
|
|
81
|
+
* `registrationTargets` so enums and barrels stay in sync with the parent command.
|
|
64
82
|
*
|
|
65
|
-
* @param {string}
|
|
66
|
-
* @param {
|
|
83
|
+
* @param {string} pageName Base page name (same as make:page first argument)
|
|
84
|
+
* @param {MakePageOptions} options Full make:page options including paths and registration targets
|
|
67
85
|
* @returns {Promise<void>}
|
|
68
86
|
*/
|
|
69
|
-
|
|
87
|
+
private scaffoldPageAddOns;
|
|
70
88
|
}
|
|
71
89
|
export {};
|
|
90
|
+
//# sourceMappingURL=MakeFile.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MakeFile.d.ts","sourceRoot":"","sources":["../../src/Generators/MakeFile.ts"],"names":[],"mappings":"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"}
|