Use date types
This commit is contained in:
@@ -4,31 +4,67 @@ use ts_rs::TS;
|
||||
|
||||
// Import all the types we want to export using the library crate
|
||||
use bloop_backend::models::{
|
||||
ApiResponse, Project, CreateProject, UpdateProject,
|
||||
CreateUser, UpdateUser, LoginRequest, LoginResponse, UserResponse,
|
||||
ApiResponse, CreateProject, CreateUser, LoginRequest, LoginResponse, Project, UpdateProject,
|
||||
UpdateUser, UserResponse,
|
||||
};
|
||||
|
||||
fn main() {
|
||||
let shared_path = Path::new("../shared");
|
||||
|
||||
|
||||
// Create the shared directory if it doesn't exist
|
||||
std::fs::create_dir_all(shared_path).unwrap();
|
||||
|
||||
|
||||
println!("Generating TypeScript types...");
|
||||
|
||||
|
||||
// Set environment variable to configure ts-rs output directory
|
||||
env::set_var("TS_RS_EXPORT_DIR", shared_path.to_str().unwrap());
|
||||
|
||||
// Export TypeScript types for each struct using ts-rs export functionality
|
||||
bloop_backend::models::ApiResponse::<()>::export().unwrap();
|
||||
bloop_backend::models::Project::export().unwrap();
|
||||
bloop_backend::models::CreateProject::export().unwrap();
|
||||
bloop_backend::models::UpdateProject::export().unwrap();
|
||||
bloop_backend::models::CreateUser::export().unwrap();
|
||||
bloop_backend::models::UpdateUser::export().unwrap();
|
||||
bloop_backend::models::LoginRequest::export().unwrap();
|
||||
bloop_backend::models::LoginResponse::export().unwrap();
|
||||
bloop_backend::models::UserResponse::export().unwrap();
|
||||
|
||||
|
||||
// // Export TypeScript types for each struct using ts-rs export functionality
|
||||
// bloop_backend::models::ApiResponse::<()>::export().unwrap();
|
||||
// bloop_backend::models::Project::export().unwrap();
|
||||
// bloop_backend::models::CreateProject::export().unwrap();
|
||||
// bloop_backend::models::UpdateProject::export().unwrap();
|
||||
// bloop_backend::models::CreateUser::export().unwrap();
|
||||
// bloop_backend::models::UpdateUser::export().unwrap();
|
||||
// bloop_backend::models::LoginRequest::export().unwrap();
|
||||
// bloop_backend::models::LoginResponse::export().unwrap();
|
||||
// bloop_backend::models::UserResponse::export().unwrap();
|
||||
|
||||
// Generate consolidated types.ts file
|
||||
let consolidated_content = format!(
|
||||
r#"// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
// Auto-generated from Rust backend types using ts-rs
|
||||
|
||||
{}
|
||||
|
||||
{}
|
||||
|
||||
{}
|
||||
|
||||
{}
|
||||
|
||||
{}
|
||||
|
||||
{}
|
||||
|
||||
{}
|
||||
|
||||
{}
|
||||
|
||||
{}
|
||||
"#,
|
||||
bloop_backend::models::ApiResponse::<()>::decl(),
|
||||
bloop_backend::models::CreateProject::decl(),
|
||||
bloop_backend::models::CreateUser::decl(),
|
||||
bloop_backend::models::LoginRequest::decl(),
|
||||
bloop_backend::models::LoginResponse::decl(),
|
||||
bloop_backend::models::Project::decl(),
|
||||
bloop_backend::models::UpdateProject::decl(),
|
||||
bloop_backend::models::UpdateUser::decl(),
|
||||
bloop_backend::models::UserResponse::decl(),
|
||||
);
|
||||
|
||||
std::fs::write(shared_path.join("types.ts"), consolidated_content).unwrap();
|
||||
|
||||
println!("TypeScript types generated successfully in ../shared/");
|
||||
}
|
||||
|
||||
@@ -10,7 +10,9 @@ pub struct Project {
|
||||
pub id: Uuid,
|
||||
pub name: String,
|
||||
pub owner_id: Uuid, // Foreign key to User
|
||||
#[ts(type = "Date")]
|
||||
pub created_at: DateTime<Utc>,
|
||||
#[ts(type = "Date")]
|
||||
pub updated_at: DateTime<Utc>,
|
||||
}
|
||||
|
||||
|
||||
@@ -52,7 +52,9 @@ pub struct UserResponse {
|
||||
pub id: Uuid,
|
||||
pub email: String,
|
||||
pub is_admin: bool,
|
||||
#[ts(type = "Date")]
|
||||
pub created_at: DateTime<Utc>,
|
||||
#[ts(type = "Date")]
|
||||
pub updated_at: DateTime<Utc>,
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user