Reformat (#116)
* Reformat * Prettier: Print Width 140 * SwiftFormat: Disable `organizeDeclarations` * React Helpers -> React Utils * Use bundle exec for pods * Disable Hermes in Example * Create clean.sh * Update package.json * Re-generate lockfiles * Add bundle install step to bootstrap
This commit is contained in:
29
ios/React Utils/MakeReactError.swift
Normal file
29
ios/React Utils/MakeReactError.swift
Normal file
@@ -0,0 +1,29 @@
|
||||
//
|
||||
// MakeReactError.swift
|
||||
// Cuvent
|
||||
//
|
||||
// Created by Marc Rousavy on 15.01.21.
|
||||
// Copyright © 2021 Facebook. All rights reserved.
|
||||
//
|
||||
|
||||
import Foundation
|
||||
|
||||
func makeReactError(_ cameraError: CameraError, cause: NSError?) -> [String: Any] {
|
||||
var causeDictionary: [String: Any]?
|
||||
if let cause = cause {
|
||||
causeDictionary = RCTMakeError("\(cause.domain): \(cause.code) \(cause.description)", nil, cause.userInfo)
|
||||
}
|
||||
return RCTMakeError(
|
||||
"\(cameraError.code): \(cameraError.message)",
|
||||
nil,
|
||||
[
|
||||
"code": cameraError.code,
|
||||
"message": cameraError.message,
|
||||
"cause": causeDictionary ?? NSNull(),
|
||||
]
|
||||
)
|
||||
}
|
||||
|
||||
func makeReactError(_ cameraError: CameraError) -> [String: Any] {
|
||||
return makeReactError(cameraError, cause: nil)
|
||||
}
|
69
ios/React Utils/Promise.swift
Normal file
69
ios/React Utils/Promise.swift
Normal file
@@ -0,0 +1,69 @@
|
||||
//
|
||||
// Promise.swift
|
||||
// Cuvent
|
||||
//
|
||||
// Created by Marc Rousavy on 14.01.21.
|
||||
// Copyright © 2021 Facebook. All rights reserved.
|
||||
//
|
||||
|
||||
import Foundation
|
||||
|
||||
// MARK: - Promise
|
||||
|
||||
/**
|
||||
* Represents a JavaScript Promise instance. `reject()` and `resolve()` should only be called once.
|
||||
*/
|
||||
class Promise {
|
||||
init(resolver: @escaping RCTPromiseResolveBlock, rejecter: @escaping RCTPromiseRejectBlock) {
|
||||
self.resolver = resolver
|
||||
self.rejecter = rejecter
|
||||
}
|
||||
|
||||
func reject(error: CameraError, cause: NSError?) {
|
||||
rejecter(error.code, error.message, cause)
|
||||
}
|
||||
|
||||
func reject(error: CameraError) {
|
||||
reject(error: error, cause: nil)
|
||||
}
|
||||
|
||||
func resolve(_ value: Any?) {
|
||||
resolver(value)
|
||||
}
|
||||
|
||||
func resolve() {
|
||||
resolve(nil)
|
||||
}
|
||||
|
||||
// MARK: Private
|
||||
|
||||
private let resolver: RCTPromiseResolveBlock
|
||||
private let rejecter: RCTPromiseRejectBlock
|
||||
}
|
||||
|
||||
/**
|
||||
* Wrap a block with an automatic promise resolver and rejecter.
|
||||
*
|
||||
* The value returned by the `block` must be serializable by the React Native bridge, or `nil`.
|
||||
* The error thrown by the `block` should be a `CameraError`
|
||||
*/
|
||||
func withPromise(_ promise: Promise, _ block: () throws -> Any?) {
|
||||
do {
|
||||
let result = try block()
|
||||
promise.resolve(result)
|
||||
} catch let error as CameraError {
|
||||
promise.reject(error: error)
|
||||
} catch let error as NSError {
|
||||
promise.reject(error: CameraError.unknown(message: error.description), cause: error)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Wrap a block with an automatic promise resolver and rejecter.
|
||||
*
|
||||
* The value returned by the `block` must be serializable by the React Native bridge, or `nil`.
|
||||
* The error thrown by the `block` should be a `CameraError`
|
||||
*/
|
||||
func withPromise(resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock, _ block: () throws -> Any?) {
|
||||
return withPromise(Promise(resolver: resolve, rejecter: reject), block)
|
||||
}
|
23
ios/React Utils/ReactLogger.swift
Normal file
23
ios/React Utils/ReactLogger.swift
Normal file
@@ -0,0 +1,23 @@
|
||||
//
|
||||
// ReactLogger.swift
|
||||
// Cuvent
|
||||
//
|
||||
// Created by Marc Rousavy on 15.12.20.
|
||||
// Copyright © 2020 Facebook. All rights reserved.
|
||||
//
|
||||
|
||||
import Foundation
|
||||
|
||||
let context = "VisionCamera"
|
||||
|
||||
// MARK: - ReactLogger
|
||||
|
||||
enum ReactLogger {
|
||||
static func log(level: RCTLogLevel,
|
||||
message: String,
|
||||
_ file: String = #file,
|
||||
_ lineNumber: Int = #line,
|
||||
_ function: String = #function) {
|
||||
RCTDefaultLogFunction(level, RCTLogSource.native, file, lineNumber as NSNumber, "\(context).\(function): \(message)")
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user