UNPKG

pathpida

Version:

TypeScript friendly pages and static path generator for Next.js

51 lines (46 loc) 1.72 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createNextTemplate = void 0; const parseAppDir_1 = require("./parseAppDir"); const parsePagesDir_1 = require("./parsePagesDir"); const createNextTemplate = (input, output, ignorePath, appDir, pageExtensions = ['tsx', 'ts', 'jsx', 'js']) => { const appDirData = appDir ? (0, parseAppDir_1.parseAppDir)(appDir.input, output, ignorePath) : { imports: [], text: '' }; const pagesDir = input ? (0, parsePagesDir_1.parsePagesDir)(input, output, ignorePath, pageExtensions) : { imports: [], text: '' }; const imports = [...appDirData.imports, ...pagesDir.imports]; return `${imports.join('\n')}${imports.length ? '\n\n' : ''}${appDir ? `const buildSuffix = (url?: { query?: Record<string, string | number | boolean | Array<string | number | boolean>>, hash?: string }) => { const query = url?.query; const hash = url?.hash; if (!query && !hash) return ''; const search = (() => { if (!query) return ''; const params = new URLSearchParams(); Object.entries(query).forEach(([key, value]) => { if (Array.isArray(value)) { value.forEach((item) => params.append(key, String(item)) ); } else { params.set(key, String(value)); } }); return \`?\${params.toString()}\`; })(); return \`\${search}\${hash ? \`#\${hash}\` : ''}\`; }; ` : ''}export const pagesPath = { ${appDirData.text}${appDirData.text && pagesDir.text ? ',\n' : ''}${pagesDir.text} }; export type PagesPath = typeof pagesPath; `; }; exports.createNextTemplate = createNextTemplate; //# sourceMappingURL=createNextTemplate.js.map