2021-05-06 06:11:55 -06:00
|
|
|
//
|
2023-07-21 09:52:30 -06:00
|
|
|
// JSINSObjectConversion.h
|
2021-05-06 06:11:55 -06:00
|
|
|
// VisionCamera
|
|
|
|
//
|
|
|
|
// Created by Marc Rousavy on 30.04.21.
|
2021-06-01 05:07:57 -06:00
|
|
|
// Copyright © 2021 mrousavy. All rights reserved.
|
2021-05-06 06:11:55 -06:00
|
|
|
//
|
|
|
|
|
|
|
|
#pragma once
|
|
|
|
|
|
|
|
#import <React/RCTBridgeModule.h>
|
2023-09-01 04:58:32 -06:00
|
|
|
#import <ReactCommon/CallInvoker.h>
|
|
|
|
#import <jsi/jsi.h>
|
2021-05-06 06:11:55 -06:00
|
|
|
|
2023-07-21 09:52:30 -06:00
|
|
|
namespace JSINSObjectConversion {
|
|
|
|
|
2021-05-06 06:11:55 -06:00
|
|
|
using namespace facebook;
|
|
|
|
using namespace facebook::react;
|
|
|
|
|
|
|
|
// NSNumber -> boolean
|
|
|
|
jsi::Value convertNSNumberToJSIBoolean(jsi::Runtime& runtime, NSNumber* value);
|
|
|
|
|
|
|
|
// NSNumber -> number
|
|
|
|
jsi::Value convertNSNumberToJSINumber(jsi::Runtime& runtime, NSNumber* value);
|
|
|
|
|
|
|
|
// NSNumber -> string
|
|
|
|
jsi::String convertNSStringToJSIString(jsi::Runtime& runtime, NSString* value);
|
|
|
|
|
|
|
|
// NSDictionary -> {}
|
|
|
|
jsi::Object convertNSDictionaryToJSIObject(jsi::Runtime& runtime, NSDictionary* value);
|
|
|
|
|
|
|
|
// NSArray -> []
|
|
|
|
jsi::Array convertNSArrayToJSIArray(jsi::Runtime& runtime, NSArray* value);
|
|
|
|
|
|
|
|
// id -> ???
|
|
|
|
jsi::Value convertObjCObjectToJSIValue(jsi::Runtime& runtime, id value);
|
|
|
|
|
|
|
|
// string -> NSString
|
|
|
|
NSString* convertJSIStringToNSString(jsi::Runtime& runtime, const jsi::String& value);
|
|
|
|
|
|
|
|
// any... -> NSArray
|
2023-09-01 04:58:32 -06:00
|
|
|
NSArray* convertJSICStyleArrayToNSArray(jsi::Runtime& runtime, const jsi::Value* array,
|
|
|
|
size_t length, std::shared_ptr<CallInvoker> jsInvoker);
|
2021-05-06 06:11:55 -06:00
|
|
|
|
|
|
|
// NSArray -> any...
|
|
|
|
jsi::Value* convertNSArrayToJSICStyleArray(jsi::Runtime& runtime, NSArray* array);
|
|
|
|
|
|
|
|
// [] -> NSArray
|
2023-09-01 04:58:32 -06:00
|
|
|
NSArray* convertJSIArrayToNSArray(jsi::Runtime& runtime, const jsi::Array& value,
|
|
|
|
std::shared_ptr<CallInvoker> jsInvoker);
|
2021-05-06 06:11:55 -06:00
|
|
|
|
|
|
|
// {} -> NSDictionary
|
2023-09-01 04:58:32 -06:00
|
|
|
NSDictionary* convertJSIObjectToNSDictionary(jsi::Runtime& runtime, const jsi::Object& value,
|
|
|
|
std::shared_ptr<CallInvoker> jsInvoker);
|
2021-05-06 06:11:55 -06:00
|
|
|
|
|
|
|
// any -> id
|
2023-09-01 04:58:32 -06:00
|
|
|
id convertJSIValueToObjCObject(jsi::Runtime& runtime, const jsi::Value& value,
|
|
|
|
std::shared_ptr<CallInvoker> jsInvoker);
|
2021-05-06 06:11:55 -06:00
|
|
|
|
|
|
|
// (any...) => any -> (void)(id, id)
|
2023-09-01 04:58:32 -06:00
|
|
|
RCTResponseSenderBlock convertJSIFunctionToCallback(jsi::Runtime& runtime,
|
|
|
|
const jsi::Function& value,
|
|
|
|
std::shared_ptr<CallInvoker> jsInvoker);
|
2023-07-21 09:52:30 -06:00
|
|
|
|
|
|
|
} // namespace JSINSObjectConversion
|