Skip to content

Commit ed61a43

Browse files
Add config for interface imports (#908)
1 parent 3229eb6 commit ed61a43

22 files changed

+62
-22
lines changed

Sources/NodesGenerator/Config.swift

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ public struct Config: Codable, Equatable {
3838
public var dependencyInjectionImports: Set<String>
3939
public var builderImports: Set<String>
4040
public var flowImports: Set<String>
41+
public var interfaceImports: Set<String>
4142
public var pluginListImports: Set<String>
4243
public var viewControllerImports: Set<String>
4344
public var dependencies: [Variable]
@@ -94,6 +95,7 @@ extension Config {
9495
dependencyInjectionImports = ["NeedleFoundation"]
9596
builderImports = []
9697
flowImports = []
98+
interfaceImports = []
9799
pluginListImports = []
98100
viewControllerImports = []
99101
dependencies = []
@@ -168,6 +170,9 @@ extension Config {
168170
flowImports =
169171
(try? decoder.decode(CodingKeys.flowImports))
170172
?? defaults.flowImports
173+
interfaceImports =
174+
(try? decoder.decode(CodingKeys.interfaceImports))
175+
?? defaults.interfaceImports
171176
pluginListImports =
172177
(try? decoder.decode(CodingKeys.pluginListImports))
173178
?? defaults.pluginListImports

Sources/NodesGenerator/StencilTemplate.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -287,6 +287,7 @@ public enum StencilTemplate: CustomStringConvertible, Equatable, Sendable {
287287
case .interface:
288288
config.baseImports
289289
.union(["Nodes"])
290+
.union(config.interfaceImports)
290291
case .plugin:
291292
config.baseImports
292293
.union(["Nodes"])

Tests/NodesGeneratorTests/ConfigTests.swift

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -157,6 +157,9 @@ final class ConfigTests: XCTestCase, TestFactories {
157157
flowImports:
158158
- <flowImports-1>
159159
- <flowImports-2>
160+
interfaceImports:
161+
- <interfaceImports-1>
162+
- <interfaceImports-2>
160163
pluginListImports:
161164
- <pluginListImports-1>
162165
- <pluginListImports-2>

Tests/NodesGeneratorTests/StencilTemplateTests.swift

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -341,6 +341,7 @@ final class StencilTemplateTests: XCTestCase, TestFactories {
341341
case .interface:
342342
expect(imports) == [
343343
"<baseImport>",
344+
"<interfaceImport>",
344345
"Nodes"
345346
]
346347
case .plugin:
@@ -466,6 +467,7 @@ final class StencilTemplateTests: XCTestCase, TestFactories {
466467
case .interface:
467468
expect(imports) == [
468469
"<baseImport>",
470+
"<interfaceImport>",
469471
"Nodes"
470472
]
471473
case .plugin:

Tests/NodesGeneratorTests/Support/TestFactories.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ extension TestFactories {
3434
config.dependencyInjectionImports = ["<dependencyInjectionImport>"]
3535
config.builderImports = ["<builderImport>"]
3636
config.flowImports = ["<flowImport>"]
37+
config.interfaceImports = ["<interfaceImport>"]
3738
config.pluginListImports = ["<pluginListImport>"]
3839
config.viewControllerImports = ["<viewControllerImport>"]
3940
config.dependencies = [Variable(name: "<dependencyName>", type: "<dependencyType>")]

Tests/NodesGeneratorTests/__Snapshots__/ConfigTests/testConfig.1.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,9 @@
3838
▿ Variable
3939
- name: "<flowProperties-name-2>"
4040
- type: "<flowProperties-type-2>"
41+
▿ interfaceImports: 2 members
42+
- "<interfaceImports-1>"
43+
- "<interfaceImports-2>"
4144
- isObservableStoreEnabled: false
4245
- isPeripheryCommentEnabled: true
4346
- isPreviewProviderEnabled: true

Tests/NodesGeneratorTests/__Snapshots__/ConfigTests/testConfigWithEmptyFileContents.1.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
- "NeedleFoundation"
1313
- flowImports: 0 members
1414
- flowProperties: 0 elements
15+
- interfaceImports: 0 members
1516
- isObservableStoreEnabled: false
1617
- isPeripheryCommentEnabled: false
1718
- isPreviewProviderEnabled: false

Tests/NodesGeneratorTests/__Snapshots__/ConfigTests/testDecodingFromEmptyString.1.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
- "NeedleFoundation"
1313
- flowImports: 0 members
1414
- flowProperties: 0 elements
15+
- interfaceImports: 0 members
1516
- isObservableStoreEnabled: false
1617
- isPeripheryCommentEnabled: false
1718
- isPreviewProviderEnabled: false

Tests/NodesGeneratorTests/__Snapshots__/ConfigTests/testDecodingWithEmptyArray.1.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
- "NeedleFoundation"
1313
- flowImports: 0 members
1414
- flowProperties: 0 elements
15+
- interfaceImports: 0 members
1516
- isObservableStoreEnabled: false
1617
- isPeripheryCommentEnabled: false
1718
- isPreviewProviderEnabled: false

Tests/NodesGeneratorTests/__Snapshots__/XcodeTemplatePermutationTests/testNodeViewInjectedXcodeTemplatePermutation.1.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,9 @@
5555
- value: "<flowPropertyType>"
5656
▿ flowTestsImports: 1 element
5757
- "<baseTestImport>"
58-
▿ interfaceImports: 2 elements
58+
▿ interfaceImports: 3 elements
5959
- "<baseImport>"
60+
- "<interfaceImport>"
6061
- "Nodes"
6162
- isNimbleEnabled: false
6263
- isPeripheryCommentEnabled: true

0 commit comments

Comments
 (0)