Skip to content

Commit 8646df8

Browse files
author
simonbility
committed
Apply x-swift-open-api-replace-type extension
1 parent 8fe84b7 commit 8646df8

File tree

3 files changed

+14
-28
lines changed

3 files changed

+14
-28
lines changed

Examples/replace-types-example/Sources/Types/Generated/Types.swift

Lines changed: 7 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@ import struct Foundation.URL
99
import struct Foundation.Data
1010
import struct Foundation.Date
1111
#endif
12+
import Foundation
13+
import ExternalLibrary
1214
/// A type that performs HTTP operations defined by the OpenAPI document.
1315
package protocol APIProtocol: Sendable {
1416
/// - Remark: HTTP `GET /user`.
@@ -58,40 +60,17 @@ package enum Components {
5860
/// Types generated from the `#/components/schemas` section of the OpenAPI document.
5961
package enum Schemas {
6062
/// - Remark: Generated from `#/components/schemas/UUID`.
61-
package typealias Uuid = Swift.String
63+
package typealias Uuid = Foundation.UUID
6264
/// A value with the greeting contents.
6365
///
6466
/// - Remark: Generated from `#/components/schemas/User`.
6567
package struct User: Codable, Hashable, Sendable {
6668
/// - Remark: Generated from `#/components/schemas/User/id`.
6769
package var id: Components.Schemas.Uuid?
6870
/// - Remark: Generated from `#/components/schemas/User/favorite_prime_number`.
69-
package var favoritePrimeNumber: Swift.Int?
71+
package var favoritePrimeNumber: ExternalLibrary.PrimeNumber?
7072
/// - Remark: Generated from `#/components/schemas/User/foo`.
71-
package struct FooPayload: Codable, Hashable, Sendable {
72-
/// - Remark: Generated from `#/components/schemas/User/foo/foo`.
73-
package var foo: Swift.String?
74-
/// - Remark: Generated from `#/components/schemas/User/foo/bar`.
75-
package var bar: Swift.String?
76-
/// Creates a new `FooPayload`.
77-
///
78-
/// - Parameters:
79-
/// - foo:
80-
/// - bar:
81-
package init(
82-
foo: Swift.String? = nil,
83-
bar: Swift.String? = nil
84-
) {
85-
self.foo = foo
86-
self.bar = bar
87-
}
88-
package enum CodingKeys: String, CodingKey {
89-
case foo
90-
case bar
91-
}
92-
}
93-
/// - Remark: Generated from `#/components/schemas/User/foo`.
94-
package var foo: Components.Schemas.User.FooPayload?
73+
package var foo: ExternalLibrary.ExternalObject?
9574
/// Creates a new `User`.
9675
///
9776
/// - Parameters:
@@ -100,8 +79,8 @@ package enum Components {
10079
/// - foo:
10180
package init(
10281
id: Components.Schemas.Uuid? = nil,
103-
favoritePrimeNumber: Swift.Int? = nil,
104-
foo: Components.Schemas.User.FooPayload? = nil
82+
favoritePrimeNumber: ExternalLibrary.PrimeNumber? = nil,
83+
foo: ExternalLibrary.ExternalObject? = nil
10584
) {
10685
self.id = id
10786
self.favoritePrimeNumber = favoritePrimeNumber

Examples/replace-types-example/Sources/Types/openapi-generator-config.yaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,3 +2,6 @@ generate:
22
- types
33
accessModifier: package
44
namingStrategy: idiomatic
5+
additionalImports:
6+
- Foundation
7+
- ExternalLibrary

Examples/replace-types-example/Sources/openapi.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ components:
2828
UUID:
2929
type: string
3030
format: uuid
31+
x-swift-open-api-replace-type: Foundation.UUID
3132

3233
User:
3334
type: object
@@ -37,10 +38,13 @@ components:
3738
$ref: '#/components/schemas/UUID'
3839
favorite_prime_number:
3940
type: integer
41+
x-swift-open-api-replace-type: ExternalLibrary.PrimeNumber
4042
foo:
4143
type: object
4244
properties:
4345
foo:
4446
type: string
4547
bar:
4648
type: string
49+
50+
x-swift-open-api-replace-type: ExternalLibrary.ExternalObject

0 commit comments

Comments
 (0)