Skip to content

Commit 34b34b0

Browse files
authored
Merge pull request #373 from mattpolzin/load-external-references-v4-take2-3_0-port
Port of `ExternallyDereferenceable` to `OpenAPIKit30` module
2 parents 7539414 + a49d111 commit 34b34b0

File tree

57 files changed

+1134
-147
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

57 files changed

+1134
-147
lines changed

Sources/OpenAPIKit/Components Object/Components.swift

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -320,7 +320,7 @@ extension OpenAPI.Components {
320320
}
321321

322322
extension OpenAPI.Components {
323-
internal mutating func externallyDereference<Context: ExternalLoader>(in context: Context.Type, depth: ExternalDereferenceDepth = .iterations(1)) async throws {
323+
internal mutating func externallyDereference<Loader: ExternalLoader>(with loader: Loader.Type, depth: ExternalDereferenceDepth = .iterations(1)) async throws {
324324
if case let .iterations(number) = depth,
325325
number <= 0 {
326326
return
@@ -336,15 +336,15 @@ extension OpenAPI.Components {
336336
let oldCallbacks = callbacks
337337
let oldPathItems = pathItems
338338

339-
async let (newSchemas, c1) = oldSchemas.externallyDereferenced(with: context)
340-
async let (newResponses, c2) = oldResponses.externallyDereferenced(with: context)
341-
async let (newParameters, c3) = oldParameters.externallyDereferenced(with: context)
342-
async let (newExamples, c4) = oldExamples.externallyDereferenced(with: context)
343-
async let (newRequestBodies, c5) = oldRequestBodies.externallyDereferenced(with: context)
344-
async let (newHeaders, c6) = oldHeaders.externallyDereferenced(with: context)
345-
async let (newSecuritySchemes, c7) = oldSecuritySchemes.externallyDereferenced(with: context)
346-
async let (newCallbacks, c8) = oldCallbacks.externallyDereferenced(with: context)
347-
async let (newPathItems, c9) = oldPathItems.externallyDereferenced(with: context)
339+
async let (newSchemas, c1) = oldSchemas.externallyDereferenced(with: loader)
340+
async let (newResponses, c2) = oldResponses.externallyDereferenced(with: loader)
341+
async let (newParameters, c3) = oldParameters.externallyDereferenced(with: loader)
342+
async let (newExamples, c4) = oldExamples.externallyDereferenced(with: loader)
343+
async let (newRequestBodies, c5) = oldRequestBodies.externallyDereferenced(with: loader)
344+
async let (newHeaders, c6) = oldHeaders.externallyDereferenced(with: loader)
345+
async let (newSecuritySchemes, c7) = oldSecuritySchemes.externallyDereferenced(with: loader)
346+
async let (newCallbacks, c8) = oldCallbacks.externallyDereferenced(with: loader)
347+
async let (newPathItems, c9) = oldPathItems.externallyDereferenced(with: loader)
348348

349349
schemas = try await newSchemas
350350
responses = try await newResponses
@@ -391,9 +391,9 @@ extension OpenAPI.Components {
391391

392392
switch depth {
393393
case .iterations(let number):
394-
try await externallyDereference(in: context, depth: .iterations(number - 1))
394+
try await externallyDereference(with: loader, depth: .iterations(number - 1))
395395
case .full:
396-
try await externallyDereference(in: context, depth: .full)
396+
try await externallyDereference(with: loader, depth: .full)
397397
}
398398
}
399399
}

Sources/OpenAPIKit/Content/DereferencedContent.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ extension OpenAPI.Content: LocallyDereferenceable {
7777
}
7878

7979
extension OpenAPI.Content: ExternallyDereferenceable {
80-
public func externallyDereferenced<Context: ExternalLoader>(with loader: Context.Type) async throws -> (Self, OpenAPI.Components) {
80+
public func externallyDereferenced<Loader: ExternalLoader>(with loader: Loader.Type) async throws -> (Self, OpenAPI.Components) {
8181
let oldSchema = schema
8282

8383
async let (newSchema, c1) = oldSchema.externallyDereferenced(with: loader)

Sources/OpenAPIKit/Content/DereferencedContentEncoding.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ extension OpenAPI.Content.Encoding: LocallyDereferenceable {
5858
}
5959

6060
extension OpenAPI.Content.Encoding: ExternallyDereferenceable {
61-
public func externallyDereferenced<Context: ExternalLoader>(with loader: Context.Type) async throws -> (Self, OpenAPI.Components) {
61+
public func externallyDereferenced<Loader: ExternalLoader>(with loader: Loader.Type) async throws -> (Self, OpenAPI.Components) {
6262
let newHeaders: OpenAPI.Header.Map?
6363
let newComponents: OpenAPI.Components
6464

Sources/OpenAPIKit/Document/Document.swift

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -362,7 +362,7 @@ extension OpenAPI.Document {
362362
return try DereferencedDocument(self)
363363
}
364364

365-
public mutating func externallyDereference<Context: ExternalLoader>(in context: Context.Type, depth: ExternalDereferenceDepth = .iterations(1)) async throws {
365+
public mutating func externallyDereference<Loader: ExternalLoader>(with loader: Loader.Type, depth: ExternalDereferenceDepth = .iterations(1)) async throws {
366366
if case let .iterations(number) = depth,
367367
number <= 0 {
368368
return
@@ -371,15 +371,15 @@ extension OpenAPI.Document {
371371
let oldPaths = paths
372372
let oldWebhooks = webhooks
373373

374-
async let (newPaths, c1) = oldPaths.externallyDereferenced(with: context)
375-
async let (newWebhooks, c2) = oldWebhooks.externallyDereferenced(with: context)
374+
async let (newPaths, c1) = oldPaths.externallyDereferenced(with: loader)
375+
async let (newWebhooks, c2) = oldWebhooks.externallyDereferenced(with: loader)
376376

377377
paths = try await newPaths
378378
webhooks = try await newWebhooks
379379
try await components.merge(c1)
380380
try await components.merge(c2)
381381

382-
try await components.externallyDereference(in: context, depth: depth)
382+
try await components.externallyDereference(with: loader, depth: depth)
383383
}
384384
}
385385

Sources/OpenAPIKit/Either/Either+ExternallyDereferenceable.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import OpenAPIKitCore
1010
// MARK: - ExternallyDereferenceable
1111
extension Either: ExternallyDereferenceable where A: ExternallyDereferenceable, B: ExternallyDereferenceable {
1212

13-
public func externallyDereferenced<Context: ExternalLoader>(with loader: Context.Type) async throws -> (Self, OpenAPI.Components) {
13+
public func externallyDereferenced<Loader: ExternalLoader>(with loader: Loader.Type) async throws -> (Self, OpenAPI.Components) {
1414
switch self {
1515
case .a(let a):
1616
let (newA, components) = try await a.externallyDereferenced(with: loader)

Sources/OpenAPIKit/Example.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -209,7 +209,7 @@ extension OpenAPI.Example: LocallyDereferenceable {
209209
}
210210

211211
extension OpenAPI.Example: ExternallyDereferenceable {
212-
public func externallyDereferenced<Context: ExternalLoader>(with loader: Context.Type) async throws -> (Self, OpenAPI.Components) {
212+
public func externallyDereferenced<Loader: ExternalLoader>(with loader: Loader.Type) async throws -> (Self, OpenAPI.Components) {
213213
return (self, .init())
214214
}
215215
}

Sources/OpenAPIKit/ExternalLoader.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,5 +30,5 @@ public protocol ExternalLoader {
3030
}
3131

3232
public protocol ExternallyDereferenceable {
33-
func externallyDereferenced<Context: ExternalLoader>(with loader: Context.Type) async throws -> (Self, OpenAPI.Components)
33+
func externallyDereferenced<Loader: ExternalLoader>(with loader: Loader.Type) async throws -> (Self, OpenAPI.Components)
3434
}

Sources/OpenAPIKit/Header/DereferencedHeader.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ extension OpenAPI.Header: LocallyDereferenceable {
8484
}
8585

8686
extension OpenAPI.Header: ExternallyDereferenceable {
87-
public func externallyDereferenced<Context: ExternalLoader>(with loader: Context.Type) async throws -> (Self, OpenAPI.Components) {
87+
public func externallyDereferenced<Loader: ExternalLoader>(with loader: Loader.Type) async throws -> (Self, OpenAPI.Components) {
8888

8989
// if not for a Swift bug, this whole next bit would just be the
9090
// next line:

Sources/OpenAPIKit/JSONReference.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -538,7 +538,7 @@ extension JSONReference: LocallyDereferenceable where ReferenceType: LocallyDere
538538
}
539539

540540
extension JSONReference: ExternallyDereferenceable where ReferenceType: ExternallyDereferenceable & Decodable & Equatable {
541-
public func externallyDereferenced<Context: ExternalLoader>(with loader: Context.Type) async throws -> (Self, OpenAPI.Components) {
541+
public func externallyDereferenced<Loader: ExternalLoader>(with loader: Loader.Type) async throws -> (Self, OpenAPI.Components) {
542542
switch self {
543543
case .internal(let ref):
544544
return (.internal(ref), .init())
@@ -580,7 +580,7 @@ extension OpenAPI.Reference: LocallyDereferenceable where ReferenceType: Locally
580580
}
581581

582582
extension OpenAPI.Reference: ExternallyDereferenceable where ReferenceType: ExternallyDereferenceable & Decodable & Equatable {
583-
public func externallyDereferenced<Context: ExternalLoader>(with loader: Context.Type) async throws -> (Self, OpenAPI.Components) {
583+
public func externallyDereferenced<Loader: ExternalLoader>(with loader: Loader.Type) async throws -> (Self, OpenAPI.Components) {
584584
let (newRef, components) = try await jsonReference.externallyDereferenced(with: loader)
585585
return (.init(newRef), components)
586586
}

Sources/OpenAPIKit/Link.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -290,7 +290,7 @@ extension OpenAPI.Link: LocallyDereferenceable {
290290
}
291291

292292
extension OpenAPI.Link: ExternallyDereferenceable {
293-
public func externallyDereferenced<Context: ExternalLoader>(with loader: Context.Type) async throws -> (Self, OpenAPI.Components) {
293+
public func externallyDereferenced<Loader: ExternalLoader>(with loader: Loader.Type) async throws -> (Self, OpenAPI.Components) {
294294
let (newServer, newComponents) = try await server.externallyDereferenced(with: loader)
295295

296296
var newLink = self

0 commit comments

Comments
 (0)