chore: Move everything into package/
(#1745)
* Move everything into package * Remove .DS_Store * Move scripts and eslintrc to package * Create CODE_OF_CONDUCT.md * fix some links * Update all links (I think) * Update generated docs * Update notice-yarn-changes.yml * Update validate-android.yml * Update validate-cpp.yml * Delete notice-yarn-changes.yml * Update validate-cpp.yml * Update validate-cpp.yml * Update validate-js.yml * Update validate-cpp.yml * Update validate-cpp.yml * wrong c++ style * Revert "wrong c++ style" This reverts commit 55a3575589c6f13f8b05134d83384f55e0601ab2.
This commit is contained in:
49
package/ios/React Utils/Callback.swift
Normal file
49
package/ios/React Utils/Callback.swift
Normal file
@@ -0,0 +1,49 @@
|
||||
//
|
||||
// Callback.swift
|
||||
// VisionCamera
|
||||
//
|
||||
// Created by Marc Rousavy on 07.06.21.
|
||||
// Copyright © 2021 mrousavy. All rights reserved.
|
||||
//
|
||||
|
||||
import Foundation
|
||||
|
||||
/**
|
||||
Represents a callback to JavaScript. Syntax is the same as with Promise.
|
||||
*/
|
||||
class Callback {
|
||||
private var hasCalled = false
|
||||
private let callback: RCTResponseSenderBlock
|
||||
|
||||
init(_ callback: @escaping RCTResponseSenderBlock) {
|
||||
self.callback = callback
|
||||
}
|
||||
|
||||
func reject(error: CameraError, cause: NSError?) {
|
||||
guard !hasCalled else { return }
|
||||
|
||||
callback([NSNull(), makeReactError(error, cause: cause)])
|
||||
hasCalled = true
|
||||
}
|
||||
|
||||
func reject(error: CameraError) {
|
||||
guard !hasCalled else { return }
|
||||
|
||||
reject(error: error, cause: nil)
|
||||
hasCalled = true
|
||||
}
|
||||
|
||||
func resolve(_ value: Any) {
|
||||
guard !hasCalled else { return }
|
||||
|
||||
callback([value, NSNull()])
|
||||
hasCalled = true
|
||||
}
|
||||
|
||||
func resolve() {
|
||||
guard !hasCalled else { return }
|
||||
|
||||
resolve(NSNull())
|
||||
hasCalled = true
|
||||
}
|
||||
}
|
29
package/ios/React Utils/MakeReactError.swift
Normal file
29
package/ios/React Utils/MakeReactError.swift
Normal file
@@ -0,0 +1,29 @@
|
||||
//
|
||||
// MakeReactError.swift
|
||||
// mrousavy
|
||||
//
|
||||
// Created by Marc Rousavy on 15.01.21.
|
||||
// Copyright © 2021 mrousavy. 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
package/ios/React Utils/Promise.swift
Normal file
69
package/ios/React Utils/Promise.swift
Normal file
@@ -0,0 +1,69 @@
|
||||
//
|
||||
// Promise.swift
|
||||
// mrousavy
|
||||
//
|
||||
// Created by Marc Rousavy on 14.01.21.
|
||||
// Copyright © 2021 mrousavy. 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)
|
||||
}
|
32
package/ios/React Utils/ReactLogger.swift
Normal file
32
package/ios/React Utils/ReactLogger.swift
Normal file
@@ -0,0 +1,32 @@
|
||||
//
|
||||
// ReactLogger.swift
|
||||
// mrousavy
|
||||
//
|
||||
// Created by Marc Rousavy on 15.12.20.
|
||||
// Copyright © 2020 mrousavy. All rights reserved.
|
||||
//
|
||||
|
||||
import Foundation
|
||||
|
||||
// MARK: - ReactLogger
|
||||
|
||||
enum ReactLogger {
|
||||
/**
|
||||
Log a message to the console in the format of `VisionCamera.[caller-function-name]: [message]`
|
||||
|
||||
@discussion
|
||||
If the global ConsoleLogFunction is set, this function also logs to the JavaScript console (console.log, console.trace, console.warn or console.error)
|
||||
This function also always logs to [RCTDefaultLogFunction].
|
||||
In non-DEBUG builds, this function is no-op.
|
||||
*/
|
||||
@inlinable
|
||||
static func log(level: RCTLogLevel,
|
||||
message: String,
|
||||
_ file: String = #file,
|
||||
_ lineNumber: Int = #line,
|
||||
_ function: String = #function) {
|
||||
#if DEBUG
|
||||
RCTDefaultLogFunction(level, RCTLogSource.native, file, lineNumber as NSNumber, "VisionCamera.\(function): \(message)")
|
||||
#endif
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user