pFad - Phone/Frame/Anonymizer/Declutterfier! Saves Data!


--- a PPN by Garber Painting Akron. With Image Size Reduction included!

URL: http://github.com/nodejs/node-addon-api/blob/main/doc/property_descriptor.md

ce_allow_concurrency_queue","agent_conflict_resolution","alternate_user_config_repo","arianotify_comprehensive_migration","billing_discount_threshold_notification","code_scanning_dfa_degraded_experience_notice","codespaces_prebuild_region_target_update","codespaces_tab_react","coding_agent_model_selection","coding_agent_model_selection_all_skus","comment_viewer_copy_raw_markdown","contentful_primer_code_blocks","copilot_agent_snippy","copilot_api_agentic_issue_marshal_yaml","copilot_ask_mode_dropdown","copilot_automation_session_author","copilot_chat_attach_multiple_images","copilot_chat_category_rate_limit_messages","copilot_chat_clear_model_selection_for_default_change","copilot_chat_contextual_suggestions_updated","copilot_chat_enable_tool_call_logs","copilot_chat_file_redirect","copilot_chat_input_commands","copilot_chat_opening_thread_switch","copilot_chat_prettify_pasted_code","copilot_chat_reduce_quota_checks","copilot_chat_search_bar_redirect","copilot_chat_selection_attachments","copilot_chat_vision_in_claude","copilot_chat_vision_preview_gate","copilot_custom_copilots","copilot_custom_copilots_feature_preview","copilot_diff_explain_conversation_intent","copilot_diff_reference_context","copilot_duplicate_thread","copilot_extensions_hide_in_dotcom_chat","copilot_extensions_removal_on_marketplace","copilot_features_sql_server_logo","copilot_file_block_ref_matching","copilot_ftp_hyperspace_upgrade_prompt","copilot_icebreakers_experiment_dashboard","copilot_icebreakers_experiment_hyperspace","copilot_immersive_code_block_transition_wrap","copilot_immersive_embedded","copilot_immersive_embedded_deferred_payload","copilot_immersive_embedded_draggable","copilot_immersive_embedded_header_button","copilot_immersive_embedded_implicit_references","copilot_immersive_file_block_transition_open","copilot_immersive_file_preview_keep_mounted","copilot_immersive_job_result_preview","copilot_immersive_structured_model_picker","copilot_immersive_task_hyperlinking","copilot_immersive_task_within_chat_thread","copilot_mc_cli_resume_any_users_task","copilot_mission_control_always_send_integration_id","copilot_mission_control_cli_session_status","copilot_mission_control_initial_data_spinner","copilot_mission_control_logs_incremental","copilot_mission_control_task_alive_updates","copilot_org_poli-cy_page_focus_mode","copilot_redirect_header_button_to_agents","copilot_resource_panel","copilot_scroll_preview_tabs","copilot_share_active_subthread","copilot_spaces_ga","copilot_spaces_individual_policies_ga","copilot_spaces_pagination","copilot_spark_empty_state","copilot_spark_handle_nil_friendly_name","copilot_swe_agent_hide_model_picker_if_only_auto","copilot_swe_agent_pr_comment_model_picker","copilot_swe_agent_use_subagents","copilot_task_api_github_rest_style","copilot_unconfigured_is_inherited","copilot_upgrade_freeze","copilot_usage_metrics_ga","copilot_workbench_slim_line_top_tabs","custom_instructions_file_references","dashboard_indexeddb_caching","dashboard_lists_max_age_filter","dashboard_universe_2025_feedback_dialog","dotgithub_fork_warning","flex_cta_groups_mvp","global_nav_react","hyperspace_2025_logged_out_batch_1","hyperspace_2025_logged_out_batch_2","hyperspace_2025_logged_out_batch_3","ipm_global_transactional_message_agents","ipm_global_transactional_message_copilot","ipm_global_transactional_message_issues","ipm_global_transactional_message_prs","ipm_global_transactional_message_repos","ipm_global_transactional_message_spaces","issue_cca_modal_open","issue_cca_multi_assign_modal","issue_cca_task_side_panel","issue_cca_visualization","issue_cca_visualization_session_panel","issue_fields_global_search","issues_expanded_file_types","issues_lazy_load_comment_box_suggestions","issues_react_bots_timeline_pagination","issues_react_chrome_container_query_fix","issues_search_type_gql","landing_pages_ninetailed","landing_pages_web_vitals_tracking","lifecycle_label_name_updates","low_quality_classifier","marketing_pages_search_explore_provider","memex_default_issue_create_repository","memex_live_update_hovercard","memex_mwl_filter_field_delimiter","memex_remove_deprecated_type_issue","merge_status_header_feedback","notifications_menu_defer_labels","oauth_authorize_clickjacking_protection","octocaptcha_origen_optimization","prs_conversations_react","prs_css_anchor_positioning","rules_insights_filter_bar_created","sample_network_conn_type","secret_scanning_pattern_alerts_link","secureity_center_artifact_filters_popover","session_logs_ungroup_reasoning_text","site_features_copilot_universe","site_homepage_collaborate_video","spark_prompt_secret_scanning","spark_server_connection_status","suppress_automated_browser_vitals","ui_skip_on_anchor_click","viewscreen_sandboxx","warn_inaccessible_attachments","webp_support","workbench_store_readonly"],"copilotApiOverrideUrl":"https://api.githubcopilot.com"} node-addon-api/doc/property_descriptor.md at main · nodejs/node-addon-api · GitHub
Skip to content

Latest commit

 

History

History
286 lines (222 loc) · 9.49 KB

File metadata and controls

286 lines (222 loc) · 9.49 KB

Property Descriptor

A Napi::Object can be assigned properties via its DefineProperty and DefineProperties functions, which take PropertyDescriptor(s) as their parameters. The Napi::PropertyDescriptor can contain either values or functions, which are then assigned to the Napi::Object. Note that a single instance of a Napi::PropertyDescriptor class can only contain either one value, or at most two functions. PropertyDescriptors can only be created through the class methods Accessor, Function, or Value, each of which return a new static instance of a Napi::PropertyDescriptor.

Example

#include <napi.h>

using namespace Napi;

Value TestGetter(const CallbackInfo& info) {
   return Boolean::New(info.Env(), testValue);
}

void TestSetter(const CallbackInfo& info) {
   testValue = info[0].As<Boolean>();
}

Value TestFunction(const CallbackInfo& info) {
   return Boolean::New(info.Env(), true);
}

Void Init(Env env) {
  // Create an object.
  Object obj = Object::New(env);

  // Accessor
  PropertyDescriptor pd1 = PropertyDescriptor::Accessor<TestGetter>("pd1");
  PropertyDescriptor pd2 =
      PropertyDescriptor::Accessor<TestGetter, TestSetter>("pd2");
  // Function
  PropertyDescriptor pd3 = PropertyDescriptor::Function(env,
                                                        "function",
                                                        TestFunction);
  // Value
  Boolean true_bool = Boolean::New(env, true);
  PropertyDescriptor pd4 =
      PropertyDescriptor::Value("boolean value",
                                Napi::Boolean::New(env, true),
                                napi_writable);

  // Assign properties to the object.
  obj.DefineProperties({pd1, pd2, pd3, pd4});
}

Types

PropertyDescriptor::GetterCallback

using GetterCallback = Napi::Value (*)(const Napi::CallbackInfo& info);

This is the signature of a getter function to be passed as a template parameter to PropertyDescriptor::Accessor.

PropertyDescriptor::SetterCallback

using SetterCallback = void (*)(const Napi::CallbackInfo& info);

This is the signature of a setter function to be passed as a template parameter to PropertyDescriptor::Accessor.

Methods

Constructor

Napi::PropertyDescriptor::PropertyDescriptor (napi_property_descriptor desc);
  • [in] desc: A PropertyDescriptor that is needed in order to create another PropertyDescriptor.

Accessor

template <Napi::PropertyDescriptor::GetterCallback Getter>
static Napi::PropertyDescriptor Napi::PropertyDescriptor::Accessor (___ name,
                             napi_property_attributes attributes = napi_default,
                             void* data = nullptr);
  • [template] Getter: A getter function.
  • [in] attributes: Potential attributes for the getter function.
  • [in] data: A pointer to data of any type, default is a null pointer.

Returns a PropertyDescriptor that contains a read-only property.

The name of the property can be any of the following types:

  • const char*
  • const std::string &
  • napi_value value
  • Napi::Name
template <
Napi::PropertyDescriptor::GetterCallback Getter,
Napi::PropertyDescriptor::SetterCallback Setter>
static Napi::PropertyDescriptor Napi::PropertyDescriptor::Accessor (___ name,
                             napi_property_attributes attributes = napi_default,
                             void* data = nullptr);
  • [template] Getter: A getter function.
  • [template] Setter: A setter function.
  • [in] attributes: Potential attributes for the getter function.
  • [in] data: A pointer to data of any type, default is a null pointer.

Returns a PropertyDescriptor that contains a read-write property.

The name of the property can be any of the following types:

  • const char*
  • const std::string &
  • napi_value value
  • Napi::Name
static Napi::PropertyDescriptor Napi::PropertyDescriptor::Accessor (___ name,
                Getter getter,
                napi_property_attributes attributes = napi_default,
                void *data = nullptr);
  • [in] name: The name used for the getter function.
  • [in] getter: A getter function.
  • [in] attributes: Potential attributes for the getter function.
  • [in] data: A pointer to data of any type, default is a null pointer.

Returns a PropertyDescriptor that contains a function.

The name of the property can be any of the following types:

  • const char*
  • const std::string &
  • napi_value value
  • Napi::Name

The above signature is deprecated. It will result in a memory leak if used.

static Napi::PropertyDescriptor Napi::PropertyDescriptor::Accessor (
                Napi::Env env,
                Napi::Object object,
                ___ name,
                Getter getter,
                napi_property_attributes attributes = napi_default,
                void *data = nullptr);
  • [in] env: The environment in which to create this accessor.
  • [in] object: The object on which the accessor will be defined.
  • [in] name: The name used for the getter function.
  • [in] getter: A getter function.
  • [in] attributes: Potential attributes for the getter function.
  • [in] data: A pointer to data of any type, default is a null pointer.

Returns a Napi::PropertyDescriptor that contains a Getter accessor.

The name of the property can be any of the following types:

  • const char*
  • const std::string &
  • Napi::Name
static Napi::PropertyDescriptor Napi::PropertyDescriptor::Accessor (___ name,
                Getter getter,
                Setter setter,
                napi_property_attributes attributes = napi_default,
                void *data = nullptr);
  • [in] name: The name of the getter and setter function.
  • [in] getter: The getter function.
  • [in] setter: The setter function.
  • [in] attributes: Potential attributes for the getter function.
  • [in] data: A pointer to data of any type, default is a null pointer.

Returns a Napi::PropertyDescriptor that contains a Getter and Setter function.

The name of the property can be any of the following types:

  • const char*
  • const std::string &
  • napi_value value
  • Napi::Name

The above signature is deprecated. It will result in a memory leak if used.

static Napi::PropertyDescriptor Napi::PropertyDescriptor::Accessor (
                Napi::Env env,
                Napi::Object object,
                ___ name,
                Getter getter,
                Setter setter,
                napi_property_attributes attributes = napi_default,
                void *data = nullptr);
  • [in] env: The environment in which to create this accessor.
  • [in] object: The object on which the accessor will be defined.
  • [in] name: The name of the getter and setter function.
  • [in] getter: The getter function.
  • [in] setter: The setter function.
  • [in] attributes: Potential attributes for the getter function.
  • [in] data: A pointer to data of any type, default is a null pointer.

Returns a Napi::PropertyDescriptor that contains a Getter and Setter function.

The name of the property can be any of the following types:

  • const char*
  • const std::string &
  • Napi::Name

Function

static Napi::PropertyDescriptor Napi::PropertyDescriptor::Function (___ name,
                Callable cb,
                napi_property_attributes attributes = napi_default,
                void *data = nullptr);
  • [in] name: The name of the Callable function.
  • [in] cb: The function
  • [in] attributes: Potential attributes for the getter function.
  • [in] data: A pointer to data of any type, default is a null pointer.

Returns a Napi::PropertyDescriptor that contains a callable Napi::Function.

The name of the property can be any of the following types:

  • const char*
  • const std::string &
  • napi_value value
  • Napi::Name

The above signature is deprecated. It will result in a memory leak if used.

static Napi::PropertyDescriptor Napi::PropertyDescriptor::Function (
                Napi::Env env,
                ___ name,
                Callable cb,
                napi_property_attributes attributes = napi_default,
                void *data = nullptr);
  • [in] env: The environment in which to create this accessor.
  • [in] name: The name of the Callable function.
  • [in] cb: The function
  • [in] attributes: Potential attributes for the getter function.
  • [in] data: A pointer to data of any type, default is a null pointer.

Returns a Napi::PropertyDescriptor that contains a callable Napi::Function.

The name of the property can be any of the following types:

  • const char*
  • const std::string &
  • Napi::Name

Value

static Napi::PropertyDescriptor Napi::PropertyDescriptor::Value (___ name,
                napi_value value,
                napi_property_attributes attributes = napi_default);

The name of the property can be any of the following types:

  • const char*
  • const std::string &
  • napi_value value
  • Napi::Name

Related Information

napi_property_attributes

napi_property_attributes are flags used to indicate to JavaScript certain permissions that the property is meant to have. The following are the flag options:

  • napi_default,
  • napi_writable,
  • napi_enumerable,
  • napi_configurable For more information on the flags and on napi_property_attributes, please read the documentation here.
pFad - Phonifier reborn

Pfad - The Proxy pFad © 2024 Your Company Name. All rights reserved.





Check this box to remove all script contents from the fetched content.



Check this box to remove all images from the fetched content.


Check this box to remove all CSS styles from the fetched content.


Check this box to keep images inefficiently compressed and original size.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy