Crates.io | confetti |
lib.rs | confetti |
version | 0.1.12 |
source | src |
created_at | 2020-10-09 01:02:04.618809 |
updated_at | 2021-06-13 15:47:05.396595 |
description | Framework for creating webapps using CloudFlare Workers |
homepage | https://github.com/pinatasoftware/confetti |
repository | https://github.com/pinatasoftware/confetti |
max_upload_size | |
id | 297482 |
size | 28,883 |
wrangler generate
to Clone this TemplateLearn more about wrangler generate
here.
wrangler generate wasm-worker https://github.com/pinatasoftware/confetti-template.git
cd wasm-worker
Each route has a pattern a list of middlewares:
Route {
pattern: (Method::Get, "/"),
middlewares: vec![fetch_session, validate_user, home],
},
Each middleware is run one after the other. If any middleware halts then the response is sent immediately and all remaining middlewares will not run
Middlewares are async functions that receive and return a Conn
pub async fn hello(conn: Conn) -> Conn {
let mut headers = conn.resp_headers;
headers.insert("Content-Type".to_string(), "text/html".to_string());
let content = "<h1>Hello World from Confetti</h1>";
return Conn {
resp_headers: headers,
resp_body: content.to_string(),
status: 200,
..conn
};
}
pub struct Conn {
// Request
pub host: String,
pub method: Method,
pub port: u16,
pub scheme: String,
pub path: String,
pub query_string: String,
pub req_body: String,
pub req_headers: HashMap<String, String>,
pub cf: HashMap<String, String>,
// Response
pub resp_body: String,
pub resp_headers: HashMap<String, String>,
pub status: u16,
// Connection
pub assigns: HashMap<String, String>,
pub halted: bool,
}
wasm-pack build
wasm-pack build
wasm-pack test
wasm-pack test --headless --firefox