Skip to content

Commit

Permalink
checking in stuff
Browse files Browse the repository at this point in the history
  • Loading branch information
kwhitley committed Apr 14, 2024
1 parent 275ce93 commit ecb7851
Show file tree
Hide file tree
Showing 12 changed files with 65 additions and 44 deletions.
1 change: 0 additions & 1 deletion rollup.config.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@ const files = (await globby('./src/*.ts', {
types: path.replace('/src/', '/dist/').replace('.ts', '.d.ts'),
})).sort((a, b) => a.shortPath.toLowerCase() < b.shortPath.toLowerCase() ? -1 : 1)


// read original package.json
const pkg = await fs.readJSON('./package.json')

Expand Down
11 changes: 7 additions & 4 deletions src/AutoRouter.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { Router } from './Router'
import { error } from './error'
import { json } from './json'
import { AutoRouterOptions, AutoRouterType, IRequest } from './types'
import { AutoRouterOptions, AutoRouterType, IRequest, IRequestStrict} from './types'

Check failure on line 4 in src/AutoRouter.ts

View workflow job for this annotation

GitHub Actions / build

'IRequestStrict' is defined but never used
import { withParams } from './withParams'

export const AutoRouter = <
Expand All @@ -13,17 +13,20 @@ export const AutoRouter = <
missing = () => error(404),
finally: f = [],
before = [],
...options }: AutoRouterOptions = {}
): AutoRouterType<RequestType, Args, ResponseType> => Router({
...options }: AutoRouterOptions<RequestType, Args, ResponseType> = {}
) => Router<RequestType, Args, ResponseType>({
before: [
// @ts-ignore
withParams,
...before
],
// @ts-ignore
catch: error,
finally: [
// @ts-ignore
(r: any, ...args) => r ?? missing(r, ...args),
format,
...f,
],
...options,
})
}) as AutoRouterType<RequestType, Args, ResponseType>
4 changes: 2 additions & 2 deletions src/Router.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ export const Router = <
RequestType = IRequest,
Args extends any[] = any[],
ResponseType = any
>({ base = '', routes = [], ...other }: RouterOptions = {}): RouterType<RequestType, Args, ResponseType> =>
>({ base = '', routes = [], ...other }: RouterOptions<RequestType, Args, ResponseType> = {}): RouterType<RequestType, Args, ResponseType> =>
({
__proto__: new Proxy({}, {
// @ts-expect-error (we're adding an expected prop "path" to the get)
Expand Down Expand Up @@ -72,4 +72,4 @@ export const Router = <

return response
},
} as RouterType<RequestType, Args>)
} as RouterType<RequestType, Args, ResponseType>)
10 changes: 7 additions & 3 deletions src/types/AutoRouterOptions.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,11 @@ import { RequestHandler } from './RequestHandler'
import { ResponseHandler } from './ResponseHandler'
import { RouterOptions } from './RouterOptions'

export type AutoRouterOptions = {
missing?: RequestHandler
export type AutoRouterOptions<
RequestType,
Args extends any[],
ResponseType
> = {
missing?: RequestHandler<RequestType, Args>
format?: ResponseHandler
} & RouterOptions
} & RouterOptions<RequestType, Args, ResponseType>
6 changes: 3 additions & 3 deletions src/types/AutoRouterType.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,10 @@ import { ResponseHandler } from './ResponseHandler'
import { RouterType } from './RouterType'

export type AutoRouterType<
R = IRequest,
RequestType = IRequest,
Args extends any[] = any[],
ResponseType = any
> = {
missing?: RequestHandler
missing?: RequestHandler<RequestType, Args>
format?: ResponseHandler
} & RouterType<R, Args, ResponseType>
} & RouterType<RequestType, Args, ResponseType>
3 changes: 2 additions & 1 deletion src/types/ErrorHandler.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,6 @@ import { IRequest } from './IRequest'

export type ErrorHandler<
ErrorType extends Error = StatusError,
RequestType = IRequest, Args extends any[] = any[]
RequestType = IRequest,
Args extends any[] = any[]
> = (error: ErrorType, request: RequestType, ...args: Args) => any
28 changes: 14 additions & 14 deletions src/types/IttyRouterType.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,20 +6,20 @@ import { RouteEntry } from './RouteEntry'
import { CustomRoutes } from './CustomRoutes'

export type IttyRouterType<
R = IRequest,
A extends any[] = any[],
RequestType = IRequest,
Args extends any[] = any[],
ResponseType = any,
GlobalRequestType = R,
GlobalRequestType = RequestType,
> = {
__proto__: IttyRouterType<R>
__proto__: IttyRouterType<RequestType, Args, ResponseType>
routes: RouteEntry[]
fetch: <Args extends any[] = A>(request: RequestLike, ...extra: Args) => Promise<ResponseType>
all: Route<GlobalRequestType, A>
delete: Route<GlobalRequestType, A>
get: Route<GlobalRequestType, A>
head: Route<GlobalRequestType, A>
options: Route<GlobalRequestType, A>
patch: Route<GlobalRequestType, A>
post: Route<GlobalRequestType, A>
put: Route<GlobalRequestType, A>
} & CustomRoutes<Route<GlobalRequestType, A>> & GenericTraps
fetch: <A extends any[] = Args>(request: RequestLike, ...extra: A) => Promise<ResponseType>
all: Route<GlobalRequestType, Args>
delete: Route<GlobalRequestType, Args>
get: Route<GlobalRequestType, Args>
head: Route<GlobalRequestType, Args>
options: Route<GlobalRequestType, Args>
patch: Route<GlobalRequestType, Args>
post: Route<GlobalRequestType, Args>
put: Route<GlobalRequestType, Args>
} & CustomRoutes<Route<GlobalRequestType, Args>> & GenericTraps
6 changes: 4 additions & 2 deletions src/types/RequestHandler.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
import { IRequest } from './IRequest'

export type RequestHandler<R = IRequest, Args extends Array<any> = any[]> =
(request: R, ...args: Args) => any
export type RequestHandler<
RequestType = IRequest,
Args extends Array<any> = any[]
> = (request: RequestType, ...args: Args) => any
6 changes: 3 additions & 3 deletions src/types/ResponseHandler.ts
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
import { IRequest } from './IRequest'

export type ResponseHandler<
ResponseType = Response,
ResponseType = any,
RequestType = IRequest,
Args extends any[] = any[]
> = (
response: ResponseType & any,
request: RequestType & any,
response: ResponseType,
request: RequestType,
...args: Args
) => any
5 changes: 3 additions & 2 deletions src/types/RouteEntry.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
import { IRequest } from './IRequest'
import { RequestHandler } from './RequestHandler'

export type RouteEntry = [
export type RouteEntry<RequestType = IRequest, Args extends any[] = any[]> = [
httpMethod: string,
match: RegExp,
handlers: RequestHandler[],
handlers: RequestHandler<RequestType, Args>[],
path?: string,
]
14 changes: 10 additions & 4 deletions src/types/RouterOptions.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,16 @@
import { StatusError } from 'StatusError'
import { ErrorHandler } from './ErrorHandler'
import { IRequest } from './IRequest'
import { IttyRouterOptions } from './IttyRouterOptions'
import { RequestHandler } from './RequestHandler'
import { ResponseHandler } from './ResponseHandler'

export type RouterOptions = {
before?: RequestHandler<any>[]
catch?: ErrorHandler
finally?: ResponseHandler[]
export type RouterOptions<
RequestType = IRequest,
Args extends any[] = [],
ResponseType = any

Check failure on line 11 in src/types/RouterOptions.ts

View workflow job for this annotation

GitHub Actions / build

'ResponseType' is defined but never used
> = {
before?: RequestHandler<RequestType, Args>[]
catch?: ErrorHandler<StatusError, RequestType, Args>
finally?: ResponseHandler<any, RequestType, Args>[]
} & IttyRouterOptions
15 changes: 10 additions & 5 deletions src/types/RouterType.ts
Original file line number Diff line number Diff line change
@@ -1,11 +1,16 @@
import { StatusError } from 'StatusError'
import { ErrorHandler } from './ErrorHandler'
import { IRequest } from './IRequest'
import { IttyRouterType } from './IttyRouterType'
import { RequestHandler } from './RequestHandler'
import { ResponseHandler } from './ResponseHandler'

export type RouterType<R = IRequest, Args extends any[] = any[], ResponseType = any> = {
before?: RequestHandler<any>[]
catch?: ErrorHandler
finally?: ResponseHandler[]
} & IttyRouterType<R, Args, ResponseType>
export type RouterType<
RequestType = IRequest,
Args extends any[] = any[],
ResponseType = any
> = {
before?: RequestHandler<RequestType, Args>[]
catch?: ErrorHandler<StatusError, RequestType, Args>
finally?: ResponseHandler<any, RequestType, Args>[]
} & IttyRouterType<RequestType, Args, ResponseType>

0 comments on commit ecb7851

Please sign in to comment.