summaryrefslogtreecommitdiff
path: root/node_modules/node-addon-api/napi-inl.deprecated.h
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/node-addon-api/napi-inl.deprecated.h')
-rw-r--r--node_modules/node-addon-api/napi-inl.deprecated.h192
1 files changed, 192 insertions, 0 deletions
diff --git a/node_modules/node-addon-api/napi-inl.deprecated.h b/node_modules/node-addon-api/napi-inl.deprecated.h
new file mode 100644
index 0000000..f19aca7
--- /dev/null
+++ b/node_modules/node-addon-api/napi-inl.deprecated.h
@@ -0,0 +1,192 @@
+#ifndef SRC_NAPI_INL_DEPRECATED_H_
+#define SRC_NAPI_INL_DEPRECATED_H_
+
+////////////////////////////////////////////////////////////////////////////////
+// PropertyDescriptor class
+////////////////////////////////////////////////////////////////////////////////
+
+template <typename Getter>
+inline PropertyDescriptor
+PropertyDescriptor::Accessor(const char* utf8name,
+ Getter getter,
+ napi_property_attributes attributes,
+ void* /*data*/) {
+ typedef details::CallbackData<Getter, Napi::Value> CbData;
+ // TODO: Delete when the function is destroyed
+ auto callbackData = new CbData({ getter, nullptr });
+
+ return PropertyDescriptor({
+ utf8name,
+ nullptr,
+ nullptr,
+ CbData::Wrapper,
+ nullptr,
+ nullptr,
+ attributes,
+ callbackData
+ });
+}
+
+template <typename Getter>
+inline PropertyDescriptor PropertyDescriptor::Accessor(const std::string& utf8name,
+ Getter getter,
+ napi_property_attributes attributes,
+ void* data) {
+ return Accessor(utf8name.c_str(), getter, attributes, data);
+}
+
+template <typename Getter>
+inline PropertyDescriptor PropertyDescriptor::Accessor(napi_value name,
+ Getter getter,
+ napi_property_attributes attributes,
+ void* /*data*/) {
+ typedef details::CallbackData<Getter, Napi::Value> CbData;
+ // TODO: Delete when the function is destroyed
+ auto callbackData = new CbData({ getter, nullptr });
+
+ return PropertyDescriptor({
+ nullptr,
+ name,
+ nullptr,
+ CbData::Wrapper,
+ nullptr,
+ nullptr,
+ attributes,
+ callbackData
+ });
+}
+
+template <typename Getter>
+inline PropertyDescriptor PropertyDescriptor::Accessor(Name name,
+ Getter getter,
+ napi_property_attributes attributes,
+ void* data) {
+ napi_value nameValue = name;
+ return PropertyDescriptor::Accessor(nameValue, getter, attributes, data);
+}
+
+template <typename Getter, typename Setter>
+inline PropertyDescriptor PropertyDescriptor::Accessor(const char* utf8name,
+ Getter getter,
+ Setter setter,
+ napi_property_attributes attributes,
+ void* /*data*/) {
+ typedef details::AccessorCallbackData<Getter, Setter> CbData;
+ // TODO: Delete when the function is destroyed
+ auto callbackData = new CbData({ getter, setter, nullptr });
+
+ return PropertyDescriptor({
+ utf8name,
+ nullptr,
+ nullptr,
+ CbData::GetterWrapper,
+ CbData::SetterWrapper,
+ nullptr,
+ attributes,
+ callbackData
+ });
+}
+
+template <typename Getter, typename Setter>
+inline PropertyDescriptor PropertyDescriptor::Accessor(const std::string& utf8name,
+ Getter getter,
+ Setter setter,
+ napi_property_attributes attributes,
+ void* data) {
+ return Accessor(utf8name.c_str(), getter, setter, attributes, data);
+}
+
+template <typename Getter, typename Setter>
+inline PropertyDescriptor PropertyDescriptor::Accessor(napi_value name,
+ Getter getter,
+ Setter setter,
+ napi_property_attributes attributes,
+ void* /*data*/) {
+ typedef details::AccessorCallbackData<Getter, Setter> CbData;
+ // TODO: Delete when the function is destroyed
+ auto callbackData = new CbData({ getter, setter, nullptr });
+
+ return PropertyDescriptor({
+ nullptr,
+ name,
+ nullptr,
+ CbData::GetterWrapper,
+ CbData::SetterWrapper,
+ nullptr,
+ attributes,
+ callbackData
+ });
+}
+
+template <typename Getter, typename Setter>
+inline PropertyDescriptor PropertyDescriptor::Accessor(Name name,
+ Getter getter,
+ Setter setter,
+ napi_property_attributes attributes,
+ void* data) {
+ napi_value nameValue = name;
+ return PropertyDescriptor::Accessor(nameValue, getter, setter, attributes, data);
+}
+
+template <typename Callable>
+inline PropertyDescriptor PropertyDescriptor::Function(const char* utf8name,
+ Callable cb,
+ napi_property_attributes attributes,
+ void* /*data*/) {
+ typedef decltype(cb(CallbackInfo(nullptr, nullptr))) ReturnType;
+ typedef details::CallbackData<Callable, ReturnType> CbData;
+ // TODO: Delete when the function is destroyed
+ auto callbackData = new CbData({ cb, nullptr });
+
+ return PropertyDescriptor({
+ utf8name,
+ nullptr,
+ CbData::Wrapper,
+ nullptr,
+ nullptr,
+ nullptr,
+ attributes,
+ callbackData
+ });
+}
+
+template <typename Callable>
+inline PropertyDescriptor PropertyDescriptor::Function(const std::string& utf8name,
+ Callable cb,
+ napi_property_attributes attributes,
+ void* data) {
+ return Function(utf8name.c_str(), cb, attributes, data);
+}
+
+template <typename Callable>
+inline PropertyDescriptor PropertyDescriptor::Function(napi_value name,
+ Callable cb,
+ napi_property_attributes attributes,
+ void* /*data*/) {
+ typedef decltype(cb(CallbackInfo(nullptr, nullptr))) ReturnType;
+ typedef details::CallbackData<Callable, ReturnType> CbData;
+ // TODO: Delete when the function is destroyed
+ auto callbackData = new CbData({ cb, nullptr });
+
+ return PropertyDescriptor({
+ nullptr,
+ name,
+ CbData::Wrapper,
+ nullptr,
+ nullptr,
+ nullptr,
+ attributes,
+ callbackData
+ });
+}
+
+template <typename Callable>
+inline PropertyDescriptor PropertyDescriptor::Function(Name name,
+ Callable cb,
+ napi_property_attributes attributes,
+ void* data) {
+ napi_value nameValue = name;
+ return PropertyDescriptor::Function(nameValue, cb, attributes, data);
+}
+
+#endif // !SRC_NAPI_INL_DEPRECATED_H_