diff --git a/src/utils.cc b/src/utils.cc index 337d683..d957890 100644 --- a/src/utils.cc +++ b/src/utils.cc @@ -29,3 +29,16 @@ Local encoded_to_v8(void* db_ptr, wg_int enc){ return Local::New(Undefined()); } } + + +wg_int v8_to_encoded(void* db_ptr, Local data){ + if(data->IsInt32()){ + return wg_encode_int(db_ptr, (int)data->Int32Value()); + } else if(data->IsNumber()){ + return wg_encode_double(db_ptr, data->NumberValue()); + } else if(data->IsString()){ + return wg_encode_str(db_ptr, get_str(data->ToString()), NULL); + } else{ + return wg_encode_null(db_ptr, 0); + } +} diff --git a/src/utils.h b/src/utils.h index 6d54a9d..3fe07f6 100644 --- a/src/utils.h +++ b/src/utils.h @@ -12,4 +12,5 @@ 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); #endif