Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/l2ig/aqua

A minimal and fast 🏃 web framework for Deno
https://github.com/l2ig/aqua

aqua cookies deno file-upload hacktoberfest http http-server middlewares typescript web web-framework

Last synced: 3 months ago
JSON representation

A minimal and fast 🏃 web framework for Deno

Awesome Lists containing this project

README

        

# Aqua

Aqua is a minimal and fast web framework.

> :warning: This version is a WIP and has not yet been released. Please refer to the [main branch](https://github.com/grayliquid/aqua/tree/main) for the current documentation.

## Example usage

### It starts easy,

```typescript
import { Aqua } from "...";

const app = new Aqua({
listen: {
port: 80,
},
});

app.route("/").respond(Method.GET, (_event) => {
return new Response("Hello, World!");
});
```

### ... and stays easy.

```typescript
const v1 = app.route("/v1").step(async (event) => {
if (!event.request.headers.has("X-Api-Key")) {
event.response = Response.json(
{ error: "MISSING_API_KEY" },
{
status: 400,
}
);
return event.end();
}

const user = await getUserByRequest(event.request);
// ^ type User

return {
...event,
user,
};
});

v1.route("/user").respond(Method.GET, (event) => {
return Response.json({ data: { user: event.user } });
// ^ type User
});
```