@tanstack/router-plugin
Version:
Modern and scalable routing for React applications
1 lines • 4.2 kB
Source Map (JSON)
{"version":3,"file":"router-composed-plugin.cjs","names":[],"sources":["../../../src/core/router-composed-plugin.ts"],"sourcesContent":["import { getConfig } from '@tanstack/router-generator'\nimport { createRouterGeneratorPlugin } from './router-generator-plugin'\nimport { createRouterCodeSplitterPlugin } from './router-code-splitter-plugin'\nimport { createRouterHmrPlugin } from './router-hmr-plugin'\nimport { createRouterPluginContext } from './router-plugin-context'\nimport type { Config } from './config'\nimport type {\n RspackCompiler,\n UnpluginFactory,\n UnpluginOptions,\n WebpackCompiler,\n} from 'unplugin'\n\nconst INLINE_CSS_DEFAULT_DEFINES = {\n 'process.env.TSS_INLINE_CSS_ENABLED': JSON.stringify('false'),\n 'import.meta.env.TSS_INLINE_CSS_ENABLED': JSON.stringify('false'),\n}\n\ntype EsbuildOptionsWithDefine = Parameters<\n NonNullable<NonNullable<UnpluginOptions['esbuild']>['config']>\n>[0]\n\nfunction applyWebpackInlineCssDefaultDefinePlugin(compiler: WebpackCompiler) {\n new compiler.webpack.DefinePlugin(INLINE_CSS_DEFAULT_DEFINES).apply(compiler)\n}\n\nfunction applyRspackInlineCssDefaultDefinePlugin(compiler: RspackCompiler) {\n new compiler.webpack.DefinePlugin(INLINE_CSS_DEFAULT_DEFINES).apply(compiler)\n}\n\nexport const unpluginRouterComposedFactory: UnpluginFactory<\n Partial<Config | (() => Config)> | undefined\n> = (options = {}, _meta) => {\n const ROOT: string = process.cwd()\n const userConfig = getConfig(\n (typeof options === 'function' ? options() : options) as Partial<Config>,\n ROOT,\n )\n const routerPluginContext = createRouterPluginContext()\n\n const getPlugin = (plugin: ReturnType<UnpluginFactory<any>>) => {\n if (!Array.isArray(plugin)) {\n return [plugin]\n }\n return plugin\n }\n\n const routerGenerator = getPlugin(\n createRouterGeneratorPlugin(options, routerPluginContext),\n )\n const routerCodeSplitter = getPlugin(\n createRouterCodeSplitterPlugin(options, routerPluginContext),\n )\n\n const result = [\n {\n name: 'tanstack:router-inline-css-defaults',\n vite: {\n config() {\n return {\n define: {\n ...INLINE_CSS_DEFAULT_DEFINES,\n },\n }\n },\n },\n webpack(compiler: WebpackCompiler) {\n applyWebpackInlineCssDefaultDefinePlugin(compiler)\n },\n rspack(compiler: RspackCompiler) {\n applyRspackInlineCssDefaultDefinePlugin(compiler)\n },\n esbuild: {\n config(options: EsbuildOptionsWithDefine) {\n options.define = {\n ...INLINE_CSS_DEFAULT_DEFINES,\n ...options.define,\n }\n },\n },\n },\n ...routerGenerator,\n ]\n if (userConfig.autoCodeSplitting) {\n result.push(...routerCodeSplitter)\n }\n\n const isProduction = process.env.NODE_ENV === 'production'\n\n if (!isProduction && !userConfig.autoCodeSplitting) {\n const routerHmr = getPlugin(\n createRouterHmrPlugin(options, routerPluginContext),\n )\n result.push(...routerHmr)\n }\n return result\n}\n"],"mappings":";;;;;;AAaA,IAAM,6BAA6B;CACjC,sCAAsC,KAAK,UAAU,OAAO;CAC5D,0CAA0C,KAAK,UAAU,OAAO;AAClE;AAMA,SAAS,yCAAyC,UAA2B;CAC3E,IAAI,SAAS,QAAQ,aAAa,0BAA0B,EAAE,MAAM,QAAQ;AAC9E;AAEA,SAAS,wCAAwC,UAA0B;CACzE,IAAI,SAAS,QAAQ,aAAa,0BAA0B,EAAE,MAAM,QAAQ;AAC9E;AAEA,IAAa,iCAER,UAAU,CAAC,GAAG,UAAU;CAC3B,MAAM,OAAe,QAAQ,IAAI;CACjC,MAAM,cAAA,GAAA,2BAAA,WACH,OAAO,YAAY,aAAa,QAAQ,IAAI,SAC7C,IACF;CACA,MAAM,sBAAsB,8BAAA,0BAA0B;CAEtD,MAAM,aAAa,WAA6C;EAC9D,IAAI,CAAC,MAAM,QAAQ,MAAM,GACvB,OAAO,CAAC,MAAM;EAEhB,OAAO;CACT;CAEA,MAAM,kBAAkB,UACtB,gCAAA,4BAA4B,SAAS,mBAAmB,CAC1D;CACA,MAAM,qBAAqB,UACzB,oCAAA,+BAA+B,SAAS,mBAAmB,CAC7D;CAEA,MAAM,SAAS,CACb;EACE,MAAM;EACN,MAAM,EACJ,SAAS;GACP,OAAO,EACL,QAAQ,EACN,GAAG,2BACL,EACF;EACF,EACF;EACA,QAAQ,UAA2B;GACjC,yCAAyC,QAAQ;EACnD;EACA,OAAO,UAA0B;GAC/B,wCAAwC,QAAQ;EAClD;EACA,SAAS,EACP,OAAO,SAAmC;GACxC,QAAQ,SAAS;IACf,GAAG;IACH,GAAG,QAAQ;GACb;EACF,EACF;CACF,GACA,GAAG,eACL;CACA,IAAI,WAAW,mBACb,OAAO,KAAK,GAAG,kBAAkB;CAKnC,IAAI,EAAA,QAAA,IAAA,aAF0C,iBAEzB,CAAC,WAAW,mBAAmB;EAClD,MAAM,YAAY,UAChB,0BAAA,sBAAsB,SAAS,mBAAmB,CACpD;EACA,OAAO,KAAK,GAAG,SAAS;CAC1B;CACA,OAAO;AACT"}