@valkyrjaio/sindri 26.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (83) hide show
  1. package/LICENSE.md +21 -0
  2. package/README.md +111 -0
  3. package/package.json +63 -0
  4. package/src/Sindri/Ast/Abstract/AstReader.ts +710 -0
  5. package/src/Sindri/Ast/Abstract/RouteAttributeReader.ts +50 -0
  6. package/src/Sindri/Ast/CliRouteAttributeReader.ts +219 -0
  7. package/src/Sindri/Ast/CliRouteParameterReader.ts +204 -0
  8. package/src/Sindri/Ast/ComponentProviderReader.ts +41 -0
  9. package/src/Sindri/Ast/ConfigReader.ts +213 -0
  10. package/src/Sindri/Ast/Contract/CliRouteAttributeReaderContract.ts +14 -0
  11. package/src/Sindri/Ast/Contract/CliRouteParameterReaderContract.ts +34 -0
  12. package/src/Sindri/Ast/Contract/ComponentProviderReaderContract.ts +14 -0
  13. package/src/Sindri/Ast/Contract/ConfigReaderContract.ts +14 -0
  14. package/src/Sindri/Ast/Contract/HttpRouteAttributeReaderContract.ts +14 -0
  15. package/src/Sindri/Ast/Contract/HttpRouteMiddlewareReaderContract.ts +61 -0
  16. package/src/Sindri/Ast/Contract/HttpRouteParameterReaderContract.ts +26 -0
  17. package/src/Sindri/Ast/Contract/ListenerAttributeReaderContract.ts +14 -0
  18. package/src/Sindri/Ast/Contract/ListenerProviderReaderContract.ts +14 -0
  19. package/src/Sindri/Ast/Contract/RouteProviderReaderContract.ts +14 -0
  20. package/src/Sindri/Ast/Contract/ServiceProviderReaderContract.ts +14 -0
  21. package/src/Sindri/Ast/Data/CliArgumentParameterData.ts +20 -0
  22. package/src/Sindri/Ast/Data/CliOptionParameterData.ts +24 -0
  23. package/src/Sindri/Ast/Data/CliRouteData.ts +32 -0
  24. package/src/Sindri/Ast/Data/ConfigData.ts +20 -0
  25. package/src/Sindri/Ast/Data/Contract/CliArgumentParameterDataContract.ts +18 -0
  26. package/src/Sindri/Ast/Data/Contract/CliOptionParameterDataContract.ts +22 -0
  27. package/src/Sindri/Ast/Data/Contract/CliRouteDataContract.ts +25 -0
  28. package/src/Sindri/Ast/Data/Contract/ConfigDataContract.ts +16 -0
  29. package/src/Sindri/Ast/Data/Contract/HandlerDataContract.ts +13 -0
  30. package/src/Sindri/Ast/Data/Contract/HttpParameterDataContract.ts +17 -0
  31. package/src/Sindri/Ast/Data/Contract/HttpRouteDataContract.ts +28 -0
  32. package/src/Sindri/Ast/Data/Contract/ListenerDataContract.ts +16 -0
  33. package/src/Sindri/Ast/Data/HandlerData.ts +20 -0
  34. package/src/Sindri/Ast/Data/HttpParameterData.ts +20 -0
  35. package/src/Sindri/Ast/Data/HttpRouteData.ts +30 -0
  36. package/src/Sindri/Ast/Data/ListenerData.ts +19 -0
  37. package/src/Sindri/Ast/Data/Result/CliRouteAttributeResult.ts +14 -0
  38. package/src/Sindri/Ast/Data/Result/ComponentProviderResult.ts +28 -0
  39. package/src/Sindri/Ast/Data/Result/ConfigResult.ts +18 -0
  40. package/src/Sindri/Ast/Data/Result/HttpRouteAttributeResult.ts +19 -0
  41. package/src/Sindri/Ast/Data/Result/ListenerAttributeResult.ts +14 -0
  42. package/src/Sindri/Ast/Data/Result/ListenerProviderResult.ts +24 -0
  43. package/src/Sindri/Ast/Data/Result/RouteProviderResult.ts +24 -0
  44. package/src/Sindri/Ast/Data/Result/ServiceProviderResult.ts +22 -0
  45. package/src/Sindri/Ast/HttpRouteAttributeReader.ts +315 -0
  46. package/src/Sindri/Ast/HttpRouteMiddlewareReader.ts +214 -0
  47. package/src/Sindri/Ast/HttpRouteParameterReader.ts +193 -0
  48. package/src/Sindri/Ast/ListenerAttributeReader.ts +131 -0
  49. package/src/Sindri/Ast/ListenerProviderReader.ts +45 -0
  50. package/src/Sindri/Ast/RouteProviderReader.ts +45 -0
  51. package/src/Sindri/Ast/ServiceProviderReader.ts +124 -0
  52. package/src/Sindri/Ast/Throwable/Contract/AstThrowable.ts +12 -0
  53. package/src/Sindri/Ast/Throwable/Exception/Abstract/AstInvalidArgumentException.ts +14 -0
  54. package/src/Sindri/Ast/Throwable/Exception/Abstract/AstRuntimeException.ts +14 -0
  55. package/src/Sindri/Ast/Throwable/Exception/AstFileReadException.ts +12 -0
  56. package/src/Sindri/Cli/Command/GenerateDataFromConfigCommand.ts +83 -0
  57. package/src/Sindri/Constant/CommandName.ts +12 -0
  58. package/src/Sindri/Constant/SindriInfo.ts +20 -0
  59. package/src/Sindri/Constant/SindriServiceId.ts +32 -0
  60. package/src/Sindri/Generate/Abstract/GenerateDataFromAst.ts +391 -0
  61. package/src/Sindri/Generator/Abstract/AstFileGenerator.ts +54 -0
  62. package/src/Sindri/Generator/Abstract/FileGenerator.ts +59 -0
  63. package/src/Sindri/Generator/Ast/Cli/AstCliDataFileGenerator.ts +88 -0
  64. package/src/Sindri/Generator/Ast/Container/AstContainerDataFileGenerator.ts +86 -0
  65. package/src/Sindri/Generator/Ast/Event/AstEventDataFileGenerator.ts +79 -0
  66. package/src/Sindri/Generator/Ast/Http/AstHttpDataFileGenerator.ts +306 -0
  67. package/src/Sindri/Generator/Cli/Contract/CliDataFileGeneratorContract.ts +23 -0
  68. package/src/Sindri/Generator/Container/Contract/ContainerDataFileGeneratorContract.ts +21 -0
  69. package/src/Sindri/Generator/Contract/FileGeneratorContract.ts +15 -0
  70. package/src/Sindri/Generator/Enum/GenerateStatus.ts +14 -0
  71. package/src/Sindri/Generator/Event/Contract/EventDataFileGeneratorContract.ts +23 -0
  72. package/src/Sindri/Generator/Http/Contract/HttpDataFileGeneratorContract.ts +25 -0
  73. package/src/Sindri/Generator/Throwable/Contract/GeneratorThrowable.ts +12 -0
  74. package/src/Sindri/Generator/Throwable/Exception/Abstract/GeneratorInvalidArgumentException.ts +16 -0
  75. package/src/Sindri/Generator/Throwable/Exception/Abstract/GeneratorRuntimeException.ts +14 -0
  76. package/src/Sindri/Generator/Throwable/Exception/GeneratorUnreachableException.ts +12 -0
  77. package/src/Sindri/Provider/SindriAstServiceProvider.ts +182 -0
  78. package/src/Sindri/Provider/SindriCliRouteProvider.ts +32 -0
  79. package/src/Sindri/Provider/SindriCommandServiceProvider.ts +71 -0
  80. package/src/Sindri/Provider/SindriComponentProvider.ts +41 -0
  81. package/src/Sindri/Throwable/Contract/SindriThrowable.ts +12 -0
  82. package/src/Sindri/Throwable/Exception/Abstract/SindriInvalidArgumentException.ts +16 -0
  83. package/src/Sindri/Throwable/Exception/Abstract/SindriRuntimeException.ts +14 -0
@@ -0,0 +1,182 @@
1
+ /*
2
+ * This file is part of the Sindri package.
3
+ *
4
+ * (c) Melech Mizrachi <melechmizrachi@gmail.com>
5
+ *
6
+ * For the full copyright and license information, please view the LICENSE
7
+ * file that was distributed with this source code.
8
+ */
9
+
10
+ import { CliRouteAttributeReader } from '../Ast/CliRouteAttributeReader.ts';
11
+ import { CliRouteParameterReader } from '../Ast/CliRouteParameterReader.ts';
12
+ import { ComponentProviderReader } from '../Ast/ComponentProviderReader.ts';
13
+ import { ConfigReader } from '../Ast/ConfigReader.ts';
14
+ import { HttpRouteAttributeReader } from '../Ast/HttpRouteAttributeReader.ts';
15
+ import { HttpRouteMiddlewareReader } from '../Ast/HttpRouteMiddlewareReader.ts';
16
+ import { HttpRouteParameterReader } from '../Ast/HttpRouteParameterReader.ts';
17
+ import { ListenerAttributeReader } from '../Ast/ListenerAttributeReader.ts';
18
+ import { ListenerProviderReader } from '../Ast/ListenerProviderReader.ts';
19
+ import { RouteProviderReader } from '../Ast/RouteProviderReader.ts';
20
+ import { ServiceProviderReader } from '../Ast/ServiceProviderReader.ts';
21
+ import { AstCliDataFileGenerator } from '../Generator/Ast/Cli/AstCliDataFileGenerator.ts';
22
+ import { AstContainerDataFileGenerator } from '../Generator/Ast/Container/AstContainerDataFileGenerator.ts';
23
+ import { AstEventDataFileGenerator } from '../Generator/Ast/Event/AstEventDataFileGenerator.ts';
24
+ import { AstHttpDataFileGenerator } from '../Generator/Ast/Http/AstHttpDataFileGenerator.ts';
25
+ import { SindriServiceId } from '../Constant/SindriServiceId.ts';
26
+
27
+ import type { CliRouteAttributeReaderContract } from '../Ast/Contract/CliRouteAttributeReaderContract.ts';
28
+ import type { CliRouteParameterReaderContract } from '../Ast/Contract/CliRouteParameterReaderContract.ts';
29
+ import type { ComponentProviderReaderContract } from '../Ast/Contract/ComponentProviderReaderContract.ts';
30
+ import type { ConfigReaderContract } from '../Ast/Contract/ConfigReaderContract.ts';
31
+ import type { HttpRouteAttributeReaderContract } from '../Ast/Contract/HttpRouteAttributeReaderContract.ts';
32
+ import type { HttpRouteMiddlewareReaderContract } from '../Ast/Contract/HttpRouteMiddlewareReaderContract.ts';
33
+ import type { HttpRouteParameterReaderContract } from '../Ast/Contract/HttpRouteParameterReaderContract.ts';
34
+ import type { ListenerAttributeReaderContract } from '../Ast/Contract/ListenerAttributeReaderContract.ts';
35
+ import type { ListenerProviderReaderContract } from '../Ast/Contract/ListenerProviderReaderContract.ts';
36
+ import type { RouteProviderReaderContract } from '../Ast/Contract/RouteProviderReaderContract.ts';
37
+ import type { ServiceProviderReaderContract } from '../Ast/Contract/ServiceProviderReaderContract.ts';
38
+ import type { CliDataFileGeneratorContract } from '../Generator/Cli/Contract/CliDataFileGeneratorContract.ts';
39
+ import type { ContainerDataFileGeneratorContract } from '../Generator/Container/Contract/ContainerDataFileGeneratorContract.ts';
40
+ import type { EventDataFileGeneratorContract } from '../Generator/Event/Contract/EventDataFileGeneratorContract.ts';
41
+ import type { HttpDataFileGeneratorContract } from '../Generator/Http/Contract/HttpDataFileGeneratorContract.ts';
42
+ import type { ContainerContract } from '@valkyrjaio/valkyrja/Container/Manager/Contract/ContainerContract.ts';
43
+ import type { ServiceProviderContract } from '@valkyrjaio/valkyrja/Container/Provider/Contract/ServiceProviderContract.ts';
44
+
45
+ export class SindriAstServiceProvider implements ServiceProviderContract {
46
+ static publishCliRouteAttributeReader(this: void, container: ContainerContract): void {
47
+ container.setSingleton<CliRouteAttributeReaderContract>(
48
+ SindriServiceId.CliRouteAttributeReaderContract,
49
+ new CliRouteAttributeReader(
50
+ container.getSingleton<CliRouteParameterReaderContract>(
51
+ SindriServiceId.CliRouteParameterReaderContract,
52
+ ),
53
+ ),
54
+ );
55
+ }
56
+
57
+ static publishComponentProviderReader(this: void, container: ContainerContract): void {
58
+ container.setSingleton<ComponentProviderReaderContract>(
59
+ SindriServiceId.ComponentProviderReaderContract,
60
+ new ComponentProviderReader(),
61
+ );
62
+ }
63
+
64
+ static publishConfigReader(this: void, container: ContainerContract): void {
65
+ container.setSingleton<ConfigReaderContract>(SindriServiceId.ConfigReaderContract, new ConfigReader());
66
+ }
67
+
68
+ static publishCliRouteParameterReader(this: void, container: ContainerContract): void {
69
+ container.setSingleton<CliRouteParameterReaderContract>(
70
+ SindriServiceId.CliRouteParameterReaderContract,
71
+ new CliRouteParameterReader(),
72
+ );
73
+ }
74
+
75
+ static publishHttpRouteMiddlewareReader(this: void, container: ContainerContract): void {
76
+ container.setSingleton<HttpRouteMiddlewareReaderContract>(
77
+ SindriServiceId.HttpRouteMiddlewareReaderContract,
78
+ new HttpRouteMiddlewareReader(),
79
+ );
80
+ }
81
+
82
+ static publishHttpRouteParameterReader(this: void, container: ContainerContract): void {
83
+ container.setSingleton<HttpRouteParameterReaderContract>(
84
+ SindriServiceId.HttpRouteParameterReaderContract,
85
+ new HttpRouteParameterReader(),
86
+ );
87
+ }
88
+
89
+ static publishHttpRouteAttributeReader(this: void, container: ContainerContract): void {
90
+ container.setSingleton<HttpRouteAttributeReaderContract>(
91
+ SindriServiceId.HttpRouteAttributeReaderContract,
92
+ new HttpRouteAttributeReader(
93
+ container.getSingleton<HttpRouteParameterReaderContract>(
94
+ SindriServiceId.HttpRouteParameterReaderContract,
95
+ ),
96
+ container.getSingleton<HttpRouteMiddlewareReaderContract>(
97
+ SindriServiceId.HttpRouteMiddlewareReaderContract,
98
+ ),
99
+ ),
100
+ );
101
+ }
102
+
103
+ static publishListenerAttributeReader(this: void, container: ContainerContract): void {
104
+ container.setSingleton<ListenerAttributeReaderContract>(
105
+ SindriServiceId.ListenerAttributeReaderContract,
106
+ new ListenerAttributeReader(),
107
+ );
108
+ }
109
+
110
+ static publishListenerProviderReader(this: void, container: ContainerContract): void {
111
+ container.setSingleton<ListenerProviderReaderContract>(
112
+ SindriServiceId.ListenerProviderReaderContract,
113
+ new ListenerProviderReader(),
114
+ );
115
+ }
116
+
117
+ static publishRouteProviderReader(this: void, container: ContainerContract): void {
118
+ container.setSingleton<RouteProviderReaderContract>(
119
+ SindriServiceId.RouteProviderReaderContract,
120
+ new RouteProviderReader(),
121
+ );
122
+ }
123
+
124
+ static publishServiceProviderReader(this: void, container: ContainerContract): void {
125
+ container.setSingleton<ServiceProviderReaderContract>(
126
+ SindriServiceId.ServiceProviderReaderContract,
127
+ new ServiceProviderReader(),
128
+ );
129
+ }
130
+
131
+ static publishCliDataFileGenerator(this: void, container: ContainerContract): void {
132
+ container.setSingleton<CliDataFileGeneratorContract>(
133
+ SindriServiceId.CliDataFileGeneratorContract,
134
+ new AstCliDataFileGenerator(),
135
+ );
136
+ }
137
+
138
+ static publishContainerDataFileGenerator(this: void, container: ContainerContract): void {
139
+ container.setSingleton<ContainerDataFileGeneratorContract>(
140
+ SindriServiceId.ContainerDataFileGeneratorContract,
141
+ new AstContainerDataFileGenerator(),
142
+ );
143
+ }
144
+
145
+ static publishEventDataFileGenerator(this: void, container: ContainerContract): void {
146
+ container.setSingleton<EventDataFileGeneratorContract>(
147
+ SindriServiceId.EventDataFileGeneratorContract,
148
+ new AstEventDataFileGenerator(),
149
+ );
150
+ }
151
+
152
+ static publishHttpDataFileGenerator(this: void, container: ContainerContract): void {
153
+ container.setSingleton<HttpDataFileGeneratorContract>(
154
+ SindriServiceId.HttpDataFileGeneratorContract,
155
+ new AstHttpDataFileGenerator(),
156
+ );
157
+ }
158
+
159
+ publishers(): Record<string, (container: ContainerContract) => void> {
160
+ return {
161
+ [SindriServiceId.CliRouteAttributeReaderContract]: SindriAstServiceProvider.publishCliRouteAttributeReader,
162
+ [SindriServiceId.ComponentProviderReaderContract]: SindriAstServiceProvider.publishComponentProviderReader,
163
+ [SindriServiceId.ConfigReaderContract]: SindriAstServiceProvider.publishConfigReader,
164
+ [SindriServiceId.CliRouteParameterReaderContract]: SindriAstServiceProvider.publishCliRouteParameterReader,
165
+ [SindriServiceId.HttpRouteMiddlewareReaderContract]:
166
+ SindriAstServiceProvider.publishHttpRouteMiddlewareReader,
167
+ [SindriServiceId.HttpRouteParameterReaderContract]:
168
+ SindriAstServiceProvider.publishHttpRouteParameterReader,
169
+ [SindriServiceId.HttpRouteAttributeReaderContract]:
170
+ SindriAstServiceProvider.publishHttpRouteAttributeReader,
171
+ [SindriServiceId.ListenerAttributeReaderContract]: SindriAstServiceProvider.publishListenerAttributeReader,
172
+ [SindriServiceId.ListenerProviderReaderContract]: SindriAstServiceProvider.publishListenerProviderReader,
173
+ [SindriServiceId.RouteProviderReaderContract]: SindriAstServiceProvider.publishRouteProviderReader,
174
+ [SindriServiceId.ServiceProviderReaderContract]: SindriAstServiceProvider.publishServiceProviderReader,
175
+ [SindriServiceId.CliDataFileGeneratorContract]: SindriAstServiceProvider.publishCliDataFileGenerator,
176
+ [SindriServiceId.ContainerDataFileGeneratorContract]:
177
+ SindriAstServiceProvider.publishContainerDataFileGenerator,
178
+ [SindriServiceId.EventDataFileGeneratorContract]: SindriAstServiceProvider.publishEventDataFileGenerator,
179
+ [SindriServiceId.HttpDataFileGeneratorContract]: SindriAstServiceProvider.publishHttpDataFileGenerator,
180
+ };
181
+ }
182
+ }
@@ -0,0 +1,32 @@
1
+ /*
2
+ * This file is part of the Sindri package.
3
+ *
4
+ * (c) Melech Mizrachi <melechmizrachi@gmail.com>
5
+ *
6
+ * For the full copyright and license information, please view the LICENSE
7
+ * file that was distributed with this source code.
8
+ */
9
+
10
+ import { GenerateDataFromConfigCommand } from '../Cli/Command/GenerateDataFromConfigCommand.ts';
11
+ import { SindriServiceId } from '../Constant/SindriServiceId.ts';
12
+
13
+ import type { OutputContract } from '@valkyrjaio/valkyrja/Cli/Interaction/Output/Contract/OutputContract.ts';
14
+ import type { RouteContract } from '@valkyrjaio/valkyrja/Cli/Routing/Data/Contract/RouteContract.ts';
15
+ import type { CliRouteProviderContract } from '@valkyrjaio/valkyrja/Cli/Routing/Provider/Contract/CliRouteProviderContract.ts';
16
+ import type { ContainerContract } from '@valkyrjaio/valkyrja/Container/Manager/Contract/ContainerContract.ts';
17
+
18
+ export class SindriCliRouteProvider implements CliRouteProviderContract {
19
+ static cliGenerateDataHandler(this: void, container: ContainerContract, _route: RouteContract): OutputContract {
20
+ return container
21
+ .getSingleton<GenerateDataFromConfigCommand>(SindriServiceId.GenerateDataFromConfigCommand)
22
+ .run();
23
+ }
24
+
25
+ getControllerClasses(): (new (...args: unknown[]) => unknown)[] {
26
+ return [GenerateDataFromConfigCommand as new (...args: unknown[]) => unknown];
27
+ }
28
+
29
+ getRoutes(): RouteContract[] {
30
+ return [];
31
+ }
32
+ }
@@ -0,0 +1,71 @@
1
+ /*
2
+ * This file is part of the Sindri package.
3
+ *
4
+ * (c) Melech Mizrachi <melechmizrachi@gmail.com>
5
+ *
6
+ * For the full copyright and license information, please view the LICENSE
7
+ * file that was distributed with this source code.
8
+ */
9
+
10
+ import { GenerateDataFromConfigCommand } from '../Cli/Command/GenerateDataFromConfigCommand.ts';
11
+ import { SindriServiceId } from '../Constant/SindriServiceId.ts';
12
+
13
+ import type { CliRouteAttributeReaderContract } from '../Ast/Contract/CliRouteAttributeReaderContract.ts';
14
+ import type { ComponentProviderReaderContract } from '../Ast/Contract/ComponentProviderReaderContract.ts';
15
+ import type { ConfigReaderContract } from '../Ast/Contract/ConfigReaderContract.ts';
16
+ import type { HttpRouteAttributeReaderContract } from '../Ast/Contract/HttpRouteAttributeReaderContract.ts';
17
+ import type { ListenerAttributeReaderContract } from '../Ast/Contract/ListenerAttributeReaderContract.ts';
18
+ import type { ListenerProviderReaderContract } from '../Ast/Contract/ListenerProviderReaderContract.ts';
19
+ import type { RouteProviderReaderContract } from '../Ast/Contract/RouteProviderReaderContract.ts';
20
+ import type { ServiceProviderReaderContract } from '../Ast/Contract/ServiceProviderReaderContract.ts';
21
+ import type { CliDataFileGeneratorContract } from '../Generator/Cli/Contract/CliDataFileGeneratorContract.ts';
22
+ import type { ContainerDataFileGeneratorContract } from '../Generator/Container/Contract/ContainerDataFileGeneratorContract.ts';
23
+ import type { EventDataFileGeneratorContract } from '../Generator/Event/Contract/EventDataFileGeneratorContract.ts';
24
+ import type { HttpDataFileGeneratorContract } from '../Generator/Http/Contract/HttpDataFileGeneratorContract.ts';
25
+ import { CliInteractionServiceId } from '@valkyrjaio/valkyrja/Cli/Interaction/Constant/CliInteractionServiceId.ts';
26
+ import { CliRoutingServiceId } from '@valkyrjaio/valkyrja/Cli/Routing/Constant/CliRoutingServiceId.ts';
27
+ import type { ContainerContract } from '@valkyrjaio/valkyrja/Container/Manager/Contract/ContainerContract.ts';
28
+ import type { ServiceProviderContract } from '@valkyrjaio/valkyrja/Container/Provider/Contract/ServiceProviderContract.ts';
29
+ import type { OutputFactoryContract } from '@valkyrjaio/valkyrja/Cli/Interaction/Output/Factory/Contract/OutputFactoryContract.ts';
30
+ import type { RouteContract } from '@valkyrjaio/valkyrja/Cli/Routing/Data/Contract/RouteContract.ts';
31
+
32
+ export class SindriCommandServiceProvider implements ServiceProviderContract {
33
+ static publishGenerateDataFromConfigCommand(this: void, container: ContainerContract): void {
34
+ container.setSingleton<GenerateDataFromConfigCommand>(
35
+ SindriServiceId.GenerateDataFromConfigCommand,
36
+ new GenerateDataFromConfigCommand(
37
+ container.getSingleton<RouteContract>(CliRoutingServiceId.RouteContract),
38
+ container.getSingleton<OutputFactoryContract>(CliInteractionServiceId.OutputFactoryContract),
39
+ container.getSingleton<ConfigReaderContract>(SindriServiceId.ConfigReaderContract),
40
+ container.getSingleton<ComponentProviderReaderContract>(
41
+ SindriServiceId.ComponentProviderReaderContract,
42
+ ),
43
+ container.getSingleton<RouteProviderReaderContract>(SindriServiceId.RouteProviderReaderContract),
44
+ container.getSingleton<ListenerProviderReaderContract>(SindriServiceId.ListenerProviderReaderContract),
45
+ container.getSingleton<ServiceProviderReaderContract>(SindriServiceId.ServiceProviderReaderContract),
46
+ container.getSingleton<CliRouteAttributeReaderContract>(
47
+ SindriServiceId.CliRouteAttributeReaderContract,
48
+ ),
49
+ container.getSingleton<HttpRouteAttributeReaderContract>(
50
+ SindriServiceId.HttpRouteAttributeReaderContract,
51
+ ),
52
+ container.getSingleton<ListenerAttributeReaderContract>(
53
+ SindriServiceId.ListenerAttributeReaderContract,
54
+ ),
55
+ container.getSingleton<ContainerDataFileGeneratorContract>(
56
+ SindriServiceId.ContainerDataFileGeneratorContract,
57
+ ),
58
+ container.getSingleton<EventDataFileGeneratorContract>(SindriServiceId.EventDataFileGeneratorContract),
59
+ container.getSingleton<CliDataFileGeneratorContract>(SindriServiceId.CliDataFileGeneratorContract),
60
+ container.getSingleton<HttpDataFileGeneratorContract>(SindriServiceId.HttpDataFileGeneratorContract),
61
+ ),
62
+ );
63
+ }
64
+
65
+ publishers(): Record<string, (container: ContainerContract) => void> {
66
+ return {
67
+ [SindriServiceId.GenerateDataFromConfigCommand]:
68
+ SindriCommandServiceProvider.publishGenerateDataFromConfigCommand,
69
+ };
70
+ }
71
+ }
@@ -0,0 +1,41 @@
1
+ /*
2
+ * This file is part of the Sindri package.
3
+ *
4
+ * (c) Melech Mizrachi <melechmizrachi@gmail.com>
5
+ *
6
+ * For the full copyright and license information, please view the LICENSE
7
+ * file that was distributed with this source code.
8
+ */
9
+
10
+ import { SindriAstServiceProvider } from './SindriAstServiceProvider.ts';
11
+ import { SindriCliRouteProvider } from './SindriCliRouteProvider.ts';
12
+ import { SindriCommandServiceProvider } from './SindriCommandServiceProvider.ts';
13
+
14
+ import type { CliRouteProviderContract } from '@valkyrjaio/valkyrja/Cli/Routing/Provider/Contract/CliRouteProviderContract.ts';
15
+ import type { ApplicationContract } from '@valkyrjaio/valkyrja/Application/Kernel/Contract/ApplicationContract.ts';
16
+ import type { ComponentProviderContract } from '@valkyrjaio/valkyrja/Application/Provider/Contract/ComponentProviderContract.ts';
17
+ import type { ListenerProviderContract } from '@valkyrjaio/valkyrja/Event/Provider/Contract/ListenerProviderContract.ts';
18
+ import type { HttpRouteProviderContract } from '@valkyrjaio/valkyrja/Http/Routing/Provider/Contract/HttpRouteProviderContract.ts';
19
+ import type { ServiceProviderContract } from '@valkyrjaio/valkyrja/Container/Provider/Contract/ServiceProviderContract.ts';
20
+
21
+ export class SindriComponentProvider implements ComponentProviderContract {
22
+ getComponentProviders(_app: ApplicationContract): ComponentProviderContract[] {
23
+ return [];
24
+ }
25
+
26
+ getContainerProviders(_app: ApplicationContract): ServiceProviderContract[] {
27
+ return [new SindriAstServiceProvider(), new SindriCommandServiceProvider()];
28
+ }
29
+
30
+ getEventProviders(_app: ApplicationContract): ListenerProviderContract[] {
31
+ return [];
32
+ }
33
+
34
+ getCliProviders(_app: ApplicationContract): CliRouteProviderContract[] {
35
+ return [new SindriCliRouteProvider()];
36
+ }
37
+
38
+ getHttpProviders(_app: ApplicationContract): HttpRouteProviderContract[] {
39
+ return [];
40
+ }
41
+ }
@@ -0,0 +1,12 @@
1
+ /*
2
+ * This file is part of the Sindri package.
3
+ *
4
+ * (c) Melech Mizrachi <melechmizrachi@gmail.com>
5
+ *
6
+ * For the full copyright and license information, please view the LICENSE
7
+ * file that was distributed with this source code.
8
+ */
9
+
10
+ import type { ValkyrjaThrowable } from '@valkyrjaio/valkyrja/Throwable/Contract/ValkyrjaThrowable.ts';
11
+
12
+ export type SindriThrowable = ValkyrjaThrowable;
@@ -0,0 +1,16 @@
1
+ /*
2
+ * This file is part of the Sindri package.
3
+ *
4
+ * (c) Melech Mizrachi <melechmizrachi@gmail.com>
5
+ *
6
+ * For the full copyright and license information, please view the LICENSE
7
+ * file that was distributed with this source code.
8
+ */
9
+
10
+ import { ValkyrjaInvalidArgumentException } from '@valkyrjaio/valkyrja/Throwable/Exception/Abstract/ValkyrjaInvalidArgumentException.ts';
11
+
12
+ import type { SindriThrowable } from '../../Contract/SindriThrowable.ts';
13
+
14
+ export abstract class SindriInvalidArgumentException
15
+ extends ValkyrjaInvalidArgumentException
16
+ implements SindriThrowable {}
@@ -0,0 +1,14 @@
1
+ /*
2
+ * This file is part of the Sindri package.
3
+ *
4
+ * (c) Melech Mizrachi <melechmizrachi@gmail.com>
5
+ *
6
+ * For the full copyright and license information, please view the LICENSE
7
+ * file that was distributed with this source code.
8
+ */
9
+
10
+ import { ValkyrjaRuntimeException } from '@valkyrjaio/valkyrja/Throwable/Exception/Abstract/ValkyrjaRuntimeException.ts';
11
+
12
+ import type { SindriThrowable } from '../../Contract/SindriThrowable.ts';
13
+
14
+ export abstract class SindriRuntimeException extends ValkyrjaRuntimeException implements SindriThrowable {}