diff options
author | elioat <hi@eli.li> | 2023-06-19 12:27:59 -0400 |
---|---|---|
committer | elioat <hi@eli.li> | 2023-06-19 12:27:59 -0400 |
commit | 1cbdbcff09387f1185e40fa48fd3801e54e5ba86 (patch) | |
tree | d8ab8872a81c0656c62334fb43f4bc07db8aa807 /js/blotbotboot/node_modules/nan/doc/node_misc.md | |
parent | 00761c368216e401eb5b17a677ae51db643d818b (diff) | |
download | tour-1cbdbcff09387f1185e40fa48fd3801e54e5ba86.tar.gz |
Removed node_modules folder because I am an idiot
Diffstat (limited to 'js/blotbotboot/node_modules/nan/doc/node_misc.md')
-rw-r--r-- | js/blotbotboot/node_modules/nan/doc/node_misc.md | 123 |
1 files changed, 0 insertions, 123 deletions
diff --git a/js/blotbotboot/node_modules/nan/doc/node_misc.md b/js/blotbotboot/node_modules/nan/doc/node_misc.md deleted file mode 100644 index 17578e3..0000000 --- a/js/blotbotboot/node_modules/nan/doc/node_misc.md +++ /dev/null @@ -1,123 +0,0 @@ -## Miscellaneous Node Helpers - - - <a href="#api_nan_asyncresource"><b><code>Nan::AsyncResource</code></b></a> - - <a href="#api_nan_make_callback"><b><code>Nan::MakeCallback()</code></b></a> - - <a href="#api_nan_module_init"><b><code>NAN_MODULE_INIT()</code></b></a> - - <a href="#api_nan_export"><b><code>Nan::Export()</code></b></a> - -<a name="api_nan_asyncresource"></a> -### Nan::AsyncResource - -This class is analogous to the `AsyncResource` JavaScript class exposed by Node's [async_hooks][] API. - -When calling back into JavaScript asynchronously, special care must be taken to ensure that the runtime can properly track -async hops. `Nan::AsyncResource` is a class that provides an RAII wrapper around `node::EmitAsyncInit`, `node::EmitAsyncDestroy`, -and `node::MakeCallback`. Using this mechanism to call back into JavaScript, as opposed to `Nan::MakeCallback` or -`v8::Function::Call` ensures that the callback is executed in the correct async context. This ensures that async mechanisms -such as domains and [async_hooks][] function correctly. - -Definition: - -```c++ -class AsyncResource { - public: - AsyncResource(v8::Local<v8::String> name, - v8::Local<v8::Object> resource = New<v8::Object>()); - AsyncResource(const char* name, - v8::Local<v8::Object> resource = New<v8::Object>()); - ~AsyncResource(); - - v8::MaybeLocal<v8::Value> runInAsyncScope(v8::Local<v8::Object> target, - v8::Local<v8::Function> func, - int argc, - v8::Local<v8::Value>* argv); - v8::MaybeLocal<v8::Value> runInAsyncScope(v8::Local<v8::Object> target, - v8::Local<v8::String> symbol, - int argc, - v8::Local<v8::Value>* argv); - v8::MaybeLocal<v8::Value> runInAsyncScope(v8::Local<v8::Object> target, - const char* method, - int argc, - v8::Local<v8::Value>* argv); -}; -``` - -* `name`: Identifier for the kind of resource that is being provided for diagnostics information exposed by the [async_hooks][] - API. This will be passed to the possible `init` hook as the `type`. To avoid name collisions with other modules we recommend - that the name include the name of the owning module as a prefix. For example `mysql` module could use something like - `mysql:batch-db-query-resource`. -* `resource`: An optional object associated with the async work that will be passed to the possible [async_hooks][] - `init` hook. If this parameter is omitted, or an empty handle is provided, this object will be created automatically. -* When calling JS on behalf of this resource, one can use `runInAsyncScope`. This will ensure that the callback runs in the - correct async execution context. -* `AsyncDestroy` is automatically called when an AsyncResource object is destroyed. - -For more details, see the Node [async_hooks][] documentation. You might also want to take a look at the documentation for the -[N-API counterpart][napi]. For example usage, see the `asyncresource.cpp` example in the `test/cpp` directory. - -<a name="api_nan_make_callback"></a> -### Nan::MakeCallback() - -Deprecated wrappers around the legacy `node::MakeCallback()` APIs. Node.js 10+ -has deprecated these legacy APIs as they do not provide a mechanism to preserve -async context. - -We recommend that you use the `AsyncResource` class and `AsyncResource::runInAsyncScope` instead of using `Nan::MakeCallback` or -`v8::Function#Call()` directly. `AsyncResource` properly takes care of running the callback in the correct async execution -context – something that is essential for functionality like domains, async_hooks and async debugging. - -Signatures: - -```c++ -NAN_DEPRECATED -v8::Local<v8::Value> Nan::MakeCallback(v8::Local<v8::Object> target, - v8::Local<v8::Function> func, - int argc, - v8::Local<v8::Value>* argv); -NAN_DEPRECATED -v8::Local<v8::Value> Nan::MakeCallback(v8::Local<v8::Object> target, - v8::Local<v8::String> symbol, - int argc, - v8::Local<v8::Value>* argv); -NAN_DEPRECATED -v8::Local<v8::Value> Nan::MakeCallback(v8::Local<v8::Object> target, - const char* method, - int argc, - v8::Local<v8::Value>* argv); -``` - - -<a name="api_nan_module_init"></a> -### NAN_MODULE_INIT() - -Used to define the entry point function to a Node add-on. Creates a function with a given `name` that receives a `target` object representing the equivalent of the JavaScript `exports` object. - -See example below. - -<a name="api_nan_export"></a> -### Nan::Export() - -A simple helper to register a `v8::FunctionTemplate` from a JavaScript-accessible method (see [Methods](./methods.md)) as a property on an object. Can be used in a way similar to assigning properties to `module.exports` in JavaScript. - -Signature: - -```c++ -void Export(v8::Local<v8::Object> target, const char *name, Nan::FunctionCallback f) -``` - -Also available as the shortcut `NAN_EXPORT` macro. - -Example: - -```c++ -NAN_METHOD(Foo) { - ... -} - -NAN_MODULE_INIT(Init) { - NAN_EXPORT(target, Foo); -} -``` - -[async_hooks]: https://nodejs.org/dist/latest-v9.x/docs/api/async_hooks.html -[napi]: https://nodejs.org/dist/latest-v9.x/docs/api/n-api.html#n_api_custom_asynchronous_operations |