PHP 7.4.33
Preview: napi-inl.deprecated.h Size: 6.17 KB
/var/www/uibuilder.cmshelp.dk/httpdocs/node_modules/node-addon-api/napi-inl.deprecated.h
#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*/) {
  using CbData = details::CallbackData<Getter, Napi::Value>;
  // 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*/) {
  using CbData = details::CallbackData<Getter, Napi::Value>;
  // 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*/) {
  using CbData = details::AccessorCallbackData<Getter, Setter>;
  // 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*/) {
  using CbData = details::AccessorCallbackData<Getter, Setter>;
  // 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*/) {
  using ReturnType = decltype(cb(CallbackInfo(nullptr, nullptr)));
  using CbData = details::CallbackData<Callable, ReturnType>;
  // 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*/) {
  using ReturnType = decltype(cb(CallbackInfo(nullptr, nullptr)));
  using CbData = details::CallbackData<Callable, ReturnType>;
  // 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_

Directory Contents

Dirs: 1 × Files: 14
Name Size Perms Modified Actions
tools DIR
- drwxr-xr-x 2025-03-28 11:04:35
Edit Download
724 B lrw-r--r-- 2025-03-28 11:04:35
Edit Download
560 B lrw-r--r-- 2025-03-28 11:04:35
Edit Download
377 B lrw-r--r-- 2025-03-28 11:04:35
Edit Download
1.12 KB lrw-r--r-- 2025-03-28 11:04:35
Edit Download
6.17 KB lrw-r--r-- 2025-03-28 11:04:35
Edit Download
214.27 KB lrw-r--r-- 2025-03-28 11:04:35
Edit Download
112.72 KB lrw-r--r-- 2025-03-28 11:04:35
Edit Download
793 B lrw-r--r-- 2025-03-28 11:04:35
Edit Download
132 B lrw-r--r-- 2025-03-28 11:04:35
Edit Download
639 B lrw-r--r-- 2025-03-28 11:04:35
Edit Download
0 B lrw-r--r-- 2025-03-28 11:04:35
Edit Download
467 B lrw-r--r-- 2025-03-28 11:04:35
Edit Download
10.53 KB lrw-r--r-- 2025-03-28 11:04:35
Edit Download
13.72 KB lrw-r--r-- 2025-03-28 11:04:35
Edit Download
If ZipArchive is unavailable, a .tar will be created (no compression).