Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: allow fully qualified ParseSwift types #397

Merged
merged 4 commits into from
Aug 30, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 7 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,15 @@
# Parse-Swift Changelog

### main
[Full Changelog](https://github.com/parse-community/Parse-Swift/compare/4.9.1...main)
[Full Changelog](https://github.com/parse-community/Parse-Swift/compare/4.9.2...main)
* _Contributing to this repo? Add info about your change here to be included in the next release_

### 4.9.2
[Full Changelog](https://github.com/parse-community/Parse-Swift/compare/4.9.1...4.9.2)

__Fixes__
- Allow fully qualified ParseSwift types to be used externally by fixing clash with module name ([#397](https://github.com/parse-community/Parse-Swift/pull/397)), thanks to [Corey Baker](https://github.com/cbaker6).

### 4.9.1
[Full Changelog](https://github.com/parse-community/Parse-Swift/compare/4.9.0...4.9.1)

Expand Down
10 changes: 10 additions & 0 deletions ParseSwift.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -315,6 +315,10 @@
7045769E26BD934000F86F71 /* ParseFile+async.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7045769C26BD934000F86F71 /* ParseFile+async.swift */; };
7045769F26BD934000F86F71 /* ParseFile+async.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7045769C26BD934000F86F71 /* ParseFile+async.swift */; };
704576A026BD934000F86F71 /* ParseFile+async.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7045769C26BD934000F86F71 /* ParseFile+async.swift */; };
704C886C28BE69A8008E6B01 /* ParseConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 704C886B28BE69A8008E6B01 /* ParseConfiguration.swift */; };
704C886D28BE69A8008E6B01 /* ParseConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 704C886B28BE69A8008E6B01 /* ParseConfiguration.swift */; };
704C886E28BE69A8008E6B01 /* ParseConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 704C886B28BE69A8008E6B01 /* ParseConfiguration.swift */; };
704C886F28BE69A8008E6B01 /* ParseConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 704C886B28BE69A8008E6B01 /* ParseConfiguration.swift */; };
705025992842FD3B008D6624 /* ParseCLPTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 705025982842FD3B008D6624 /* ParseCLPTests.swift */; };
7050259A2842FD3B008D6624 /* ParseCLPTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 705025982842FD3B008D6624 /* ParseCLPTests.swift */; };
7050259B2842FD3B008D6624 /* ParseCLPTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 705025982842FD3B008D6624 /* ParseCLPTests.swift */; };
Expand Down Expand Up @@ -1229,6 +1233,7 @@
7045769226BD8F8100F86F71 /* ParseInstallation+async.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "ParseInstallation+async.swift"; sourceTree = "<group>"; };
7045769726BD917500F86F71 /* Query+async.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Query+async.swift"; sourceTree = "<group>"; };
7045769C26BD934000F86F71 /* ParseFile+async.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "ParseFile+async.swift"; sourceTree = "<group>"; };
704C886B28BE69A8008E6B01 /* ParseConfiguration.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ParseConfiguration.swift; sourceTree = "<group>"; };
705025982842FD3B008D6624 /* ParseCLPTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ParseCLPTests.swift; sourceTree = "<group>"; };
7050259C2843F0CF008D6624 /* ParseSchemaAsyncTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ParseSchemaAsyncTests.swift; sourceTree = "<group>"; };
705025A02843F0E7008D6624 /* ParseSchemaCombineTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ParseSchemaCombineTests.swift; sourceTree = "<group>"; };
Expand Down Expand Up @@ -2112,6 +2117,7 @@
70D1BDB925BB17A600A42E7C /* ParseConfig.swift */,
703B090B26BD984D005A112F /* ParseConfig+async.swift */,
7044C18225C4EFC10011F6E7 /* ParseConfig+combine.swift */,
704C886B28BE69A8008E6B01 /* ParseConfiguration.swift */,
F97B45BF24D9C6F200F4A88B /* ParseError.swift */,
709A148628396B1C00BF85E5 /* ParseField.swift */,
705025A828441C96008D6624 /* ParseFieldOptions.swift */,
Expand Down Expand Up @@ -2733,6 +2739,7 @@
705A9A2F25991C1400B3547F /* Fileable.swift in Sources */,
89899D342603CF36002E2043 /* ParseTwitter.swift in Sources */,
7C55F9F12860CEEF002A352D /* ParseSpotify+combine.swift in Sources */,
704C886C28BE69A8008E6B01 /* ParseConfiguration.swift in Sources */,
70B4E0BC2762F1D5004C9757 /* QueryConstraint.swift in Sources */,
70C167B427304F09009F4E30 /* Pointer+async.swift in Sources */,
705025AE28456106008D6624 /* ParsePushStatusable.swift in Sources */,
Expand Down Expand Up @@ -3041,6 +3048,7 @@
89899D332603CF36002E2043 /* ParseTwitter.swift in Sources */,
70B4E0BD2762F1D5004C9757 /* QueryConstraint.swift in Sources */,
7C55F9F22860CEEF002A352D /* ParseSpotify+combine.swift in Sources */,
704C886D28BE69A8008E6B01 /* ParseConfiguration.swift in Sources */,
70C167B527304F09009F4E30 /* Pointer+async.swift in Sources */,
F97B464B24D9C78B00F4A88B /* Delete.swift in Sources */,
705025AF28456106008D6624 /* ParsePushStatusable.swift in Sources */,
Expand Down Expand Up @@ -3481,6 +3489,7 @@
705A9A3225991C1400B3547F /* Fileable.swift in Sources */,
70B4E0BF2762F1D5004C9757 /* QueryConstraint.swift in Sources */,
7C55F9F42860CEEF002A352D /* ParseSpotify+combine.swift in Sources */,
704C886F28BE69A8008E6B01 /* ParseConfiguration.swift in Sources */,
89899D282603CF35002E2043 /* ParseTwitter.swift in Sources */,
70C167B727304F09009F4E30 /* Pointer+async.swift in Sources */,
705025B128456106008D6624 /* ParsePushStatusable.swift in Sources */,
Expand Down Expand Up @@ -3666,6 +3675,7 @@
705A9A3125991C1400B3547F /* Fileable.swift in Sources */,
70B4E0BE2762F1D5004C9757 /* QueryConstraint.swift in Sources */,
7C55F9F32860CEEF002A352D /* ParseSpotify+combine.swift in Sources */,
704C886E28BE69A8008E6B01 /* ParseConfiguration.swift in Sources */,
89899D322603CF35002E2043 /* ParseTwitter.swift in Sources */,
70C167B627304F09009F4E30 /* Pointer+async.swift in Sources */,
705025B028456106008D6624 /* ParsePushStatusable.swift in Sources */,
Expand Down
20 changes: 10 additions & 10 deletions Sources/ParseSwift/API/API+Command.swift
Original file line number Diff line number Diff line change
Expand Up @@ -60,16 +60,16 @@ internal extension API {
case .success(let urlRequest):
if method == .POST || method == .PUT || method == .PATCH {
let task = URLSession.parse.uploadTask(withStreamedRequest: urlRequest)
ParseSwift.sessionDelegate.streamDelegates[task] = stream
Parse.sessionDelegate.streamDelegates[task] = stream
#if compiler(>=5.5.2) && canImport(_Concurrency)
Task {
await ParseSwift.sessionDelegate.delegates.updateUpload(task, callback: uploadProgress)
await ParseSwift.sessionDelegate.delegates.updateTask(task, queue: callbackQueue)
await Parse.sessionDelegate.delegates.updateUpload(task, callback: uploadProgress)
await Parse.sessionDelegate.delegates.updateTask(task, queue: callbackQueue)
task.resume()
}
#else
ParseSwift.sessionDelegate.uploadDelegates[task] = uploadProgress
ParseSwift.sessionDelegate.taskCallbackQueues[task] = callbackQueue
Parse.sessionDelegate.uploadDelegates[task] = uploadProgress
Parse.sessionDelegate.taskCallbackQueues[task] = callbackQueue
task.resume()
#endif
return
Expand Down Expand Up @@ -274,7 +274,7 @@ internal extension API {
headers.removeValue(forKey: "X-Parse-Request-Id")
}
let url = parseURL == nil ?
ParseSwift.configuration.serverURL.appendingPathComponent(path.urlComponent) : parseURL!
Parse.configuration.serverURL.appendingPathComponent(path.urlComponent) : parseURL!

guard var components = URLComponents(url: url, resolvingAgainstBaseURL: false) else {
return .failure(ParseError(code: .unknownError,
Expand Down Expand Up @@ -319,7 +319,7 @@ internal extension API {
}

static func requestCachePolicy(options: API.Options) -> URLRequest.CachePolicy {
var policy: URLRequest.CachePolicy = ParseSwift.configuration.requestCachePolicy
var policy: URLRequest.CachePolicy = Parse.configuration.requestCachePolicy
options.forEach { option in
if case .cachePolicy(let updatedPolicy) = option {
policy = updatedPolicy
Expand Down Expand Up @@ -395,7 +395,7 @@ internal extension API.Command {
static func save<T>(_ object: T,
original data: Data?,
ignoringCustomObjectIdConfig: Bool) throws -> API.Command<T, T> where T: ParseObject {
if ParseSwift.configuration.isAllowingCustomObjectIds
if Parse.configuration.isAllowingCustomObjectIds
&& object.objectId == nil && !ignoringCustomObjectIdConfig {
throw ParseError(code: .missingObjectId, message: "objectId must not be nil")
}
Expand Down Expand Up @@ -501,7 +501,7 @@ internal extension API.Command where T: ParseObject {
static func batch(commands: [API.Command<T, T>],
transaction: Bool) -> RESTBatchCommandType<T> {
let batchCommands = commands.compactMap { (command) -> API.Command<T, T>? in
let path = ParseSwift.configuration.mountPath + command.path.urlComponent
let path = Parse.configuration.mountPath + command.path.urlComponent
guard let body = command.body else {
return nil
}
Expand Down Expand Up @@ -553,7 +553,7 @@ internal extension API.Command where T: ParseObject {
static func batch(commands: [API.NonParseBodyCommand<NoBody, NoBody>],
transaction: Bool) -> RESTBatchCommandNoBodyType<NoBody> {
let commands = commands.compactMap { (command) -> API.NonParseBodyCommand<NoBody, NoBody>? in
let path = ParseSwift.configuration.mountPath + command.path.urlComponent
let path = Parse.configuration.mountPath + command.path.urlComponent
return API.NonParseBodyCommand<NoBody, NoBody>(
method: command.method,
path: .any(path), mapper: command.mapper)
Expand Down
4 changes: 2 additions & 2 deletions Sources/ParseSwift/API/API+NonParseBodyCommand.swift
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ internal extension API {
if method == .GET || method == .DELETE {
headers.removeValue(forKey: "X-Parse-Request-Id")
}
let url = ParseSwift.configuration.serverURL.appendingPathComponent(path.urlComponent)
let url = Parse.configuration.serverURL.appendingPathComponent(path.urlComponent)

guard var components = URLComponents(url: url, resolvingAgainstBaseURL: false) else {
return .failure(ParseError(code: .unknownError,
Expand Down Expand Up @@ -169,7 +169,7 @@ internal extension API.NonParseBodyCommand {
return try objectable.toPointer()
}

let path = ParseSwift.configuration.mountPath + objectable.endpoint.urlComponent
let path = Parse.configuration.mountPath + objectable.endpoint.urlComponent
let encoded = try ParseCoding.parseEncoder().encode(object)
let body = try ParseCoding.jsonDecoder().decode(AnyCodable.self, from: encoded)
return API.BatchCommand<AnyCodable, PointerType>(method: method,
Expand Down
6 changes: 3 additions & 3 deletions Sources/ParseSwift/API/API.swift
Original file line number Diff line number Diff line change
Expand Up @@ -197,9 +197,9 @@ public struct API {

// swiftlint:disable:next cyclomatic_complexity
internal static func getHeaders(options: API.Options) -> [String: String] {
var headers: [String: String] = ["X-Parse-Application-Id": ParseSwift.configuration.applicationId,
var headers: [String: String] = ["X-Parse-Application-Id": Parse.configuration.applicationId,
"Content-Type": "application/json"]
if let clientKey = ParseSwift.configuration.clientKey {
if let clientKey = Parse.configuration.clientKey {
headers["X-Parse-Client-Key"] = clientKey
}

Expand All @@ -217,7 +217,7 @@ public struct API {
options.forEach { (option) in
switch option {
case .useMasterKey:
headers["X-Parse-Master-Key"] = ParseSwift.configuration.masterKey
headers["X-Parse-Master-Key"] = Parse.configuration.masterKey
case .sessionToken(let sessionToken):
headers["X-Parse-Session-Token"] = sessionToken
case .installationId(let installationId):
Expand Down
4 changes: 2 additions & 2 deletions Sources/ParseSwift/Coding/ParseEncoder.swift
Original file line number Diff line number Diff line change
Expand Up @@ -147,7 +147,7 @@ public struct ParseEncoder {
unique: PointerType?,
unsavedChildren: [Encodable]) {
let keysToSkip: Set<String>!
if !ParseSwift.configuration.isAllowingCustomObjectIds {
if !Parse.configuration.isAllowingCustomObjectIds {
keysToSkip = SkipKeys.object.keys()
} else {
keysToSkip = SkipKeys.customObjectId.keys()
Expand All @@ -172,7 +172,7 @@ public struct ParseEncoder {
objectsSavedBeforeThisOne: [String: PointerType]?,
filesSavedBeforeThisOne: [UUID: ParseFile]?) throws -> (encoded: Data, unique: PointerType?, unsavedChildren: [Encodable]) {
let keysToSkip: Set<String>!
if !ParseSwift.configuration.isAllowingCustomObjectIds {
if !Parse.configuration.isAllowingCustomObjectIds {
keysToSkip = SkipKeys.object.keys()
} else {
keysToSkip = SkipKeys.customObjectId.keys()
Expand Down
12 changes: 6 additions & 6 deletions Sources/ParseSwift/Extensions/URLCache.swift
Original file line number Diff line number Diff line change
Expand Up @@ -14,19 +14,19 @@ import FoundationNetworking
internal extension URLCache {
static let parse: URLCache = {
guard let cacheURL = FileManager.default.urls(for: .cachesDirectory, in: .userDomainMask).first else {
return URLCache(memoryCapacity: ParseSwift.configuration.cacheMemoryCapacity,
diskCapacity: ParseSwift.configuration.cacheDiskCapacity,
return URLCache(memoryCapacity: Parse.configuration.cacheMemoryCapacity,
diskCapacity: Parse.configuration.cacheDiskCapacity,
diskPath: nil)
}
let parseCacheDirectory = "ParseCache"
let diskURL = cacheURL.appendingPathComponent(parseCacheDirectory, isDirectory: true)
#if !os(Linux) && !os(Android) && !os(Windows)
return URLCache(memoryCapacity: ParseSwift.configuration.cacheMemoryCapacity,
diskCapacity: ParseSwift.configuration.cacheDiskCapacity,
return URLCache(memoryCapacity: Parse.configuration.cacheMemoryCapacity,
diskCapacity: Parse.configuration.cacheDiskCapacity,
directory: diskURL)
#else
return URLCache(memoryCapacity: ParseSwift.configuration.cacheMemoryCapacity,
diskCapacity: ParseSwift.configuration.cacheDiskCapacity,
return URLCache(memoryCapacity: Parse.configuration.cacheMemoryCapacity,
diskCapacity: Parse.configuration.cacheDiskCapacity,
diskPath: diskURL.absoluteString)
#endif
}()
Expand Down
Loading