vite-plugin-pages2 0.32.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,252 @@
1
+ import { Logger, ViteDevServer, Plugin } from 'vite';
2
+ import * as debug from 'debug';
3
+
4
+ /**
5
+ * Promise, or maybe not
6
+ */
7
+ type Awaitable<T> = T | PromiseLike<T>;
8
+
9
+ interface PageRoute {
10
+ path: string;
11
+ route: string;
12
+ }
13
+ declare class PageContext {
14
+ private _server;
15
+ private _pageRouteMap;
16
+ rawOptions: UserOptions;
17
+ root: string;
18
+ options: ResolvedOptions;
19
+ logger?: Logger;
20
+ constructor(userOptions: UserOptions, viteRoot?: string);
21
+ setLogger(logger: Logger): void;
22
+ setupViteServer(server: ViteDevServer): void;
23
+ setupWatcher(watcher: ViteDevServer['watcher']): void;
24
+ addPage(path: string | string[], pageDir: PageOptions): Promise<void>;
25
+ removePage(path: string): Promise<void>;
26
+ onUpdate(): void;
27
+ resolveRoutes(): Promise<string>;
28
+ searchGlob(): Promise<void>;
29
+ get debug(): {
30
+ hmr: debug.Debugger;
31
+ routeBlock: debug.Debugger;
32
+ options: debug.Debugger;
33
+ pages: debug.Debugger;
34
+ search: debug.Debugger;
35
+ env: debug.Debugger;
36
+ cache: debug.Debugger;
37
+ resolver: debug.Debugger;
38
+ };
39
+ get pageRouteMap(): Map<string, PageRoute>;
40
+ }
41
+
42
+ interface ReactRouteBase {
43
+ caseSensitive?: boolean;
44
+ children?: ReactRouteBase[];
45
+ element?: string;
46
+ index?: boolean;
47
+ path?: string;
48
+ rawRoute: string;
49
+ }
50
+ interface ReactRoute extends Omit<Optional<ReactRouteBase, 'rawRoute' | 'path'>, 'children'> {
51
+ children?: ReactRoute[];
52
+ }
53
+ declare function reactResolver(): PageResolver;
54
+
55
+ interface SolidRouteBase {
56
+ rawRoute: string;
57
+ path: string;
58
+ children?: SolidRouteBase[];
59
+ component?: string;
60
+ element?: string;
61
+ }
62
+ interface SolidRoute extends Omit<Optional<SolidRouteBase, 'rawRoute' | 'path'>, 'children'> {
63
+ children?: SolidRoute[];
64
+ }
65
+ declare function solidResolver(): PageResolver;
66
+
67
+ interface VueRouteBase {
68
+ name: string;
69
+ path: string;
70
+ props?: boolean;
71
+ component: string;
72
+ children?: VueRouteBase[];
73
+ customBlock?: CustomBlock;
74
+ rawRoute: string;
75
+ }
76
+ interface VueRoute extends Omit<Optional<VueRouteBase, 'rawRoute' | 'name'>, 'children'> {
77
+ children?: VueRoute[];
78
+ }
79
+ declare function vueResolver(): PageResolver;
80
+
81
+ type Optional<T, K extends keyof T> = Pick<Partial<T>, K> & Omit<T, K>;
82
+ type ImportMode = 'sync' | 'async';
83
+ type ImportModeResolver = (filepath: string, pluginOptions: ResolvedOptions) => ImportMode;
84
+ interface ParsedJSX {
85
+ value: string;
86
+ loc: {
87
+ start: {
88
+ line: number;
89
+ };
90
+ };
91
+ }
92
+ type CustomBlock = Record<string, any>;
93
+ type InternalPageResolvers = 'vue' | 'react' | 'solid';
94
+ interface PageOptions {
95
+ /**
96
+ * Page base directory.
97
+ * @default 'src/pages'
98
+ */
99
+ dir: string;
100
+ /**
101
+ * Page base route.
102
+ */
103
+ baseRoute: string;
104
+ /**
105
+ * @deprecated use `filePattern` instead
106
+ */
107
+ filePatern?: string;
108
+ /**
109
+ * Page file pattern.
110
+ * @example `**\/*.page.vue`
111
+ */
112
+ filePattern?: string;
113
+ }
114
+ interface PageResolver {
115
+ resolveModuleIds: () => string[];
116
+ resolveExtensions: () => string[];
117
+ resolveRoutes: (ctx: PageContext) => Awaitable<string>;
118
+ getComputedRoutes: (ctx: PageContext) => Awaitable<VueRoute[] | ReactRoute[] | SolidRoute[]>;
119
+ stringify?: {
120
+ dynamicImport?: (importPath: string) => string;
121
+ component?: (importName: string) => string;
122
+ final?: (code: string) => string;
123
+ };
124
+ hmr?: {
125
+ added?: (ctx: PageContext, path: string) => Awaitable<void>;
126
+ removed?: (ctx: PageContext, path: string) => Awaitable<void>;
127
+ changed?: (ctx: PageContext, path: string) => Awaitable<void>;
128
+ };
129
+ }
130
+ /**
131
+ * Plugin options.
132
+ */
133
+ interface Options {
134
+ /**
135
+ * Paths to the directory to search for page components.
136
+ * @default 'src/pages'
137
+ */
138
+ dirs: string | (string | PageOptions)[];
139
+ /**
140
+ * Valid file extensions for page components.
141
+ * @default ['vue', 'js']
142
+ */
143
+ extensions: string[];
144
+ /**
145
+ * List of path globs to exclude when resolving pages.
146
+ */
147
+ exclude: string[];
148
+ /**
149
+ * Import routes directly or as async components
150
+ * @default 'root index file => "sync", others => "async"'
151
+ */
152
+ importMode: ImportMode | ImportModeResolver;
153
+ /**
154
+ * Import page components from absolute or relative paths.
155
+ * @default 'relative'
156
+ */
157
+ importPath: 'absolute' | 'relative';
158
+ /**
159
+ * Sync load top level index file
160
+ * @default true
161
+ * @deprecated use `importMode` instead
162
+ */
163
+ syncIndex: boolean;
164
+ /**
165
+ * Use Nuxt.js style route naming
166
+ * @default false
167
+ * @deprecated use `routeStyle` instead
168
+ */
169
+ nuxtStyle: boolean;
170
+ /**
171
+ * Routing style
172
+ * @default false
173
+ */
174
+ routeStyle: 'next' | 'nuxt' | 'remix';
175
+ /**
176
+ * Separator for generated route names.
177
+ * @default -
178
+ */
179
+ routeNameSeparator: string;
180
+ /**
181
+ * Case for route paths
182
+ * @default false
183
+ */
184
+ caseSensitive: boolean;
185
+ /**
186
+ * Set the default route block parser, or use `<route lang=xxx>` in SFC route block
187
+ * @default 'json5'
188
+ */
189
+ routeBlockLang: 'json5' | 'json' | 'yaml' | 'yml';
190
+ /**
191
+ * Module id for routes import
192
+ * @default '~pages'
193
+ */
194
+ moduleId: string;
195
+ /**
196
+ * Generate React Route
197
+ * @default 'auto detect'
198
+ */
199
+ resolver: InternalPageResolvers | PageResolver;
200
+ /**
201
+ * Extend route records
202
+ */
203
+ extendRoute?: (route: any, parent: any | undefined) => any | void;
204
+ /**
205
+ * Custom generated routes
206
+ */
207
+ onRoutesGenerated?: (routes: any[]) => Awaitable<any[] | void>;
208
+ /**
209
+ * Custom generated client code
210
+ */
211
+ onClientGenerated?: (clientCode: string) => Awaitable<string | void>;
212
+ /**
213
+ * Paths to the directory to search for page components.
214
+ * @deprecated use `dirs` instead
215
+ */
216
+ pagesDir: string | (string | PageOptions)[];
217
+ /**
218
+ * Replace '[]' to '_' in bundle filename
219
+ * @deprecated issue #122
220
+ */
221
+ replaceSquareBrackets: never;
222
+ }
223
+ type UserOptions = Partial<Options>;
224
+ interface ResolvedOptions extends Omit<Options, 'pagesDir' | 'replaceSquareBrackets' | 'nuxtStyle' | 'syncIndex' | 'moduleId'> {
225
+ /**
226
+ * Resolves to the `root` value from Vite config.
227
+ * @default config.root
228
+ */
229
+ root: string;
230
+ /**
231
+ * Resolved page dirs
232
+ */
233
+ dirs: PageOptions[];
234
+ /**
235
+ * Resolved page resolver
236
+ */
237
+ resolver: PageResolver;
238
+ /**
239
+ * RegExp to match extensions
240
+ */
241
+ extensionsRE: RegExp;
242
+ /**
243
+ * Module IDs for routes import
244
+ */
245
+ moduleIds: string[];
246
+ }
247
+
248
+ declare const syncIndexResolver: ImportModeResolver;
249
+
250
+ declare function pagesPlugin(userOptions?: UserOptions): Plugin;
251
+
252
+ export { type CustomBlock, type ImportMode, type ImportModeResolver, type InternalPageResolvers, type Optional, PageContext, type PageOptions, type PageResolver, type ParsedJSX, type ReactRoute, type ResolvedOptions, type SolidRoute, type UserOptions, type VueRoute, pagesPlugin as default, reactResolver, solidResolver, syncIndexResolver, vueResolver };