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",
"description": "",
"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"
[[package]]
name = "api-tester"
name = "Resona"
version = "0.1.0"
dependencies = [
"reqwest",

View File

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

View File

View File

@@ -3,3 +3,17 @@ mod collection;
pub use workspace::*;
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 storage;
mod commands;
mod client;
use commands::handlers as h;
use storage::Storage;
use tauri::Manager;
use std::sync::Mutex;
fn main() {
let handlers = h();
tauri::Builder::default()
.setup(|app| {
let app_dir = app.path().app_data_dir()
@@ -19,17 +21,7 @@ fn main() {
app.manage(Mutex::new(storage));
Ok(())
})
.invoke_handler(tauri::generate_handler![
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,
])
.invoke_handler(handlers)
.run(tauri::generate_context!())
.expect("error while running tauri application");
}
}

View File

@@ -59,7 +59,7 @@ pub struct Storage {
impl Storage {
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");
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",
"productName": "api-client",
"productName": "resona",
"version": "0.1.0",
"identifier": "com.api-client.app",
"identifier": "com.resona.app",
"build": {
"beforeDevCommand": "bun run dev",
"devUrl": "http://localhost:1420",
@@ -12,7 +12,7 @@
"app": {
"windows": [
{
"title": "api-client",
"title": "resona",
"width": 800,
"height": 600
}