@@ -1014,21 +1014,41 @@ class DuckDBNodeAddon : public Napi::Addon<DuckDBNodeAddon> {
1014
1014
// function from_date(date: Date_): DateParts
1015
1015
Napi::Value from_date (const Napi::CallbackInfo& info) {
1016
1016
auto env = info.Env ();
1017
- throw Napi::Error::New (env, " Not implemented yet" );
1017
+ auto date_obj = info[0 ].As <Napi::Object>();
1018
+ auto days = date_obj.Get (" days" ).As <Napi::Number>().Int32Value ();
1019
+ duckdb_date date = { days };
1020
+ auto date_parts = duckdb_from_date (date);
1021
+ auto result = Napi::Object::New (env);
1022
+ result.Set (" year" , Napi::Number::New (env, date_parts.year ));
1023
+ result.Set (" month" , Napi::Number::New (env, date_parts.month ));
1024
+ result.Set (" day" , Napi::Number::New (env, date_parts.day ));
1025
+ return result;
1018
1026
}
1019
1027
1020
1028
// DUCKDB_API duckdb_date duckdb_to_date(duckdb_date_struct date);
1021
1029
// function to_date(parts: DateParts): Date_
1022
1030
Napi::Value to_date (const Napi::CallbackInfo& info) {
1023
1031
auto env = info.Env ();
1024
- throw Napi::Error::New (env, " Not implemented yet" );
1032
+ auto date_parts_obj = info[0 ].As <Napi::Object>();
1033
+ int32_t year = date_parts_obj.Get (" year" ).As <Napi::Number>().Int32Value ();
1034
+ int8_t month = date_parts_obj.Get (" month" ).As <Napi::Number>().Int32Value ();
1035
+ int8_t day = date_parts_obj.Get (" day" ).As <Napi::Number>().Int32Value ();
1036
+ duckdb_date_struct date_parts { year, month, day };
1037
+ auto date = duckdb_to_date (date_parts);
1038
+ auto result = Napi::Object::New (env);
1039
+ result.Set (" days" , Napi::Number::New (env, date.days ));
1040
+ return result;
1025
1041
}
1026
1042
1027
1043
// DUCKDB_API bool duckdb_is_finite_date(duckdb_date date);
1028
1044
// function is_finite_date(date: Date_): boolean
1029
1045
Napi::Value is_finite_date (const Napi::CallbackInfo& info) {
1030
1046
auto env = info.Env ();
1031
- throw Napi::Error::New (env, " Not implemented yet" );
1047
+ auto date_obj = info[0 ].As <Napi::Object>();
1048
+ auto days = date_obj.Get (" days" ).As <Napi::Number>().Int32Value ();
1049
+ duckdb_date date = { days };
1050
+ auto is_finite = duckdb_is_finite_date (date);
1051
+ return Napi::Boolean::New (env, is_finite);
1032
1052
}
1033
1053
1034
1054
// DUCKDB_API duckdb_time_struct duckdb_from_time(duckdb_time time);
0 commit comments