{"version":3,"file":"default-generator-plugin.cjs","sources":["../../../src/plugin/default-generator-plugin.ts"],"sourcesContent":["import { defaultTransformPlugin } from '../transform/default-transform-plugin'\nimport {\n  checkRouteFullPathUniqueness,\n  isRouteNodeValidForAugmentation,\n} from '../utils'\nimport type { ImportDeclaration } from '../types'\nimport type { GeneratorPluginWithTransform } from './types'\n\nconst EXPORT_NAME = 'Route'\nexport function defaultGeneratorPlugin(): GeneratorPluginWithTransform {\n  return {\n    name: 'default',\n    transformPlugin: defaultTransformPlugin,\n    imports: (opts) => {\n      const imports: Array<ImportDeclaration> = []\n      if (opts.acc.routeNodes.some((n) => n.isVirtual)) {\n        imports.push({\n          specifiers: [{ imported: 'createFileRoute' }],\n          source: opts.generator.targetTemplate.fullPkg,\n        })\n      }\n      if (opts.generator.config.verboseFileRoutes === false) {\n        const typeImport: ImportDeclaration = {\n          specifiers: [],\n          source: opts.generator.targetTemplate.fullPkg,\n          importKind: 'type',\n        }\n        if (\n          opts.sortedRouteNodes.some(\n            (d) =>\n              isRouteNodeValidForAugmentation(d) && d._fsRouteType !== 'lazy',\n          )\n        ) {\n          typeImport.specifiers.push({ imported: 'CreateFileRoute' })\n        }\n        if (\n          opts.sortedRouteNodes.some(\n            (node) =>\n              opts.acc.routePiecesByPath[node.routePath!]?.lazy &&\n              isRouteNodeValidForAugmentation(node),\n          )\n        ) {\n          typeImport.specifiers.push({ imported: 'CreateLazyFileRoute' })\n        }\n\n        if (typeImport.specifiers.length > 0) {\n          typeImport.specifiers.push({ imported: 'FileRoutesByPath' })\n          imports.push(typeImport)\n        }\n      }\n      const hasMatchingRouteFiles = opts.acc.routeNodes.length > 0\n      if (hasMatchingRouteFiles) {\n        // needs a virtual root route\n        if (!opts.rootRouteNode.exports?.includes(EXPORT_NAME)) {\n          imports.push({\n            specifiers: [{ imported: 'createRootRoute' }],\n            source: opts.generator.targetTemplate.fullPkg,\n          })\n        }\n      }\n      return imports\n    },\n    moduleAugmentation: ({ generator }) => ({\n      module: generator.targetTemplate.fullPkg,\n      interfaceName: 'FileRoutesByPath',\n    }),\n    onRouteTreesChanged: ({ routeTrees, generator }) => {\n      const routeTree = routeTrees.find(\n        (tree) => tree.exportName === EXPORT_NAME,\n      )\n      if (!routeTree) {\n        throw new Error(\n          'No route tree found with export name \"Route\". Please ensure your routes are correctly defined.',\n        )\n      }\n      checkRouteFullPathUniqueness(\n        routeTree.sortedRouteNodes.filter(\n          (d) =>\n            d.children === undefined &&\n            'lazy' !== d._fsRouteType &&\n            d.exports?.includes(EXPORT_NAME),\n        ),\n        generator.config,\n      )\n    },\n    routeModuleAugmentation: ({ routeNode }) => {\n      if (routeNode._fsRouteType === 'lazy') {\n        return `const createLazyFileRoute: CreateLazyFileRoute<FileRoutesByPath['${routeNode.routePath}']['preLoaderRoute']>`\n      } else {\n        return `const createFileRoute: CreateFileRoute<'${routeNode.routePath}',\n            FileRoutesByPath['${routeNode.routePath}']['parentRoute'],\n            FileRoutesByPath['${routeNode.routePath}']['id'],\n            FileRoutesByPath['${routeNode.routePath}']['path'],\n            FileRoutesByPath['${routeNode.routePath}']['fullPath']\n          >\n        `\n      }\n    },\n    createRootRouteCode: () => `createRootRoute()`,\n    createVirtualRouteCode: ({ node }) =>\n      `createFileRoute('${node.routePath}')()`,\n    config: ({ sortedRouteNodes }) => {\n      const hasMatchingRouteFiles = sortedRouteNodes.length > 0\n      return {\n        virtualRootRoute: hasMatchingRouteFiles,\n      }\n    },\n  }\n}\n"],"names":["defaultTransformPlugin","isRouteNodeValidForAugmentation","_a","checkRouteFullPathUniqueness"],"mappings":"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"}