UNPKG

@analogjs/vite-plugin-nitro

Version:

A Vite plugin for adding a nitro API server

27 lines 1.12 kB
import { resolve } from 'node:path'; import fg from 'fast-glob'; import { normalizePath } from 'vite'; export function getPageHandlers({ workspaceRoot, sourceRoot, rootDir, additionalPagesDirs, hasAPIDir, }) { const root = normalizePath(resolve(workspaceRoot, rootDir)); const endpointFiles = fg.sync([ `${root}/${sourceRoot}/app/pages/**/*.server.ts`, ...(additionalPagesDirs || []).map((dir) => `${workspaceRoot}${dir}/**/*.server.ts`), ], { dot: true }); const handlers = endpointFiles.map((endpointFile) => { const route = endpointFile .replace(/^(.*?)\/pages/, '/pages') .replace(/\.server\.ts$/, '') .replace(/\[\.{3}(.+)\]/g, '**:$1') .replace(/\[\.{3}(\w+)\]/g, '**:$1') .replace(/\/\((.*?)\)$/, '/-$1-') .replace(/\[(\w+)\]/g, ':$1') .replace(/\./g, '/'); return { handler: endpointFile, route: `${hasAPIDir ? '/api' : ''}/_analog${route}.json`, lazy: true, }; }); return handlers; } //# sourceMappingURL=get-page-handlers.js.map