napi_value bufferInfo(napi_env env, napi_callback_info info){ size_t argc=1; napi_value args[1]; napi_status status; //napi_valuetype valuetype; //bool valuetype; status=napi_get_cb_info(env, info, &argc, args,NULL,NULL); if(status !=napi_ok){return NULL;} //assert(status==napi_ok); //if(argc > 1){napi_throw_type_error(env,nullptr,"Wrong number of arguments!"); // return NULL; //} //status=napi_is_buffer(env,args[0], &valuetype); //if(status !=napi_ok){return status;} //assert(status==napi_ok); //if(valuetype == false){ //napi_throw_type_error(env,nullptr,"Wrong type of argument. Expects a buffer!"); //return NULL; //} napi_value theBuffer=args[0], ua_family; const char* bufferData; napi_value obj; //size_t bufferLength; status=napi_get_buffer_info(env,theBuffer,(void**)(&bufferData),/*&bufferLength*/NULL); if(status !=napi_ok){return NULL;} //assert(status==napi_ok); //printf("here: %s\n",bufferData); //printf("here len: %zu\n",bufferLength); //printf("sizeof(theText): %zu\n",sizeof(theText)); //status=napi_get_boolean(env,!strcmp(bufferData,theText) && bufferLength==sizeof(theText),&returnValue); //assert(status==napi_ok); //struct user_agent_parser *ua_parser = user_agent_parser_create(); //struct user_agent_info *ua_info = user_agent_info_create(); //user_agent_parser_read_buffer(ua_parser, ___uap_core_regexes_yaml, ___uap_core_regexes_yaml_len); status=napi_create_object(env,&obj); if(status !=napi_ok){return NULL;} if (user_agent_parser_parse_string(ua_parser, ua_info,bufferData)) { //status= napi_create_string_utf8(env,ua_info->user_agent.family,NAPI_AUTO_LENGTH,&ua_family); //if(status !=napi_ok){return NULL;} //assert(status==napi_ok); //assert(status==napi_ok); //status=napi_set_named_property(env,obj,"ua_family",ua_family);//major,minor,patch //if(status !=napi_ok){return NULL;} //assert(status==napi_ok); } napi_property_descriptor descriptors[]={ {"ua_family",NULL,0,0,0,ua_family,napi_default,0} }; status=napi_define_properties(env,obj,sizeof(descriptors)/sizeof(descriptors[0]),descriptors); //assert(status==napi_ok); //user_agent_parser_destroy(ua_parser); //user_agent_info_destroy(ua_info); return obj; }
static napi_value bufferInfo(napi_env env, napi_callback_info info) { size_t argc = 1; napi_value args[1]; NAPI_CALL(env, napi_get_cb_info(env, info, &argc, args, NULL, NULL)); NAPI_ASSERT(env, argc == 1, "Wrong number of arguments"); napi_value theBuffer = args[0]; char *bufferData; napi_value returnValue; size_t bufferLength; NAPI_CALL(env, napi_get_buffer_info( env, theBuffer, (void**)(&bufferData), &bufferLength)); NAPI_CALL(env, napi_get_boolean(env, !strcmp(bufferData, theText) && bufferLength == sizeof(theText), &returnValue)); return returnValue; }