| 488 | |
| 489 | /** @internal */ |
| 490 | export const route = (method: Method.HttpMethod | "*"): { |
| 491 | <R1, E1>( |
| 492 | path: Router.PathInput, |
| 493 | handler: Router.Route.Handler<E1, R1>, |
| 494 | options?: { |
| 495 | readonly uninterruptible?: boolean | undefined |
| 496 | } | undefined |
| 497 | ): <E, R>( |
| 498 | self: Router.HttpRouter<E, R> |
| 499 | ) => Router.HttpRouter<E1 | E, R | Router.HttpRouter.ExcludeProvided<R1>> |
| 500 | <E, R, E1, R1>( |
| 501 | self: Router.HttpRouter<E, R>, |
| 502 | path: Router.PathInput, |
| 503 | handler: Router.Route.Handler<E1, R1>, |
| 504 | options?: { |
| 505 | readonly uninterruptible?: boolean | undefined |
| 506 | } | undefined |
| 507 | ): Router.HttpRouter<E1 | E, R | Router.HttpRouter.ExcludeProvided<R1>> |
| 508 | } => |
| 509 | dual< |
| 510 | <R1, E1>( |
| 511 | path: Router.PathInput, |
| 512 | handler: Router.Route.Handler<R1, E1> |
| 513 | ) => <E, R>( |
| 514 | self: Router.HttpRouter<E, R> |
| 515 | ) => Router.HttpRouter<E | E1, R | Router.HttpRouter.ExcludeProvided<R1>>, |
| 516 | <E, R, E1, R1>( |
| 517 | self: Router.HttpRouter<E, R>, |
| 518 | path: Router.PathInput, |
| 519 | handler: Router.Route.Handler<E1, R1>, |
| 520 | options?: { |
| 521 | readonly uninterruptible?: boolean | undefined |
| 522 | } | undefined |
| 523 | ) => Router.HttpRouter<E | E1, R | Router.HttpRouter.ExcludeProvided<R1>> |
| 524 | >((args) => isRouter(args[0]), (self, path, handler, options) => |
| 525 | new RouterImpl<any, any>( |
| 526 | Chunk.append( |
| 527 | self.routes, |
| 528 | new RouteImpl( |
| 529 | method, |
| 530 | path, |
| 531 | handler, |
| 532 | Option.none(), |
| 533 | options?.uninterruptible ?? false |
| 534 | ) |
| 535 | ), |
| 536 | self.mounts |
| 537 | )) |
| 538 | |
| 539 | /** @internal */ |
| 540 | export const all = route("*") |