{"version":3,"file":"router-composed-plugin.cjs","names":[],"sources":["../../../src/core/router-composed-plugin.ts"],"sourcesContent":["import { getConfig } from '@tanstack/router-generator'\nimport { unpluginRouterGeneratorFactory } from './router-generator-plugin'\nimport { unpluginRouterCodeSplitterFactory } from './router-code-splitter-plugin'\nimport { unpluginRouterHmrFactory } from './router-hmr-plugin'\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\n  const getPlugin = (\n    pluginFactory: UnpluginFactory<Partial<Config | (() => Config)>>,\n  ) => {\n    const plugin = pluginFactory(options, meta)\n    if (!Array.isArray(plugin)) {\n      return [plugin]\n    }\n    return plugin\n  }\n\n  const routerGenerator = getPlugin(unpluginRouterGeneratorFactory)\n  const routerCodeSplitter = getPlugin(unpluginRouterCodeSplitterFactory)\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(unpluginRouterHmrFactory)\n    result.push(...routerHmr)\n  }\n  return result\n}\n"],"mappings":";;;;;;AAYA,IAAM,6BAA6B;CACjC,sCAAsC,KAAK,UAAU,QAAQ;CAC7D,0CAA0C,KAAK,UAAU,QAAQ;CAClE;AAMD,SAAS,yCAAyC,UAA2B;AAC3E,KAAI,SAAS,QAAQ,aAAa,2BAA2B,CAAC,MAAM,SAAS;;AAG/E,SAAS,wCAAwC,UAA0B;AACzE,KAAI,SAAS,QAAQ,aAAa,2BAA2B,CAAC,MAAM,SAAS;;AAG/E,IAAa,iCAER,UAAU,EAAE,EAAE,SAAS;CAC1B,MAAM,OAAe,QAAQ,KAAK;CAClC,MAAM,cAAA,GAAA,2BAAA,WACH,OAAO,YAAY,aAAa,SAAS,GAAG,SAC7C,KACD;CAED,MAAM,aACJ,kBACG;EACH,MAAM,SAAS,cAAc,SAAS,KAAK;AAC3C,MAAI,CAAC,MAAM,QAAQ,OAAO,CACxB,QAAO,CAAC,OAAO;AAEjB,SAAO;;CAGT,MAAM,kBAAkB,UAAU,gCAAA,+BAA+B;CACjE,MAAM,qBAAqB,UAAU,oCAAA,kCAAkC;CAEvE,MAAM,SAAS,CACb;EACE,MAAM;EACN,MAAM,EACJ,SAAS;AACP,UAAO,EACL,QAAQ,EACN,GAAG,4BACJ,EACF;KAEJ;EACD,QAAQ,UAA2B;AACjC,4CAAyC,SAAS;;EAEpD,OAAO,UAA0B;AAC/B,2CAAwC,SAAS;;EAEnD,SAAS,EACP,OAAO,SAAmC;AACxC,WAAQ,SAAS;IACf,GAAG;IACH,GAAG,QAAQ;IACZ;KAEJ;EACF,EACD,GAAG,gBACJ;AACD,KAAI,WAAW,kBACb,QAAO,KAAK,GAAG,mBAAmB;AAKpC,KAAI,EAAA,QAAA,IAAA,aAF0C,iBAEzB,CAAC,WAAW,mBAAmB;EAClD,MAAM,YAAY,UAAU,0BAAA,yBAAyB;AACrD,SAAO,KAAK,GAAG,UAAU;;AAE3B,QAAO"}