diff --git a/src/utils.cc b/src/utils.cc index d957890..abcee03 100644 --- a/src/utils.cc +++ b/src/utils.cc @@ -42,3 +42,15 @@ wg_int v8_to_encoded(void* db_ptr, Local data){ return wg_encode_null(db_ptr, 0); } } + +wg_int v8_to_encoded_param(void* db_ptr, Local data){ + if(data->IsInt32()){ + return wg_encode_query_param_int(db_ptr, (int)data->Int32Value()); + } else if(data->IsNumber()){ + return wg_encode_query_param_double(db_ptr, data->NumberValue()); + } else if(data->IsString()){ + return wg_encode_query_param_str(db_ptr, get_str(data->ToString()), NULL); + } else{ + return wg_encode_query_param_null(db_ptr, 0); + } +} diff --git a/src/utils.h b/src/utils.h index 3fe07f6..8bc804c 100644 --- a/src/utils.h +++ b/src/utils.h @@ -13,4 +13,6 @@ char* get_str(Local val); Local encoded_to_v8(void* db_ptr, wg_int enc); wg_int v8_to_encoded(void* db_ptr, Local data); + +wg_int v8_to_encoded_param(void* db_ptr, Local data); #endif