Refactoring code, fixing name and adding readme

This commit is contained in:
xyroscar
2024-11-06 20:17:03 +05:30
parent 2e29a1cb82
commit dbedae1f58
10 changed files with 102 additions and 25 deletions

View File

@@ -1,7 +1,78 @@
# Tauri + SvelteKit + TypeScript # Resona - API Client
This template should help get you started developing with Tauri, SvelteKit and TypeScript in Vite. Resona is a modern, cross-platform API client built with Tauri, SvelteKit, and TypeScript. It provides a powerful interface for testing and managing API requests with features like workspace management, collections, and environment variables.
## Recommended IDE Setup ## Features
[VS Code](https://code.visualstudio.com/) + [Svelte](https://marketplace.visualstudio.com/items?itemName=svelte.svelte-vscode) + [Tauri](https://marketplace.visualstudio.com/items?itemName=tauri-apps.tauri-vscode) + [rust-analyzer](https://marketplace.visualstudio.com/items?itemName=rust-lang.rust-analyzer). - 🚀 Cross-platform desktop application (Windows, macOS, Linux)
- 📁 Workspace-based organization
- 📑 Request collections
- 🔄 Environment variables support
- 🎨 Beautiful UI with DaisyUI components
- 🌓 Light/Dark theme support
- 💾 Local storage persistence
- ⚡ Fast and lightweight
## Tech Stack
- **Frontend**: SvelteKit + TypeScript
- **Backend**: Tauri (Rust)
- **Styling**: TailwindCSS + DaisyUI
- **Database**: SQLite (via rusqlite)
- **Build Tool**: Vite
## Prerequisites
- Node.js (v16 or later)
- Bun
- Rust (latest stable)
- Cargo
- System dependencies for Tauri (see [Tauri prerequisites](https://tauri.app/v1/guides/getting-started/prerequisites))
## Installation
1. Clone the repository and install dependencies:
```bash
git clone https://github.com/Xyroscar/resona.git
cd resona
bun install
```
2. For development server:
```bash
bun run tauri dev
```
This will launch both the SvelteKit development server and the Tauri application.
## Building
To create a production build:
```bash
bun run tauri build
```
The built application will be available in the `src-tauri/target/release` directory.
## Configuration
### Development Server
The development server runs on port 1420 by default. You can modify this in the `vite.config.ts` file.
### Tauri
Tauri configuration can be found in `src-tauri/tauri.conf.json`. This includes window settings, build configurations, and security policies.
### Styling
The application uses TailwindCSS with DaisyUI for styling. Configuration can be found in:
- `tailwind.config.js` - TailwindCSS configuration
- `src/app.css` - Global styles
## Acknowledgments
- [Tauri](https://tauri.app/) - For the desktop application framework
- [SvelteKit](https://kit.svelte.dev/) - For the frontend framework
- [DaisyUI](https://daisyui.com/) - For the UI components

View File

@@ -1,5 +1,5 @@
{ {
"name": "api-client", "name": "resona",
"version": "0.1.0", "version": "0.1.0",
"description": "", "description": "",
"type": "module", "type": "module",

2
src-tauri/Cargo.lock generated
View File

@@ -75,7 +75,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "74f37166d7d48a0284b99dd824694c26119c700b53bf0d1540cdb147dbdaaf13" checksum = "74f37166d7d48a0284b99dd824694c26119c700b53bf0d1540cdb147dbdaaf13"
[[package]] [[package]]
name = "api-tester" name = "Resona"
version = "0.1.0" version = "0.1.0"
dependencies = [ dependencies = [
"reqwest", "reqwest",

View File

@@ -1,11 +1,11 @@
[package] [package]
name = "api-tester" name = "Resona"
version = "0.1.0" version = "0.1.0"
description = "A Tauri App" description = "A Tauri App"
authors = ["you"] authors = ["you"]
license = "" license = ""
repository = "" repository = ""
default-run = "api-tester" default-run = "resona"
edition = "2021" edition = "2021"
rust-version = "1.60" rust-version = "1.60"

View File

View File

@@ -3,3 +3,17 @@ mod collection;
pub use workspace::*; pub use workspace::*;
pub use collection::*; pub use collection::*;
pub fn handlers() -> impl Fn(tauri::ipc::Invoke) -> bool {
tauri::generate_handler![
create_workspace,
get_workspaces,
get_workspace,
update_workspace,
delete_workspace,
create_collection,
get_workspace_collections,
update_collection,
delete_collection
]
}

View File

@@ -1,13 +1,15 @@
mod api;
mod models; mod models;
mod storage; mod storage;
mod commands; mod commands;
mod client;
use commands::handlers as h;
use storage::Storage; use storage::Storage;
use tauri::Manager; use tauri::Manager;
use std::sync::Mutex; use std::sync::Mutex;
fn main() { fn main() {
let handlers = h();
tauri::Builder::default() tauri::Builder::default()
.setup(|app| { .setup(|app| {
let app_dir = app.path().app_data_dir() let app_dir = app.path().app_data_dir()
@@ -19,17 +21,7 @@ fn main() {
app.manage(Mutex::new(storage)); app.manage(Mutex::new(storage));
Ok(()) Ok(())
}) })
.invoke_handler(tauri::generate_handler![ .invoke_handler(handlers)
commands::create_workspace,
commands::get_workspaces,
commands::get_workspace,
commands::update_workspace,
commands::delete_workspace,
commands::create_collection,
commands::get_workspace_collections,
commands::update_collection,
commands::delete_collection,
])
.run(tauri::generate_context!()) .run(tauri::generate_context!())
.expect("error while running tauri application"); .expect("error while running tauri application");
} }

View File

@@ -59,7 +59,7 @@ pub struct Storage {
impl Storage { impl Storage {
pub fn new(app_dir: PathBuf) -> rusqlite::Result<Self> { pub fn new(app_dir: PathBuf) -> rusqlite::Result<Self> {
let db_path = app_dir.join("api-client.db"); let db_path = app_dir.join("resona.db");
let data_dir = app_dir.join("data"); let data_dir = app_dir.join("data");
fs::create_dir_all(&data_dir).map_err(|e| rusqlite::Error::InvalidPath(data_dir.clone()))?; fs::create_dir_all(&data_dir).map_err(|e| rusqlite::Error::InvalidPath(data_dir.clone()))?;

View File

@@ -1,8 +1,8 @@
{ {
"$schema": "https://schema.tauri.app/config/2", "$schema": "https://schema.tauri.app/config/2",
"productName": "api-client", "productName": "resona",
"version": "0.1.0", "version": "0.1.0",
"identifier": "com.api-client.app", "identifier": "com.resona.app",
"build": { "build": {
"beforeDevCommand": "bun run dev", "beforeDevCommand": "bun run dev",
"devUrl": "http://localhost:1420", "devUrl": "http://localhost:1420",
@@ -12,7 +12,7 @@
"app": { "app": {
"windows": [ "windows": [
{ {
"title": "api-client", "title": "resona",
"width": 800, "width": 800,
"height": 600 "height": 600
} }