UNPKG

universal-autoloader

Version:

Universal plugin, that use the _file system_ scan, to load in a server all routes in a directory.

56 lines (54 loc) 1.59 kB
type Method = 'get' | 'post' | 'put' | 'delete' | 'options' | 'patch' | 'all'; type App = Record<Method | string, ((route: string, handler: (req: unknown, res: unknown) => void) => void) | any>; type ViteDevServer = { ssrLoadModule: (url: string, opts?: { fixStacktrace?: boolean; }) => Promise<Record<string, any>>; }; type AutoloadRoutesOptions = { /** * Pattern to search files of routes * @example pattern only .ts files * ```ts * pattern: '**\/*.ts' * ``` * @default '**\/*.{ts,tsx,mjs,js,jsx,cjs}' */ pattern?: string; /** * Prefix to add to routes * @example prefix for APIs * ```ts * prefix: '/api' * ``` * @default '' */ prefix?: string; /** * Directory to search routes * @default '/routes' */ routesDir?: string; /** * Default method to use when the route filename doesn't use the (<METHOD>) pattern * @default 'get' */ defaultMethod?: Method | string; /** * Vite dev server instance * @default undefined */ viteDevServer?: ViteDevServer; /** * Skip the throw error when no routes are found * @default false */ skipNoRoutes?: boolean; /** * Skip the import errors with the `default export` of a rotue file * @default false */ skipImportErrors?: boolean; }; declare const autoloadRoutes: (app: App, { pattern, prefix, routesDir, defaultMethod, viteDevServer, skipNoRoutes, skipImportErrors }: AutoloadRoutesOptions) => Promise<App>; export { autoloadRoutes };