Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
ts_callback_utils.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <chrono>
4#include <functional>
5#include <future>
6#include <napi.h>
7#include <optional>
8#include <string>
9#include <vector>
10
12
13namespace bb::nodejs {
14
22
26std::string extract_error_from_napi_value(const Napi::CallbackInfo& cb_info);
27
32Napi::Function create_buffer_resolve_handler(Napi::Env env, std::shared_ptr<CallbackResults> cb_results);
33
38Napi::Function create_string_resolve_handler(Napi::Env env, std::shared_ptr<CallbackResults> cb_results);
39
44Napi::Function create_void_resolve_handler(Napi::Env env, std::shared_ptr<CallbackResults> cb_results);
45
50Napi::Function create_reject_handler(Napi::Env env, std::shared_ptr<CallbackResults> cb_results);
51
55void attach_promise_handlers(Napi::Promise promise, Napi::Function resolve_handler, Napi::Function reject_handler);
56
60template <typename T> std::vector<uint8_t> serialize_to_msgpack(const T& data);
61
65template <typename T> T deserialize_from_msgpack(const std::vector<uint8_t>& data, const std::string& type_name);
66
82 const Napi::ThreadSafeFunction& callback,
83 const std::string& operation_name,
84 std::function<void(Napi::Env, Napi::Function, std::shared_ptr<CallbackResults>)> call_js_function,
85 std::chrono::seconds timeout = std::chrono::seconds(30));
86
90std::optional<std::vector<uint8_t>> invoke_single_string_callback(const Napi::ThreadSafeFunction& callback,
91 const std::string& input_str,
92 const std::string& operation_name);
93
97std::optional<std::vector<uint8_t>> invoke_double_string_callback(const Napi::ThreadSafeFunction& callback,
98 const std::string& input_str1,
99 const std::string& input_str2,
100 const std::string& operation_name);
101
105void invoke_buffer_void_callback(const Napi::ThreadSafeFunction& callback,
106 std::vector<uint8_t> buffer_data,
107 const std::string& operation_name);
108
112std::string ff_to_string(const bb::avm2::FF& value);
113
114} // namespace bb::nodejs
const std::vector< MemoryValue > data
AvmFlavorSettings::FF FF
Definition field.hpp:10
std::string ff_to_string(const bb::avm2::FF &value)
Converts an FF (field element) to a hex string.
std::vector< uint8_t > serialize_to_msgpack(const T &data)
Serializes data to msgpack format.
void attach_promise_handlers(Napi::Promise promise, Napi::Function resolve_handler, Napi::Function reject_handler)
Attaches resolve and reject handlers to a promise.
T deserialize_from_msgpack(const std::vector< uint8_t > &data, const std::string &type_name)
Deserializes msgpack data to a specific type.
Napi::Function create_reject_handler(Napi::Env env, std::shared_ptr< CallbackResults > cb_results)
Creates a reject handler for promises.
Napi::Function create_void_resolve_handler(Napi::Env env, std::shared_ptr< CallbackResults > cb_results)
Creates a resolve handler for promises that return void.
std::optional< std::vector< uint8_t > > invoke_single_string_callback(const Napi::ThreadSafeFunction &callback, const std::string &input_str, const std::string &operation_name)
Helper for callbacks that take a single string argument and return Buffer | undefined.
std::optional< std::vector< uint8_t > > invoke_ts_callback_with_promise(const Napi::ThreadSafeFunction &callback, const std::string &operation_name, std::function< void(Napi::Env, Napi::Function, std::shared_ptr< CallbackResults >)> call_js_function, std::chrono::seconds timeout)
Generic callback invoker that handles the full BlockingCall pattern.
Napi::Function create_buffer_resolve_handler(Napi::Env env, std::shared_ptr< CallbackResults > cb_results)
Creates a resolve handler for promises that return Buffer | undefined.
std::optional< std::vector< uint8_t > > invoke_double_string_callback(const Napi::ThreadSafeFunction &callback, const std::string &input_str1, const std::string &input_str2, const std::string &operation_name)
Helper for callbacks that take two string arguments and return string | undefined.
std::string extract_error_from_napi_value(const Napi::CallbackInfo &cb_info)
Extracts error message from a Napi value (string or Error object)
Napi::Function create_string_resolve_handler(Napi::Env env, std::shared_ptr< CallbackResults > cb_results)
Creates a resolve handler for promises that return string | undefined.
void invoke_buffer_void_callback(const Napi::ThreadSafeFunction &callback, std::vector< uint8_t > buffer_data, const std::string &operation_name)
Helper for callbacks that take a buffer and return void.
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept
Definition tuple.hpp:13
Helper struct to pass data between C++ worker thread and JS main thread.
std::promise< std::optional< std::vector< uint8_t > > > result_promise