-
-
Notifications
You must be signed in to change notification settings - Fork 1.8k
Expand file tree
/
Copy pathesbuild.ts
More file actions
75 lines (66 loc) 路 2.06 KB
/
Copy pathesbuild.ts
File metadata and controls
75 lines (66 loc) 路 2.06 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
import { createEsbuildPlugin } from 'unplugin'
import { configSchema } from './core/config'
import { createRouterCodeSplitterPlugin } from './core/router-code-splitter-plugin'
import { createRouterGeneratorPlugin } from './core/router-generator-plugin'
import { unpluginRouterComposedFactory } from './core/router-composed-plugin'
import { createRouterPluginContext } from './core/router-plugin-context'
import type { CodeSplittingOptions, Config } from './core/config'
import type { RouterPluginContext } from './core/router-plugin-context'
type RouterPluginOptions = Partial<Config | (() => Config)> | undefined
const defaultRouterPluginContext = createRouterPluginContext()
/**
* @example
* ```ts
* export default {
* plugins: [TanStackRouterGeneratorEsbuild()],
* // ...
* }
* ```
*/
const TanStackRouterGeneratorEsbuild = (
options?: RouterPluginOptions,
routerPluginContext?: RouterPluginContext,
) => {
const pluginContext = routerPluginContext ?? defaultRouterPluginContext
return createEsbuildPlugin((pluginOptions: RouterPluginOptions) =>
createRouterGeneratorPlugin(pluginOptions, pluginContext),
)(options)
}
/**
* @example
* ```ts
* export default {
* plugins: [TanStackRouterCodeSplitterEsbuild()],
* // ...
* }
* ```
*/
const TanStackRouterCodeSplitterEsbuild = (
options?: RouterPluginOptions,
routerPluginContext?: RouterPluginContext,
) => {
const pluginContext = routerPluginContext ?? defaultRouterPluginContext
return createEsbuildPlugin((pluginOptions: RouterPluginOptions) =>
createRouterCodeSplitterPlugin(pluginOptions, pluginContext),
)(options)
}
/**
* @example
* ```ts
* export default {
* plugins: [tanstackRouter()],
* // ...
* }
* ```
*/
const TanStackRouterEsbuild = createEsbuildPlugin(unpluginRouterComposedFactory)
const tanstackRouter = TanStackRouterEsbuild
export default TanStackRouterEsbuild
export {
configSchema,
TanStackRouterGeneratorEsbuild,
TanStackRouterCodeSplitterEsbuild,
TanStackRouterEsbuild,
tanstackRouter,
}
export type { Config, CodeSplittingOptions, RouterPluginContext }