() {
164 | return {
165 | get: (
166 | path: P,
167 | handler: Handler<'GET', P, RequestContext>,
168 | ) => ['GET', path as string, handler] as Route,
169 | post: (
170 | path: P,
171 | handler: Handler<'POST', P, RequestContext>,
172 | ) => ['POST', path as string, handler] as Route,
173 | put: (
174 | path: P,
175 | handler: Handler<'PUT', P, RequestContext>,
176 | ) => ['PUT', path as string, handler] as Route,
177 | delete: (
178 | path: P,
179 | handler: Handler<'DELETE', P, RequestContext>,
180 | ) => ['DELETE', path as string, handler] as Route,
181 | route: (
182 | method: M,
183 | path: P,
184 | handler: Handler, P, RequestContext>,
185 | ) =>
186 | [method.toUpperCase(), path as string, handler] as Route,
187 | };
188 | }
189 |
190 | function toError(e: unknown) {
191 | return e instanceof Error ? e : new Error(String(e));
192 | }
193 |
--------------------------------------------------------------------------------
/packages/core/src/core/index.ts:
--------------------------------------------------------------------------------
1 | export { defineAdapter } from './defineAdapter';
2 | export { HttpError } from './HttpError';
3 | export type { Router } from './Router';
4 |
--------------------------------------------------------------------------------
/packages/core/src/core/support/__tests__/mimeTypes.test.ts:
--------------------------------------------------------------------------------
1 | import { getMimeTypeFromExt, getExtForMimeType } from '../mimeTypes';
2 |
3 | describe('mimeTypes', () => {
4 | it('should look up mime type from file extension', () => {
5 | expect(getMimeTypeFromExt('htm')).toEqual('text/html');
6 | expect(getMimeTypeFromExt('html')).toEqual('text/html');
7 | expect(getMimeTypeFromExt('png')).toEqual('image/png');
8 | expect(getMimeTypeFromExt('asdf')).toEqual(undefined);
9 | });
10 |
11 | it('should look up extension from mime type', () => {
12 | expect(getExtForMimeType('text/html')).toEqual('html');
13 | expect(getExtForMimeType('application/json')).toEqual('json');
14 | expect(getExtForMimeType('application/asdf')).toEqual(undefined);
15 | });
16 | });
17 |
--------------------------------------------------------------------------------
/packages/core/src/core/support/createMeta.ts:
--------------------------------------------------------------------------------
1 | export function createMeta() {
2 | const weakMap = new WeakMap