1.0.5 • Published 2 years ago

nv-cli-napi-helper v1.0.5

Weekly downloads
-
License
ISC
Repository
-
Last release
2 years ago

nv-cli-napi-helper

it convert the api to the following FORMAT

func

    "napi_call_threadsafe_function",   {type:"func",attr:"NAPI_EXTERN"}, [
       "paramd",[
            "func",                   {type:"napi_threadsafe_function"},
            "data",                   {type:"void*"},
            "is_blocking",            {type:"napi_threadsafe_function_call_mode"}
        ],
        "rtrn",{type:"napi_status"}
    ],

typedef

    "napi_threadsafe_function_call_js",{type:"typedef",of:"func"},[
        "paramd",[
            "env",                   {type:"napi_env"},
            "js_callback",           {type:"napi_value"},
            "context",               {type:"void*"},
            "data",                  {type:"void*"},
        ],
        "rtrn", {type:"void"}
    ],

    "napi_property_descriptor", {type:"typedef",of:"struct"},[
        "paramd",[
            "utf8name",             {type:"const char*"},
            "name",                 {type:"napi_value"},
            "method",               {type:"napi_callback"},
            "getter",               {type:"napi_callback"},
            "setter",               {type:"napi_callback"},
            "value",                {type:"napi_value"},
            "attributes",           {type:"napi_property_attributes"},
            "data",                 {type:"void*"}
        ]
    ],

enum

    "napi_typedarray_type",{type:"enum"} ,[
      "napi_int8_array",{val:0},                     //I8A
      "napi_uint8_array",{val:1},                    //U8A
      "napi_uint8_clamped_array",{val:2},            //U8CA 
      "napi_int16_array",{val:3},                    //I16A
      "napi_uint16_array",{val:4},                   //U16A 
      "napi_int32_array",{val:5},                    //I32A
      "napi_uint32_array",{val:6},                   //U32A
      "napi_float32_array",{val:7},                  //F32A
      "napi_float64_array",{val:8},                  //F64A
      "napi_bigint64_array",{val:9},                 //BI64A 
      "napi_biguint64_array",{val:10}                //BU64A
    ],

others such as opaque

    "napi_value",                     //V
    "napi_ref",                       //REF 
    "napi_env",                       //ENV
    "napi_callback_info",             //CBINFO
    "napi_callback_scope",            //CBSCP
    "napi_threadsafe_function",       //TSF
    "napi_handle_scope",              //HSCP        
    "napi_escapable_handle_scope",    //EHSCP
    "napi_async_cleanup_hook_handle", //ACLNHH
    "napi_async_context",             //ACTX
    "napi_async_work",                //AWK
    "napi_deferred",                  //DFR

install

  • npm install nv-cli-napi-helper -g

usage

list

    sage: nv_cli_napi_help_list [options]
    Options:
        -f, --func                  list all function names
        -E, --extern_func           list only NAPI_EXTERN function names
        -I, --intern_func           list only non-NAPI_EXTERN function names
        -d, --typedef               list all typedef names
        -S, --struct_typedef        list only struct typedef names
        -F, --func_typedef          list only function typedef names
        -t, --data_type             list all data types
        -r, --rtrn_type             list rtrn type names
        -e, --enum                  list enum names
        -o, --other                 list other names
        -h, --help                  usage

detail

    Usage: nv_cli_napi_help_detail [options]
    Options:
        -f, --func           show detail of function with func name
        -d, --typedef        show detail of typedef with typedef name
        -e, --enum           show detail of enum with enum name
        -h, --help           usage

search (multi)

    Usage: nv_cli_napi_help_detail [options] 
    Options:
        -f, --func               search for func    
        -d, --typedef            search for typedef 
        -e, --enum               search for enum    
        -n, --name               name regexp ptrn
        -p, --param_ptrns        some param regexp ptrns,ordered ,no-need continuous
        -o, --of_ptrn            struct OR func,only for typedef
        -r, --rtrn_ptrn          return regexp ptrn, only for func
        -E, --extern             is NAPI_EXTERN or NOT, only for func
        -h, --help               usage

show tac

    Usage: nv_cli_napi_help_show_tac [options]
    Options:
        -h, --help        show full big json

example

list

     # nv_cli_napi_help_list -f | egrep coer
      'napi_coerce_to_object',
      'napi_coerce_to_bool',
      'napi_coerce_to_number',
      'napi_coerce_to_string',
     # 

detail (must exact match the name)

     # nv_cli_napi_help_detail -f  napi_coerce_to_object

            /*napi_status R = */ napi_coerce_to_object(env,value,result)

            --typedef--
                napi_coerce_to_object
                    -type func
                    paramd
                        env
                            -type napi_env
                        value
                            -type napi_value
                        result
                            -type napi_value*
                    rtrn
                        -type napi_status
            
            ===================
     #

search (loose match )

    nv-cli-napi-helper# nv_cli_napi_help_srch -f -n coer

    /*napi_status R = */ napi_coerce_to_object(env,value,result)

    --typedef--
        napi_coerce_to_object
            -type func
            paramd
                env
                    -type napi_env
                value
                    -type napi_value
                result
                    -type napi_value*
            rtrn
                -type napi_status
    ===================

    /*napi_status R = */ napi_coerce_to_bool(env,value,result)

    --typedef--
        napi_coerce_to_bool
            -type func
            -alias as_bl
            paramd
                env
                    -type napi_env
                value
                    -type napi_value
                result
                    -type napi_value*
            rtrn
                -type napi_status
    ===================

    /*napi_status R = */ napi_coerce_to_number(env,value,result)

    --typedef--
        napi_coerce_to_number
            -type func
            -alias as_num
            paramd
                env
                    -type napi_env
                value
                    -type napi_value
                result
                    -type napi_value*
            rtrn
                -type napi_status
    ===================

    /*napi_status R = */ napi_coerce_to_string(env,value,result)

    --typedef--
        napi_coerce_to_string
            -type func
            -alias as_str
            paramd
                env
                    -type napi_env
                value
                    -type napi_value
                result
                    -type napi_value*
            rtrn
                -type napi_status
    ===================

using param multi ptrn match

    nv-string-basic# nv_cli_napi_help_srch -f -p o key key key

    /*napi_status R = */ napi_get_all_property_names(env,object,key_mode,key_filter,key_conversion,result)

    --typedef--
        napi_get_all_property_names
            -type func
            paramd
                env
                    -type napi_env
                object
                    -type napi_value
                key_mode
                    -type napi_key_collection_mode
                key_filter
                    -type napi_key_filter
                key_conversion
                    -type napi_key_conversion
                result
                    -type napi_value*
            rtrn
                -type napi_status
    ===================
    nv-string-basic#
        nv-cli-napi-helper# nv_cli_napi_help_srch -f -p obj k

        /*napi_status R = */ napi_get_all_property_names(env,object,key_mode,key_filter,key_conversion,result)

        --typedef--
            napi_get_all_property_names
                -type func
                paramd
                    env
                        -type napi_env
                    object
                        -type napi_value
                    key_mode
                        -type napi_key_collection_mode
                    key_filter
                        -type napi_key_filter
                    key_conversion
                        -type napi_key_conversion
                    result
                        -type napi_value*
                rtrn
                    -type napi_status
        ===================

        /*napi_status R = */ napi_set_property(env,object,key,value)

        --typedef--
            napi_set_property
                -type func
                paramd
                    env
                        -type napi_env
                    object
                        -type napi_value
                    key
                        -type napi_value
                    value
                        -type napi_value
                rtrn
                    -type napi_status
        ===================

        /*napi_status R = */ napi_has_property(env,object,key,result)

        --typedef--
            napi_has_property
                -type func
                paramd
                    env
                        -type napi_env
                    object
                        -type napi_value
                    key
                        -type napi_value
                    result
                        -type bool*
                rtrn
                    -type napi_status
        ===================

        /*napi_status R = */ napi_delete_property(env,object,key,result)

        --typedef--
            napi_delete_property
                -type func
                paramd
                    env
                        -type napi_env
                    object
                        -type napi_value
                    key
                        -type napi_value
                    result
                        -type bool*
                rtrn
                    -type napi_status
        ===================

        /*napi_status R = */ napi_has_own_property(env,object,key,result)

        --typedef--
            napi_has_own_property
                -type func
                paramd
                    env
                        -type napi_env
                    object
                        -type napi_value
                    key
                        -type napi_value
                    result
                        -type bool*
                rtrn
                    -type napi_status
        ===================

        /*napi_status R = */ napi_open_callback_scope(env,resource_object,context,result)

        --typedef--
            napi_open_callback_scope
                -type func
                -attr NAPI_EXTERN
                paramd
                    env
                        -type napi_env
                    resource_object
                        -type napi_value
                    context
                        -type napi_async_context
                    result
                        -type napi_callback_scope*
                rtrn
                    -type napi_status
        ===================

APIS

    x.ALL                      x.ENUMS                    x.ENUM_NAMES               x.EXTERN_FUNCS
    x.EXTERN_FUNC_NAMES        x.FUNCS                    x.FUNC_NAMES               x.FUNC_TYPDEFS
    x.FUNC_TYPDEF_NAMES        x.INTERN_FUNC_NAMES        x.OTHERS                   x.OTHER_NAMES
    x.STRUCT_TYPDEFS           x.STRUCT_TYPDEF_NAMES      x.TAC                      x.TYPDEFS
    x.TYPDEF_NAMES             x.TYP_ARY                  x.TYP_MD                   x.TYP_NAME_ARY
    x.call_func                x.get_type                 x.get_type_name            x.list_enum_name
    x.list_extern_func_name    x.list_func_name           x.list_func_typdef_name    x.list_intern_func_name
    x.list_other_name          x.list_struct_typdef_name  x.list_typdef_name         x.list_type
    x.list_type_name           x.show_enum                x.show_func                x.show_func_typdef
    x.show_struct_typdef       x.show_tac                 x.show_typdef              x.srch_enum
    x.srch_func                x.srch_typdef

LICENSE

  • ISC