create
This commit is contained in:
316
Pods/PromisesObjC/Sources/FBLPromises/include/FBLPromise+Wrap.h
generated
Normal file
316
Pods/PromisesObjC/Sources/FBLPromises/include/FBLPromise+Wrap.h
generated
Normal file
@@ -0,0 +1,316 @@
|
||||
/**
|
||||
Copyright 2018 Google Inc. All rights reserved.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at:
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
#import "FBLPromise.h"
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
/**
|
||||
Different types of completion handlers available to be wrapped with promise.
|
||||
*/
|
||||
typedef void (^FBLPromiseCompletion)(void) NS_SWIFT_UNAVAILABLE("");
|
||||
typedef void (^FBLPromiseObjectCompletion)(id __nullable) NS_SWIFT_UNAVAILABLE("");
|
||||
typedef void (^FBLPromiseErrorCompletion)(NSError* __nullable) NS_SWIFT_UNAVAILABLE("");
|
||||
typedef void (^FBLPromiseObjectOrErrorCompletion)(id __nullable, NSError* __nullable)
|
||||
NS_SWIFT_UNAVAILABLE("");
|
||||
typedef void (^FBLPromiseErrorOrObjectCompletion)(NSError* __nullable, id __nullable)
|
||||
NS_SWIFT_UNAVAILABLE("");
|
||||
typedef void (^FBLPromise2ObjectsOrErrorCompletion)(id __nullable, id __nullable,
|
||||
NSError* __nullable) NS_SWIFT_UNAVAILABLE("");
|
||||
typedef void (^FBLPromiseBoolCompletion)(BOOL) NS_SWIFT_UNAVAILABLE("");
|
||||
typedef void (^FBLPromiseBoolOrErrorCompletion)(BOOL, NSError* __nullable) NS_SWIFT_UNAVAILABLE("");
|
||||
typedef void (^FBLPromiseIntegerCompletion)(NSInteger) NS_SWIFT_UNAVAILABLE("");
|
||||
typedef void (^FBLPromiseIntegerOrErrorCompletion)(NSInteger, NSError* __nullable)
|
||||
NS_SWIFT_UNAVAILABLE("");
|
||||
typedef void (^FBLPromiseDoubleCompletion)(double) NS_SWIFT_UNAVAILABLE("");
|
||||
typedef void (^FBLPromiseDoubleOrErrorCompletion)(double, NSError* __nullable)
|
||||
NS_SWIFT_UNAVAILABLE("");
|
||||
|
||||
/**
|
||||
Provides an easy way to convert methods that use common callback patterns into promises.
|
||||
*/
|
||||
@interface FBLPromise<Value>(WrapAdditions)
|
||||
|
||||
/**
|
||||
@param work A block to perform any operations needed to resolve the promise.
|
||||
@returns A promise that resolves with `nil` when completion handler is invoked.
|
||||
*/
|
||||
+ (instancetype)wrapCompletion:(void (^)(FBLPromiseCompletion handler))work
|
||||
NS_SWIFT_UNAVAILABLE("");
|
||||
|
||||
/**
|
||||
@param queue A queue to invoke the `work` block on.
|
||||
@param work A block to perform any operations needed to resolve the promise.
|
||||
@returns A promise that resolves with `nil` when completion handler is invoked.
|
||||
*/
|
||||
+ (instancetype)onQueue:(dispatch_queue_t)queue
|
||||
wrapCompletion:(void (^)(FBLPromiseCompletion handler))work NS_SWIFT_UNAVAILABLE("");
|
||||
|
||||
/**
|
||||
@param work A block to perform any operations needed to resolve the promise.
|
||||
@returns A promise that resolves with an object provided by completion handler.
|
||||
*/
|
||||
+ (instancetype)wrapObjectCompletion:(void (^)(FBLPromiseObjectCompletion handler))work
|
||||
NS_SWIFT_UNAVAILABLE("");
|
||||
|
||||
/**
|
||||
@param queue A queue to invoke the `work` block on.
|
||||
@param work A block to perform any operations needed to resolve the promise.
|
||||
@returns A promise that resolves with an object provided by completion handler.
|
||||
*/
|
||||
+ (instancetype)onQueue:(dispatch_queue_t)queue
|
||||
wrapObjectCompletion:(void (^)(FBLPromiseObjectCompletion handler))work
|
||||
NS_SWIFT_UNAVAILABLE("");
|
||||
|
||||
/**
|
||||
@param work A block to perform any operations needed to resolve the promise.
|
||||
@returns A promise that resolves with an error provided by completion handler.
|
||||
If error is `nil`, fulfills with `nil`, otherwise rejects with the error.
|
||||
*/
|
||||
+ (instancetype)wrapErrorCompletion:(void (^)(FBLPromiseErrorCompletion handler))work
|
||||
NS_SWIFT_UNAVAILABLE("");
|
||||
|
||||
/**
|
||||
@param queue A queue to invoke the `work` block on.
|
||||
@param work A block to perform any operations needed to resolve the promise.
|
||||
@returns A promise that resolves with an error provided by completion handler.
|
||||
If error is `nil`, fulfills with `nil`, otherwise rejects with the error.
|
||||
*/
|
||||
+ (instancetype)onQueue:(dispatch_queue_t)queue
|
||||
wrapErrorCompletion:(void (^)(FBLPromiseErrorCompletion handler))work NS_SWIFT_UNAVAILABLE("");
|
||||
|
||||
/**
|
||||
@param work A block to perform any operations needed to resolve the promise.
|
||||
@returns A promise that resolves with an object provided by completion handler if error is `nil`.
|
||||
Otherwise, rejects with the error.
|
||||
*/
|
||||
+ (instancetype)wrapObjectOrErrorCompletion:
|
||||
(void (^)(FBLPromiseObjectOrErrorCompletion handler))work NS_SWIFT_UNAVAILABLE("");
|
||||
|
||||
/**
|
||||
@param queue A queue to invoke the `work` block on.
|
||||
@param work A block to perform any operations needed to resolve the promise.
|
||||
@returns A promise that resolves with an object provided by completion handler if error is `nil`.
|
||||
Otherwise, rejects with the error.
|
||||
*/
|
||||
+ (instancetype)onQueue:(dispatch_queue_t)queue
|
||||
wrapObjectOrErrorCompletion:(void (^)(FBLPromiseObjectOrErrorCompletion handler))work
|
||||
NS_SWIFT_UNAVAILABLE("");
|
||||
|
||||
/**
|
||||
@param work A block to perform any operations needed to resolve the promise.
|
||||
@returns A promise that resolves with an error or object provided by completion handler. If error
|
||||
is not `nil`, rejects with the error.
|
||||
*/
|
||||
+ (instancetype)wrapErrorOrObjectCompletion:
|
||||
(void (^)(FBLPromiseErrorOrObjectCompletion handler))work NS_SWIFT_UNAVAILABLE("");
|
||||
|
||||
/**
|
||||
@param queue A queue to invoke the `work` block on.
|
||||
@param work A block to perform any operations needed to resolve the promise.
|
||||
@returns A promise that resolves with an error or object provided by completion handler. If error
|
||||
is not `nil`, rejects with the error.
|
||||
*/
|
||||
+ (instancetype)onQueue:(dispatch_queue_t)queue
|
||||
wrapErrorOrObjectCompletion:(void (^)(FBLPromiseErrorOrObjectCompletion handler))work
|
||||
NS_SWIFT_UNAVAILABLE("");
|
||||
|
||||
/**
|
||||
@param work A block to perform any operations needed to resolve the promise.
|
||||
@returns A promise that resolves with an array of objects provided by completion handler in order
|
||||
if error is `nil`. Otherwise, rejects with the error.
|
||||
*/
|
||||
+ (FBLPromise<NSArray*>*)wrap2ObjectsOrErrorCompletion:
|
||||
(void (^)(FBLPromise2ObjectsOrErrorCompletion handler))work NS_SWIFT_UNAVAILABLE("");
|
||||
|
||||
/**
|
||||
@param queue A queue to invoke the `work` block on.
|
||||
@param work A block to perform any operations needed to resolve the promise.
|
||||
@returns A promise that resolves with an array of objects provided by completion handler in order
|
||||
if error is `nil`. Otherwise, rejects with the error.
|
||||
*/
|
||||
+ (FBLPromise<NSArray*>*)onQueue:(dispatch_queue_t)queue
|
||||
wrap2ObjectsOrErrorCompletion:(void (^)(FBLPromise2ObjectsOrErrorCompletion handler))work
|
||||
NS_SWIFT_UNAVAILABLE("");
|
||||
|
||||
/**
|
||||
@param work A block to perform any operations needed to resolve the promise.
|
||||
@returns A promise that resolves with an `NSNumber` wrapping YES/NO.
|
||||
*/
|
||||
+ (FBLPromise<NSNumber*>*)wrapBoolCompletion:(void (^)(FBLPromiseBoolCompletion handler))work
|
||||
NS_SWIFT_UNAVAILABLE("");
|
||||
|
||||
/**
|
||||
@param queue A queue to invoke the `work` block on.
|
||||
@param work A block to perform any operations needed to resolve the promise.
|
||||
@returns A promise that resolves with an `NSNumber` wrapping YES/NO.
|
||||
*/
|
||||
+ (FBLPromise<NSNumber*>*)onQueue:(dispatch_queue_t)queue
|
||||
wrapBoolCompletion:(void (^)(FBLPromiseBoolCompletion handler))work
|
||||
NS_SWIFT_UNAVAILABLE("");
|
||||
|
||||
/**
|
||||
@param work A block to perform any operations needed to resolve the promise.
|
||||
@returns A promise that resolves with an `NSNumber` wrapping YES/NO when error is `nil`.
|
||||
Otherwise rejects with the error.
|
||||
*/
|
||||
+ (FBLPromise<NSNumber*>*)wrapBoolOrErrorCompletion:
|
||||
(void (^)(FBLPromiseBoolOrErrorCompletion handler))work NS_SWIFT_UNAVAILABLE("");
|
||||
|
||||
/**
|
||||
@param queue A queue to invoke the `work` block on.
|
||||
@param work A block to perform any operations needed to resolve the promise.
|
||||
@returns A promise that resolves with an `NSNumber` wrapping YES/NO when error is `nil`.
|
||||
Otherwise rejects with the error.
|
||||
*/
|
||||
+ (FBLPromise<NSNumber*>*)onQueue:(dispatch_queue_t)queue
|
||||
wrapBoolOrErrorCompletion:(void (^)(FBLPromiseBoolOrErrorCompletion handler))work
|
||||
NS_SWIFT_UNAVAILABLE("");
|
||||
|
||||
/**
|
||||
@param work A block to perform any operations needed to resolve the promise.
|
||||
@returns A promise that resolves with an `NSNumber` wrapping an integer.
|
||||
*/
|
||||
+ (FBLPromise<NSNumber*>*)wrapIntegerCompletion:(void (^)(FBLPromiseIntegerCompletion handler))work
|
||||
NS_SWIFT_UNAVAILABLE("");
|
||||
|
||||
/**
|
||||
@param queue A queue to invoke the `work` block on.
|
||||
@param work A block to perform any operations needed to resolve the promise.
|
||||
@returns A promise that resolves with an `NSNumber` wrapping an integer.
|
||||
*/
|
||||
+ (FBLPromise<NSNumber*>*)onQueue:(dispatch_queue_t)queue
|
||||
wrapIntegerCompletion:(void (^)(FBLPromiseIntegerCompletion handler))work
|
||||
NS_SWIFT_UNAVAILABLE("");
|
||||
|
||||
/**
|
||||
@param work A block to perform any operations needed to resolve the promise.
|
||||
@returns A promise that resolves with an `NSNumber` wrapping an integer when error is `nil`.
|
||||
Otherwise rejects with the error.
|
||||
*/
|
||||
+ (FBLPromise<NSNumber*>*)wrapIntegerOrErrorCompletion:
|
||||
(void (^)(FBLPromiseIntegerOrErrorCompletion handler))work NS_SWIFT_UNAVAILABLE("");
|
||||
|
||||
/**
|
||||
@param queue A queue to invoke the `work` block on.
|
||||
@param work A block to perform any operations needed to resolve the promise.
|
||||
@returns A promise that resolves with an `NSNumber` wrapping an integer when error is `nil`.
|
||||
Otherwise rejects with the error.
|
||||
*/
|
||||
+ (FBLPromise<NSNumber*>*)onQueue:(dispatch_queue_t)queue
|
||||
wrapIntegerOrErrorCompletion:(void (^)(FBLPromiseIntegerOrErrorCompletion handler))work
|
||||
NS_SWIFT_UNAVAILABLE("");
|
||||
|
||||
/**
|
||||
@param work A block to perform any operations needed to resolve the promise.
|
||||
@returns A promise that resolves with an `NSNumber` wrapping a double.
|
||||
*/
|
||||
+ (FBLPromise<NSNumber*>*)wrapDoubleCompletion:(void (^)(FBLPromiseDoubleCompletion handler))work
|
||||
NS_SWIFT_UNAVAILABLE("");
|
||||
|
||||
/**
|
||||
@param queue A queue to invoke the `work` block on.
|
||||
@param work A block to perform any operations needed to resolve the promise.
|
||||
@returns A promise that resolves with an `NSNumber` wrapping a double.
|
||||
*/
|
||||
+ (FBLPromise<NSNumber*>*)onQueue:(dispatch_queue_t)queue
|
||||
wrapDoubleCompletion:(void (^)(FBLPromiseDoubleCompletion handler))work
|
||||
NS_SWIFT_UNAVAILABLE("");
|
||||
|
||||
/**
|
||||
@param work A block to perform any operations needed to resolve the promise.
|
||||
@returns A promise that resolves with an `NSNumber` wrapping a double when error is `nil`.
|
||||
Otherwise rejects with the error.
|
||||
*/
|
||||
+ (FBLPromise<NSNumber*>*)wrapDoubleOrErrorCompletion:
|
||||
(void (^)(FBLPromiseDoubleOrErrorCompletion handler))work NS_SWIFT_UNAVAILABLE("");
|
||||
|
||||
/**
|
||||
@param queue A queue to invoke the `work` block on.
|
||||
@param work A block to perform any operations needed to resolve the promise.
|
||||
@returns A promise that resolves with an `NSNumber` wrapping a double when error is `nil`.
|
||||
Otherwise rejects with the error.
|
||||
*/
|
||||
+ (FBLPromise<NSNumber*>*)onQueue:(dispatch_queue_t)queue
|
||||
wrapDoubleOrErrorCompletion:(void (^)(FBLPromiseDoubleOrErrorCompletion handler))work
|
||||
NS_SWIFT_UNAVAILABLE("");
|
||||
|
||||
@end
|
||||
|
||||
/**
|
||||
Convenience dot-syntax wrappers for `FBLPromise` `wrap` operators.
|
||||
Usage: FBLPromise.wrapCompletion(^(FBLPromiseCompletion handler) {...})
|
||||
*/
|
||||
@interface FBLPromise<Value>(DotSyntax_WrapAdditions)
|
||||
|
||||
+ (FBLPromise* (^)(void (^)(FBLPromiseCompletion)))wrapCompletion FBL_PROMISES_DOT_SYNTAX
|
||||
NS_SWIFT_UNAVAILABLE("");
|
||||
+ (FBLPromise* (^)(dispatch_queue_t, void (^)(FBLPromiseCompletion)))wrapCompletionOn
|
||||
FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE("");
|
||||
+ (FBLPromise* (^)(void (^)(FBLPromiseObjectCompletion)))wrapObjectCompletion
|
||||
FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE("");
|
||||
+ (FBLPromise* (^)(dispatch_queue_t, void (^)(FBLPromiseObjectCompletion)))wrapObjectCompletionOn
|
||||
FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE("");
|
||||
+ (FBLPromise* (^)(void (^)(FBLPromiseErrorCompletion)))wrapErrorCompletion FBL_PROMISES_DOT_SYNTAX
|
||||
NS_SWIFT_UNAVAILABLE("");
|
||||
+ (FBLPromise* (^)(dispatch_queue_t, void (^)(FBLPromiseErrorCompletion)))wrapErrorCompletionOn
|
||||
FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE("");
|
||||
+ (FBLPromise* (^)(void (^)(FBLPromiseObjectOrErrorCompletion)))wrapObjectOrErrorCompletion
|
||||
FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE("");
|
||||
+ (FBLPromise* (^)(dispatch_queue_t,
|
||||
void (^)(FBLPromiseObjectOrErrorCompletion)))wrapObjectOrErrorCompletionOn
|
||||
FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE("");
|
||||
+ (FBLPromise* (^)(void (^)(FBLPromiseErrorOrObjectCompletion)))wrapErrorOrObjectCompletion
|
||||
FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE("");
|
||||
+ (FBLPromise* (^)(dispatch_queue_t,
|
||||
void (^)(FBLPromiseErrorOrObjectCompletion)))wrapErrorOrObjectCompletionOn
|
||||
FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE("");
|
||||
+ (FBLPromise<NSArray*>* (^)(void (^)(FBLPromise2ObjectsOrErrorCompletion)))
|
||||
wrap2ObjectsOrErrorCompletion FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE("");
|
||||
+ (FBLPromise<NSArray*>* (^)(dispatch_queue_t, void (^)(FBLPromise2ObjectsOrErrorCompletion)))
|
||||
wrap2ObjectsOrErrorCompletionOn FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE("");
|
||||
+ (FBLPromise<NSNumber*>* (^)(void (^)(FBLPromiseBoolCompletion)))wrapBoolCompletion
|
||||
FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE("");
|
||||
+ (FBLPromise<NSNumber*>* (^)(dispatch_queue_t,
|
||||
void (^)(FBLPromiseBoolCompletion)))wrapBoolCompletionOn
|
||||
FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE("");
|
||||
+ (FBLPromise<NSNumber*>* (^)(void (^)(FBLPromiseBoolOrErrorCompletion)))wrapBoolOrErrorCompletion
|
||||
FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE("");
|
||||
+ (FBLPromise<NSNumber*>* (^)(dispatch_queue_t,
|
||||
void (^)(FBLPromiseBoolOrErrorCompletion)))wrapBoolOrErrorCompletionOn
|
||||
FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE("");
|
||||
+ (FBLPromise<NSNumber*>* (^)(void (^)(FBLPromiseIntegerCompletion)))wrapIntegerCompletion
|
||||
FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE("");
|
||||
+ (FBLPromise<NSNumber*>* (^)(dispatch_queue_t,
|
||||
void (^)(FBLPromiseIntegerCompletion)))wrapIntegerCompletionOn
|
||||
FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE("");
|
||||
+ (FBLPromise<NSNumber*>* (^)(void (^)(FBLPromiseIntegerOrErrorCompletion)))
|
||||
wrapIntegerOrErrorCompletion FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE("");
|
||||
+ (FBLPromise<NSNumber*>* (^)(dispatch_queue_t, void (^)(FBLPromiseIntegerOrErrorCompletion)))
|
||||
wrapIntegerOrErrorCompletionOn FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE("");
|
||||
+ (FBLPromise<NSNumber*>* (^)(void (^)(FBLPromiseDoubleCompletion)))wrapDoubleCompletion
|
||||
FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE("");
|
||||
+ (FBLPromise<NSNumber*>* (^)(dispatch_queue_t,
|
||||
void (^)(FBLPromiseDoubleCompletion)))wrapDoubleCompletionOn
|
||||
FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE("");
|
||||
+ (FBLPromise<NSNumber*>* (^)(void (^)(FBLPromiseDoubleOrErrorCompletion)))
|
||||
wrapDoubleOrErrorCompletion FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE("");
|
||||
+ (FBLPromise<NSNumber*>* (^)(dispatch_queue_t, void (^)(FBLPromiseDoubleOrErrorCompletion)))
|
||||
wrapDoubleOrErrorCompletionOn FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE("");
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
Reference in New Issue
Block a user