exports types
This commit is contained in:
parent
67ddb71fdd
commit
3e68ca285b
@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@bearmetal/router",
|
||||
"description": "A simple router for Deno",
|
||||
"version": "0.1.1",
|
||||
"version": "0.1.2",
|
||||
"stable": true,
|
||||
"repository": "https://github.com/emmaos/bearmetal",
|
||||
"files": [
|
||||
@ -9,7 +9,10 @@
|
||||
"README.md",
|
||||
"LICENSE"
|
||||
],
|
||||
"exports": "./mod.ts",
|
||||
"exports": {
|
||||
".": "./mod.ts",
|
||||
"./types": "./types.ts"
|
||||
},
|
||||
"imports": {
|
||||
"@std/assert": "jsr:@std/assert@^1.0.7",
|
||||
"@std/testing": "jsr:@std/testing@^1.0.4"
|
||||
|
34
router.ts
34
router.ts
@ -1,34 +1,4 @@
|
||||
interface RouterContext {
|
||||
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;
|
||||
}
|
||||
import type { Handler, Middleware, MiddlewareConfig, RouteConfig, RouteConfigurator, RouterContext } from "./types.ts";
|
||||
|
||||
/**
|
||||
* A simple router for Deno
|
||||
@ -327,7 +297,7 @@ if (import.meta.main) {
|
||||
console.log('Starting server...');
|
||||
const router = new Router();
|
||||
router.route('/users')
|
||||
.get((ctx) => {
|
||||
.get((_ctx) => {
|
||||
return new Response('GET /users');
|
||||
})
|
||||
// .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