request-context.d.ts 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. import {ParsedCookies} from './utils/index.js';
  2. import {Route, RouteMeta} from './route/index.js';
  3. import {ServiceContainer} from '@e22m4u/js-service';
  4. import {IncomingMessage, ServerResponse} from 'http';
  5. import {ParsedQuery, ParsedHeaders} from './parsers/index.js';
  6. /**
  7. * Parsed params.
  8. */
  9. export type ParsedParams = {
  10. [key: string]: string | undefined;
  11. };
  12. /**
  13. * Request context.
  14. */
  15. export declare class RequestContext {
  16. /**
  17. * Container.
  18. */
  19. get container(): ServiceContainer;
  20. /**
  21. * Request.
  22. */
  23. get request(): IncomingMessage;
  24. /**
  25. * Response.
  26. */
  27. get response(): ServerResponse;
  28. /**
  29. * Route.
  30. */
  31. get route(): Route;
  32. /**
  33. * Query.
  34. */
  35. query: ParsedQuery;
  36. /**
  37. * Params.
  38. */
  39. params: ParsedParams;
  40. /**
  41. * Headers.
  42. */
  43. headers: ParsedHeaders;
  44. /**
  45. * Cookies.
  46. */
  47. cookies: ParsedCookies;
  48. /**
  49. * Body.
  50. */
  51. body: unknown;
  52. /**
  53. * State.
  54. */
  55. state: Record<string, any>;
  56. /**
  57. * Route meta.
  58. */
  59. get meta(): RouteMeta;
  60. /**
  61. * Method.
  62. */
  63. get method(): string;
  64. /**
  65. * Path.
  66. */
  67. get path(): string;
  68. /**
  69. * Pathname.
  70. */
  71. get pathname(): string;
  72. /**
  73. * Constructor.
  74. *
  75. * @param container
  76. * @param request
  77. * @param response
  78. */
  79. constructor(
  80. container: ServiceContainer,
  81. request: IncomingMessage,
  82. response: ServerResponse,
  83. route: Route,
  84. );
  85. }