@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.
Files changed (36) hide show
  1. package/agents.md +148 -44
  2. package/dist/Generators/MakeFile.d.ts +56 -37
  3. package/dist/Generators/MakeFile.d.ts.map +1 -0
  4. package/dist/Generators/MakeFile.js +132 -66
  5. package/dist/Generators/MakeFile.js.map +1 -1
  6. package/dist/Generators/StubCreator.d.ts +2 -1
  7. package/dist/Generators/StubCreator.d.ts.map +1 -0
  8. package/dist/Generators/StubCreator.js +17 -42
  9. package/dist/Generators/StubCreator.js.map +1 -1
  10. package/dist/Registrations/pascal-to-dot-lower.d.ts +16 -0
  11. package/dist/Registrations/pascal-to-dot-lower.d.ts.map +1 -0
  12. package/dist/Registrations/pascal-to-dot-lower.js +31 -0
  13. package/dist/Registrations/pascal-to-dot-lower.js.map +1 -0
  14. package/dist/Registrations/register.d.ts +3 -0
  15. package/dist/Registrations/register.d.ts.map +1 -0
  16. package/dist/Registrations/register.js +222 -0
  17. package/dist/Registrations/register.js.map +1 -0
  18. package/dist/Registrations/ts-mutators.d.ts +41 -0
  19. package/dist/Registrations/ts-mutators.d.ts.map +1 -0
  20. package/dist/Registrations/ts-mutators.js +202 -0
  21. package/dist/Registrations/ts-mutators.js.map +1 -0
  22. package/dist/Registrations/types.d.ts +35 -0
  23. package/dist/Registrations/types.d.ts.map +1 -0
  24. package/dist/Registrations/types.js +3 -0
  25. package/dist/Registrations/types.js.map +1 -0
  26. package/dist/index.d.ts +1 -0
  27. package/dist/index.d.ts.map +1 -0
  28. package/dist/index.js +107 -16
  29. package/dist/index.js.map +1 -1
  30. package/dist/tsconfig.build.tsbuildinfo +1 -1
  31. package/package.json +12 -11
  32. package/stubs/handler.stub +14 -36
  33. package/stubs/listener.stub +26 -0
  34. package/stubs/page.stub +2 -20
  35. package/stubs/selector.stub +2 -0
  36. package/stubs/event.stub +0 -26
package/dist/index.js CHANGED
@@ -8,55 +8,146 @@ 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: true,
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", "./src/Pages/")
39
+ .option(pathOption, "Destination Page Path", commandPathsDefaults.pages)
16
40
  .option("-s, --selectors", "Create Selectors", false)
17
- .option("--selectorPath", "Selector Path", "./src/Selectors/")
18
- .option("-e, --event", "Create Event", false)
19
- .option("--eventPath", "Event Path", "./src/app/Listeners/")
20
- .option("--handlerPath", "Handler Path", "./src/Handlers/")
41
+ .option("--selectorPath <selectorPath>", "Selector Path", commandPathsDefaults.selectors)
42
+ .option("-e, --event <eventBaseName>", [
43
+ "Event base name for this page (EventName.<Name>Event + EventsInterface when --register;",
44
+ "idempotent if member exists). When set, --listeners subscribes to this event",
45
+ ].join(" "))
46
+ .option("--listeners", "Scaffold <PageName>EventListener (subscribes to --event or, if omitted, <pageName>Event)", false)
47
+ .option("--listenersPath <listenersPath>", "Listener TS output folder", commandPathsDefaults.listeners)
48
+ .option("--handlerPath <handlerPath>", "Handler Path", commandPathsDefaults.handlers)
21
49
  .option("--handler-from <handlerFrom>", "Use If Handler From")
22
50
  .option("--handler-to <handlerTo>", "Use if Handler To")
51
+ .option("--handler", "Create default <PageName>Handler alongside the page", false)
52
+ .option("--register", "Enable post-scaffold registration (Container, barrels, events, etc.)", registrationDefaults.register)
53
+ .option("--containerEnumPath <containerEnumPath>", "Container enum path", registrationDefaults.containerEnumPath)
54
+ .option("--eventEnumPath <eventEnumPath>", "EventName enum path", registrationDefaults.eventEnumPath)
55
+ .option("--configEnumPath <configEnumPath>", "ConfigName enum path", registrationDefaults.configEnumPath)
56
+ .option("--containerInterfacePath <containerInterfacePath>", "ContainerInterface path", registrationDefaults.containerInterfacePath)
57
+ .option("--eventsInterfacePath <eventsInterfacePath>", "EventsInterface path", registrationDefaults.eventsInterfacePath)
58
+ .option("--pagesIndexPath <pagesIndexPath>", "Pages barrel path", registrationDefaults.pagesIndexPath)
59
+ .option("--selectorsIndexPath <selectorsIndexPath>", "Selectors barrel path", registrationDefaults.selectorsIndexPath)
60
+ .option("--handlersIndexPath <handlersIndexPath>", "Handlers barrel path", registrationDefaults.handlersIndexPath)
61
+ .option("--listenersIndexPath <listenersIndexPath>", "Listeners barrel path", registrationDefaults.listenersIndexPath)
62
+ .option("--envExamplePath <envExamplePath>", ".env.example path", registrationDefaults.envExamplePath)
63
+ .option("--typeImport <statement>", "Explicit import statement to insert (repeatable)", collect, [])
64
+ .option("--eventPayloadType <type>", "EventsInterface payload type", registrationDefaults.eventPayloadType)
23
65
  .description("Test command description")
24
66
  .version("0.1.1")
25
- .action(make.makePage.bind(make));
67
+ .action(async (pageName, options) => make.makePage(pageName, options));
26
68
  commander_1.program
27
69
  .command("make:selector")
28
70
  .name("make:selector")
29
71
  .argument("<selectorName>", "selector of page name")
30
- .option(pathOption, "Destination Selector Path", "./src/Selectors/")
72
+ .option(pathOption, "Destination Selector Path", commandPathsDefaults.selectors)
73
+ .option("--register", "Enable post-scaffold registration (Container, barrels, etc.)", registrationDefaults.register)
74
+ .option("--selectorsIndexPath <selectorsIndexPath>", "Selectors barrel path", registrationDefaults.selectorsIndexPath)
75
+ .option("--typeImport <statement>", "Explicit import statement to insert (repeatable)", collect, [])
31
76
  .description("Test command description")
32
77
  .version("0.1.1")
33
- .action(make.makeSelectors.bind(make));
78
+ .action(async (selectorName, options) => make.makeSelectors(selectorName, options));
34
79
  commander_1.program
35
80
  .command("make:handler")
36
81
  .name("make:handler")
37
82
  .argument("<handlerName>", "selector of page name")
38
83
  .option("--handler-from <handlerFrom>", "handler source page")
39
84
  .option("--handler-to <handlerTo>", "handler destination page")
40
- .option(pathOption, "Destination Path", "./src/Handlers/")
85
+ .option(pathOption, "Destination Path", commandPathsDefaults.handlers)
86
+ .option("--register", "Enable post-scaffold registration", registrationDefaults.register)
87
+ .option("--containerEnumPath <containerEnumPath>", "ContainerName enum path", registrationDefaults.containerEnumPath)
88
+ .option("--containerInterfacePath <containerInterfacePath>", "ContainerInterface path", registrationDefaults.containerInterfacePath)
89
+ .option("--handlersIndexPath <handlersIndexPath>", "Handlers barrel path", registrationDefaults.handlersIndexPath)
90
+ .option("--typeImport <statement>", "Explicit import statement to insert (repeatable)", collect, [])
41
91
  .description("Make Handler file")
42
92
  .version("0.1.1")
43
- .action(make.makeHandler.bind(make));
93
+ .action(async (handlerName, options) => make.makeHandler(handlerName, options));
44
94
  commander_1.program
45
95
  .command("make:event")
46
96
  .name("make:event")
47
- .argument("<eventName>", "EventName")
48
- .option(pathOption, "Destination EventListener Path", "./src/app/Listeners")
49
- .description("Create EventListener file example")
97
+ .argument("<eventName>", "Event base name (adds EventName.<Name>Event + EventsInterface entry when --register)")
98
+ .option(pathOption, "EventName enum file path", registrationDefaults.eventEnumPath)
99
+ .option("--register", "Enable post-scaffold registration (enums + EventsInterface)", true)
100
+ .option("--containerEnumPath <containerEnumPath>", "ContainerName enum path", registrationDefaults.containerEnumPath)
101
+ .option("--containerInterfacePath <containerInterfacePath>", "ContainerInterface path", registrationDefaults.containerInterfacePath)
102
+ .option("--eventsInterfacePath <eventsInterfacePath>", "EventsInterface path", registrationDefaults.eventsInterfacePath)
103
+ .option("--typeImport <statement>", "Explicit import statement to insert (repeatable)", collect, [])
104
+ .option("--eventPayloadType <type>", "EventsInterface payload type", registrationDefaults.eventPayloadType)
105
+ .description("Register a new event (EventName + EventsInterface). Use make:listener to add a listener class.")
106
+ .version("0.1.1")
107
+ .action(async (eventName, options) => {
108
+ await make.makeEvent(eventName, {
109
+ ...options,
110
+ eventEnumPath: options.eventEnumPath ?? options.path,
111
+ });
112
+ });
113
+ commander_1.program
114
+ .command("make:listener")
115
+ .name("make:listener")
116
+ .argument("<listenerName>", "Listener base name (class <Name>EventListener)")
117
+ .requiredOption("--event <event>", "Existing event base name (e.g. Login → EventName.LoginEvent)")
118
+ .option(pathOption, "Destination listener folder", commandPathsDefaults.listeners)
119
+ .option("--register", "Enable post-scaffold registration (Container, barrels, etc.)", registrationDefaults.register)
120
+ .option("--containerEnumPath <containerEnumPath>", "ContainerName enum path", registrationDefaults.containerEnumPath)
121
+ .option("--containerInterfacePath <containerInterfacePath>", "ContainerInterface path", registrationDefaults.containerInterfacePath)
122
+ .option("--listenersIndexPath <listenersIndexPath>", "Listeners barrel path", registrationDefaults.listenersIndexPath)
123
+ .option("--eventEnumPath <eventEnumPath>", "EventName enum path", registrationDefaults.eventEnumPath)
124
+ .option("--eventsInterfacePath <eventsInterfacePath>", "EventsInterface path", registrationDefaults.eventsInterfacePath)
125
+ .option("--eventPayloadType <type>", "EventsInterface payload type", registrationDefaults.eventPayloadType)
126
+ .option("--typeImport <statement>", "Explicit import statement to insert (repeatable)", collect, [])
127
+ .description("Scaffold an EventListener class; with --register, ensures the event contract exists first")
128
+ .version("0.1.1")
129
+ .action(async (listenerName, options) => make.makeListener(listenerName, options));
130
+ commander_1.program
131
+ .command("make:config")
132
+ .name("make:config")
133
+ .argument("<configName>", "Config key name (PascalCase, converted to CONST_CASE automatically)")
134
+ .option("-v, --validator <validator>", "Zod validator expression", "zod.string()")
135
+ .option("--register", "Enable post-scaffold registration (ConfigName enum + .env.example)", true)
136
+ .option("--configEnumPath <configEnumPath>", "ConfigName enum path", registrationDefaults.configEnumPath)
137
+ .option("--configValidatorPath <configValidatorPath>", "Path to file with configValidator = zod.object({...})", "./src/Configs/index.ts")
138
+ .option("--envExamplePath <envExamplePath>", ".env.example path", registrationDefaults.envExamplePath)
139
+ .option("--typeImport <statement>", "Explicit import statement to insert (repeatable)", collect, [])
140
+ .description("Register a new config entry in ConfigName enum, configValidator object and .env.example")
50
141
  .version("0.1.1")
51
- .action(make.makeEvent.bind(make));
142
+ .action(async (configName, options) => make.makeConfig(configName, options));
52
143
  commander_1.program
53
144
  .command("make:exception")
54
145
  .name("make:exception")
55
146
  .argument("<exceptionName>", "ExceptionName")
56
147
  .option("-u, --isUnknown", "UnknownException", false)
57
- .option(pathOption, "Destination Exception Path", "./src/Exceptions")
148
+ .option(pathOption, "Destination Exception Path", commandPathsDefaults.exceptions)
58
149
  .description("Create Exception file example")
59
150
  .version("0.1.1")
60
- .action(make.makeException.bind(make));
151
+ .action(async (exceptionName, options) => make.makeException(exceptionName, options));
61
152
  commander_1.program.parse();
62
153
  //# 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,qEAA6C;AAE7C,MAAM,IAAI,GAAG,IAAI,kBAAQ,CAAC,IAAI,mBAAa,EAAE,CAAC,CAAC;AAE/C,MAAM,UAAU,GAAG,mBAAmB,CAAC;AAEvC,mBAAO;KACF,OAAO,CAAC,WAAW,CAAC;KACpB,IAAI,CAAC,WAAW,CAAC;KACjB,QAAQ,CAAC,YAAY,EAAE,kBAAkB,CAAC;KAC1C,MAAM,CAAC,UAAU,EAAE,uBAAuB,EAAE,cAAc,CAAC;KAC3D,MAAM,CAAC,iBAAiB,EAAE,kBAAkB,EAAE,KAAK,CAAC;KACpD,MAAM,CAAC,gBAAgB,EAAE,eAAe,EAAE,kBAAkB,CAAC;KAC7D,MAAM,CAAC,aAAa,EAAE,cAAc,EAAE,KAAK,CAAC;KAC5C,MAAM,CAAC,aAAa,EAAE,YAAY,EAAE,sBAAsB,CAAC;KAC3D,MAAM,CAAC,eAAe,EAAE,cAAc,EAAE,iBAAiB,CAAC;KAC1D,MAAM,CAAC,8BAA8B,EAAE,qBAAqB,CAAC;KAC7D,MAAM,CAAC,0BAA0B,EAAE,mBAAmB,CAAC;KACvD,WAAW,CAAC,0BAA0B,CAAC;KACvC,OAAO,CAAC,OAAO,CAAC;KAChB,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAEtC,mBAAO;KACF,OAAO,CAAC,eAAe,CAAC;KACxB,IAAI,CAAC,eAAe,CAAC;KACrB,QAAQ,CAAC,gBAAgB,EAAE,uBAAuB,CAAC;KACnD,MAAM,CAAC,UAAU,EAAE,2BAA2B,EAAE,kBAAkB,CAAC;KACnE,WAAW,CAAC,0BAA0B,CAAC;KACvC,OAAO,CAAC,OAAO,CAAC;KAChB,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAE3C,mBAAO;KACF,OAAO,CAAC,cAAc,CAAC;KACvB,IAAI,CAAC,cAAc,CAAC;KACpB,QAAQ,CAAC,eAAe,EAAE,uBAAuB,CAAC;KAClD,MAAM,CAAC,8BAA8B,EAAE,qBAAqB,CAAC;KAC7D,MAAM,CAAC,0BAA0B,EAAE,0BAA0B,CAAC;KAC9D,MAAM,CAAC,UAAU,EAAE,kBAAkB,EAAE,iBAAiB,CAAC;KACzD,WAAW,CAAC,mBAAmB,CAAC;KAChC,OAAO,CAAC,OAAO,CAAC;KAChB,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAEzC,mBAAO;KACF,OAAO,CAAC,YAAY,CAAC;KACrB,IAAI,CAAC,YAAY,CAAC;KAClB,QAAQ,CAAC,aAAa,EAAE,WAAW,CAAC;KACpC,MAAM,CAAC,UAAU,EAAE,gCAAgC,EAAE,qBAAqB,CAAC;KAC3E,WAAW,CAAC,mCAAmC,CAAC;KAChD,OAAO,CAAC,OAAO,CAAC;KAChB,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAEvC,mBAAO;KACF,OAAO,CAAC,gBAAgB,CAAC;KACzB,IAAI,CAAC,gBAAgB,CAAC;KACtB,QAAQ,CAAC,iBAAiB,EAAE,eAAe,CAAC;KAC5C,MAAM,CAAC,iBAAiB,EAAE,kBAAkB,EAAE,KAAK,CAAC;KACpD,MAAM,CAAC,UAAU,EAAE,4BAA4B,EAAE,kBAAkB,CAAC;KACpE,WAAW,CAAC,+BAA+B,CAAC;KAC5C,OAAO,CAAC,OAAO,CAAC;KAChB,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAE3C,mBAAO,CAAC,KAAK,EAAE,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}