forked from caoxiemeihao/vite-plugins
-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.d.ts
77 lines (67 loc) · 1.65 KB
/
index.d.ts
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
76
77
import { Alias, Plugin, UserConfig } from 'vite';
declare const optimizer: VitePluginOptimizer;
export default optimizer;
export interface OptimizerArgs {
/** Generated file cache directory */
dir: string;
}
export interface ResultDescription {
/**
* this option is designed to fully support `alias`
* this is useful if users want to customize alias
* ```js
* {
* // e.g. 👉 `/^(node:)?fs$/` from user customization
* find: /^(node:)?fs$/,
* replacement: '/project/node_modules/.vite-plugin-optimizer/fs.js',
* }
* ```
*/
alias?: {
find: string | RegExp;
/**
* If not specified, the path of the generated file is used.
*/
replacement?: string;
};
code?: string;
}
export interface Entries {
[moduleId: string]:
| string
| ResultDescription
| ((args: OptimizerArgs) => string | ResultDescription | Promise<string | ResultDescription | void> | void)
| void;
}
export interface OptimizerOptions {
/**
* @default ".vite-plugin-optimizer"
*/
dir?: string;
/**
* @default ".js"
*/
ext?: string;
}
export interface VitePluginOptimizer {
(entries: Entries, options?: OptimizerOptions): Plugin;
}
// --------- utils ---------
export type GenerateRecord = {
alias?: ResultDescription['alias'];
module: string;
// absolute path of file
filepath: string;
};
export interface GenerateModule {
(dir: string, entries: Entries, ext: string): Promise<GenerateRecord[]>;
}
export interface RegisterAlias {
(
config: UserConfig,
records: GenerateRecord[],
): void;
}
export interface RegisterOptimizeDepsExclude {
(config: UserConfig, exclude: string[]): void;
}