@@ -6,10 +6,8 @@ import {{ import }}
66{% endfor %}
77{% endif %}
88
9- /**
10- PURPOSE:
11- The interface of the Flow.
12- */
9+ /// PURPOSE:
10+ /// The interface of the Flow.
1311/// @mockable
1412@MainActor
1513{% if owns_view %}
@@ -27,10 +25,8 @@ internal protocol {{ node_name }}Flow: Flow {}
2725{% endif %}
2826{% if node_name != "App" %}
2927
30- /**
31- PURPOSE:
32- Declares the dependencies required by this Node that will be injected (not created by this Node itself).
33- */
28+ /// PURPOSE:
29+ /// Declares the dependencies required by this Node that will be injected (not created by this Node itself).
3430/// @mockable
3531@MainActor
3632{% if dependencies %}
@@ -44,12 +40,10 @@ public protocol {{ node_name }}Dependency: Dependency {}
4440{% endif %}
4541{% endif %}
4642
47- /**
48- PURPOSE:
49- A dependency needed by the Builder (such as a Listener), passed in from the caller (i.e. is not on the DI graph).
50-
51- Can be a tuple or struct containing multiple values when necessary.
52- */
43+ /// PURPOSE:
44+ /// A dependency needed by the Builder (such as a Listener), passed in from the caller (i.e. is not on the DI graph).
45+ ///
46+ /// Can be a tuple or struct containing multiple values when necessary.
5347{% if owns_view %}
5448internal typealias {{ node_name }}DynamicBuildDependency = {{ node_name }}Listener
5549{% elif node_name == "App" %}
@@ -58,20 +52,16 @@ internal typealias {{ node_name }}DynamicBuildDependency = Void
5852internal typealias {{ node_name }}DynamicBuildDependency = ({{ node_name }}Listener, {{ node_name }}ViewControllable)
5953{% endif %}
6054
61- /**
62- PURPOSE:
63- A dependency used by the Component itself, passed into the Component's initializer (in the Component factory).
64-
65- Can be a tuple or struct containing multiple values when necessary.
66- */
55+ /// PURPOSE:
56+ /// A dependency used by the Component itself, passed into the Component's initializer (in the Component factory).
57+ ///
58+ /// Can be a tuple or struct containing multiple values when necessary.
6759internal typealias {{ node_name }}DynamicComponentDependency = Void
6860
6961// MARK: - Component
7062
71- /**
72- PURPOSE:
73- Declares dependencies that are owned by this Node.
74- */
63+ /// PURPOSE:
64+ /// Declares dependencies that are owned by this Node.
7565{% if node_name == "App" %}
7666public final class {{ node_name }}Component: BootstrapComponent {
7767{% else %}
@@ -82,28 +72,28 @@ public final class {{ node_name }}Component: Component
8272{% endif %}
8373
8474 /*
85- Dependencies
86- ============
87-
88- Declare dependencies as 'fileprivate' properties (increasing access control only as necessary).
89-
90- fileprivate let example: Example = .init()
91-
92- Whenever possible, for example when the dependency does not provide shared state, define the property as a
93- factory that always returns a new instance. Factory properties are preferred over factory methods to ensure
94- Needle compatibility whenever the access control is increased.
95-
96- fileprivate var exampleFactory: Example {
97- Example()
98- }
99-
100- When shared state is desired but the dependency depends on another dependency, use the `shared` helper method
101- that always returns the same instance from a computed property.
102-
103- fileprivate var example: Example {
104- shared { Example(otherDependency: dependency.otherDependency) }
105- }
106-
75+ * Dependencies
76+ * ============
77+ *
78+ * Declare dependencies as 'fileprivate' properties (increasing access control only as necessary).
79+ *
80+ * fileprivate let example: Example = .init()
81+ *
82+ * Whenever possible, for example when the dependency does not provide shared state, define the property as a
83+ * factory that always returns a new instance. Factory properties are preferred over factory methods to ensure
84+ * Needle compatibility whenever the access control is increased.
85+ *
86+ * fileprivate var exampleFactory: Example {
87+ * Example()
88+ * }
89+ *
90+ * When shared state is desired but the dependency depends on another dependency, use the `shared` helper method
91+ * that always returns the same instance from a computed property.
92+ *
93+ * fileprivate var example: Example {
94+ * shared { Example(otherDependency: dependency.otherDependency) }
95+ * }
96+ *
10797 */
10898 {% if component_dependencies %}
10999
@@ -144,15 +134,15 @@ public final class {{ node_name }}Component: Component
144134 }
145135
146136 /*
147- Child Components
148- ================
149-
150- Declare child component factories as 'fileprivate' methods.
151-
152- fileprivate func <name>ComponentFactory() -> <Name>Component {
153- <Name>Component(parent: self)
154- }
155-
137+ * Child Components
138+ * ================
139+ *
140+ * Declare child component factories as 'fileprivate' methods.
141+ *
142+ * fileprivate func <name>ComponentFactory() -> <Name>Component {
143+ * <Name>Component(parent: self)
144+ * }
145+ *
156146 */
157147 {% if node_name == "App" %}
158148
@@ -177,10 +167,8 @@ public final class {{ node_name }}Component: Component
177167{% if is_periphery_comment_enabled %}
178168// periphery:ignore
179169{% endif %}
180- /**
181- PURPOSE:
182- The Builder interface (available to mock for testability).
183- */
170+ /// PURPOSE:
171+ /// The Builder interface (available to mock for testability).
184172/// @mockable
185173@MainActor
186174{% if plugin_list_name %}
@@ -205,10 +193,8 @@ internal protocol {{ node_name }}Builder: AnyObject {
205193{% if is_periphery_comment_enabled %}
206194// periphery:ignore
207195{% endif %}
208- /**
209- PURPOSE:
210- Concrete implementation of the Builder, where everything is created and associated.
211- */
196+ /// PURPOSE:
197+ /// Concrete implementation of the Builder, where everything is created and associated.
212198internal final class {{ node_name }}BuilderImp: AbstractBuilder
213199<
214200 {{ node_name }}Component,
0 commit comments