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:
Marc Rousavy
2023-09-01 18:15:28 +02:00
committed by GitHub
parent 2a5c33323b
commit 036856aed5
347 changed files with 3088 additions and 154 deletions

View 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
}
}

View 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)
}

View 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)
}

View 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
}
}