exports types
This commit is contained in:
parent
67ddb71fdd
commit
3e68ca285b
@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "@bearmetal/router",
|
"name": "@bearmetal/router",
|
||||||
"description": "A simple router for Deno",
|
"description": "A simple router for Deno",
|
||||||
"version": "0.1.1",
|
"version": "0.1.2",
|
||||||
"stable": true,
|
"stable": true,
|
||||||
"repository": "https://github.com/emmaos/bearmetal",
|
"repository": "https://github.com/emmaos/bearmetal",
|
||||||
"files": [
|
"files": [
|
||||||
@ -9,7 +9,10 @@
|
|||||||
"README.md",
|
"README.md",
|
||||||
"LICENSE"
|
"LICENSE"
|
||||||
],
|
],
|
||||||
"exports": "./mod.ts",
|
"exports": {
|
||||||
|
".": "./mod.ts",
|
||||||
|
"./types": "./types.ts"
|
||||||
|
},
|
||||||
"imports": {
|
"imports": {
|
||||||
"@std/assert": "jsr:@std/assert@^1.0.7",
|
"@std/assert": "jsr:@std/assert@^1.0.7",
|
||||||
"@std/testing": "jsr:@std/testing@^1.0.4"
|
"@std/testing": "jsr:@std/testing@^1.0.4"
|
||||||
|
34
router.ts
34
router.ts
@ -1,34 +1,4 @@
|
|||||||
interface RouterContext {
|
import type { Handler, Middleware, MiddlewareConfig, RouteConfig, RouteConfigurator, RouterContext } from "./types.ts";
|
||||||
url: URL;
|
|
||||||
params: Record<string, string | undefined>;
|
|
||||||
state: Record<string, unknown>;
|
|
||||||
pattern: URLPattern;
|
|
||||||
request: Request;
|
|
||||||
}
|
|
||||||
|
|
||||||
type Handler = (req: Request, ctx: RouterContext) => Promise<Response> | Response;
|
|
||||||
type Middleware = (ctx: RouterContext, next: () => Promise<Response>) => Promise<Response>;
|
|
||||||
|
|
||||||
interface RouteConfig {
|
|
||||||
pattern: URLPattern;
|
|
||||||
handlers: { [method: string]: Handler };
|
|
||||||
}
|
|
||||||
|
|
||||||
interface MiddlewareConfig {
|
|
||||||
pattern: URLPattern;
|
|
||||||
handler: Middleware;
|
|
||||||
// Add path for sorting
|
|
||||||
path: string;
|
|
||||||
}
|
|
||||||
|
|
||||||
interface RouteConfigurator {
|
|
||||||
get(handler: Handler): RouteConfigurator;
|
|
||||||
post(handler: Handler): RouteConfigurator;
|
|
||||||
put(handler: Handler): RouteConfigurator;
|
|
||||||
delete(handler: Handler): RouteConfigurator;
|
|
||||||
patch(handler: Handler): RouteConfigurator;
|
|
||||||
options(handler: Handler): RouteConfigurator;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A simple router for Deno
|
* A simple router for Deno
|
||||||
@ -327,7 +297,7 @@ if (import.meta.main) {
|
|||||||
console.log('Starting server...');
|
console.log('Starting server...');
|
||||||
const router = new Router();
|
const router = new Router();
|
||||||
router.route('/users')
|
router.route('/users')
|
||||||
.get((ctx) => {
|
.get((_ctx) => {
|
||||||
return new Response('GET /users');
|
return new Response('GET /users');
|
||||||
})
|
})
|
||||||
// .post((ctx) => {
|
// .post((ctx) => {
|
||||||
|
30
types.ts
Normal file
30
types.ts
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
export interface RouterContext {
|
||||||
|
url: URL;
|
||||||
|
params: Record<string, string | undefined>;
|
||||||
|
state: Record<string, unknown>;
|
||||||
|
pattern: URLPattern;
|
||||||
|
request: Request;
|
||||||
|
}
|
||||||
|
|
||||||
|
export type Handler = (req: Request, ctx: RouterContext) => Promise<Response> | Response;
|
||||||
|
export type Middleware = (ctx: RouterContext, next: () => Promise<Response>) => Promise<Response>;
|
||||||
|
|
||||||
|
export interface RouteConfig {
|
||||||
|
pattern: URLPattern;
|
||||||
|
handlers: { [method: string]: Handler };
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface MiddlewareConfig {
|
||||||
|
pattern: URLPattern;
|
||||||
|
handler: Middleware;
|
||||||
|
path: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface RouteConfigurator {
|
||||||
|
get(handler: Handler): RouteConfigurator;
|
||||||
|
post(handler: Handler): RouteConfigurator;
|
||||||
|
put(handler: Handler): RouteConfigurator;
|
||||||
|
delete(handler: Handler): RouteConfigurator;
|
||||||
|
patch(handler: Handler): RouteConfigurator;
|
||||||
|
options(handler: Handler): RouteConfigurator;
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user