load-custom-routes.d.ts 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. import type { NextConfig } from '../server/config';
  2. export declare type RouteHas = {
  3. type: 'header' | 'query' | 'cookie';
  4. key: string;
  5. value?: string;
  6. } | {
  7. type: 'host';
  8. key?: undefined;
  9. value: string;
  10. };
  11. export declare type Rewrite = {
  12. source: string;
  13. destination: string;
  14. basePath?: false;
  15. locale?: false;
  16. has?: RouteHas[];
  17. missing?: RouteHas[];
  18. };
  19. export declare type Header = {
  20. source: string;
  21. basePath?: false;
  22. locale?: false;
  23. headers: Array<{
  24. key: string;
  25. value: string;
  26. }>;
  27. has?: RouteHas[];
  28. missing?: RouteHas[];
  29. };
  30. export declare type Redirect = {
  31. source: string;
  32. destination: string;
  33. basePath?: false;
  34. locale?: false;
  35. has?: RouteHas[];
  36. missing?: RouteHas[];
  37. } & ({
  38. statusCode?: never;
  39. permanent: boolean;
  40. } | {
  41. statusCode: number;
  42. permanent?: never;
  43. });
  44. export declare type Middleware = {
  45. source: string;
  46. locale?: false;
  47. has?: RouteHas[];
  48. missing?: RouteHas[];
  49. };
  50. export declare function normalizeRouteRegex(regex: string): string;
  51. export declare type RouteType = 'rewrite' | 'redirect' | 'header';
  52. export declare function checkCustomRoutes(routes: Redirect[] | Header[] | Rewrite[] | Middleware[], type: RouteType | 'middleware'): void;
  53. export interface CustomRoutes {
  54. headers: Header[];
  55. rewrites: {
  56. fallback: Rewrite[];
  57. afterFiles: Rewrite[];
  58. beforeFiles: Rewrite[];
  59. };
  60. redirects: Redirect[];
  61. }
  62. export default function loadCustomRoutes(config: NextConfig): Promise<CustomRoutes>;