-
-
Notifications
You must be signed in to change notification settings - Fork 393
Expand file tree
/
Copy pathConstants.ts
More file actions
157 lines (135 loc) · 5.7 KB
/
Constants.ts
File metadata and controls
157 lines (135 loc) · 5.7 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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
/*
MIT License http://www.opensource.org/licenses/mit-license.php
Author Sean Larkin @TheLarkInn
*/
/**
* @type {Readonly<"javascript/auto">}
*/
export const JAVASCRIPT_MODULE_TYPE_AUTO: Readonly<'javascript/auto'> =
'javascript/auto';
/**
* @type {Readonly<"javascript/dynamic">}
*/
export const JAVASCRIPT_MODULE_TYPE_DYNAMIC: Readonly<'javascript/dynamic'> =
'javascript/dynamic';
/**
* @type {Readonly<"javascript/esm">}
* This is the module type used for _strict_ ES Module syntax. This means that all legacy formats
* that webpack supports (CommonJS, AMD, SystemJS) are not supported.
*/
export const JAVASCRIPT_MODULE_TYPE_ESM: Readonly<'javascript/esm'> =
'javascript/esm';
/**
* @type {Readonly<"json">}
* This is the module type used for JSON files. JSON files are always parsed as ES Module.
*/
export const JSON_MODULE_TYPE: Readonly<'json'> = 'json';
/**
* @type {Readonly<"webassembly/async">}
* This is the module type used for WebAssembly modules. In webpack 5 they are always treated as async modules.
*
*/
export const WEBASSEMBLY_MODULE_TYPE_ASYNC: Readonly<'webassembly/async'> =
'webassembly/async';
/**
* @type {Readonly<"webassembly/sync">}
* This is the module type used for WebAssembly modules. In webpack 4 they are always treated as sync modules.
* There is a legacy option to support this usage in webpack 5 and up.
*/
export const WEBASSEMBLY_MODULE_TYPE_SYNC: Readonly<'webassembly/sync'> =
'webassembly/sync';
/**
* @type {Readonly<"css">}
* This is the module type used for CSS files.
*/
export const CSS_MODULE_TYPE: Readonly<'css'> = 'css';
/**
* @type {Readonly<"css/global">}
* This is the module type used for CSS modules files where you need to use `:local` in selector list to hash classes.
*/
export const CSS_MODULE_TYPE_GLOBAL: Readonly<'css/global'> = 'css/global';
/**
* @type {Readonly<"css/module">}
* This is the module type used for CSS modules files, by default all classes are hashed.
*/
export const CSS_MODULE_TYPE_MODULE: Readonly<'css/module'> = 'css/module';
/**
* @type {Readonly<"css/auto">}
* This is the module type used for CSS files, the module will be parsed as CSS modules if it's filename contains `.module.` or `.modules.`.
*/
export const CSS_MODULE_TYPE_AUTO: Readonly<'css/auto'> = 'css/auto';
/**
* @type {Readonly<"asset">}
* This is the module type used for automatically choosing between `asset/inline`, `asset/resource` based on asset size limit (8096).
*/
export const ASSET_MODULE_TYPE: Readonly<'asset'> = 'asset';
/**
* @type {Readonly<"asset/inline">}
* This is the module type used for assets that are inlined as a data URI. This is the equivalent of `url-loader`.
*/
export const ASSET_MODULE_TYPE_INLINE: Readonly<'asset/inline'> =
'asset/inline';
/**
* @type {Readonly<"asset/resource">}
* This is the module type used for assets that are copied to the output directory. This is the equivalent of `file-loader`.
*/
export const ASSET_MODULE_TYPE_RESOURCE: Readonly<'asset/resource'> =
'asset/resource';
/**
* @type {Readonly<"asset/source">}
* This is the module type used for assets that are imported as source code. This is the equivalent of `raw-loader`.
*/
export const ASSET_MODULE_TYPE_SOURCE: Readonly<'asset/source'> =
'asset/source';
/**
* @type {Readonly<"asset/raw-data-url">}
* TODO: Document what this asset type is for. See css-loader tests for its usage.
*/
export const ASSET_MODULE_TYPE_RAW_DATA_URL: Readonly<'asset/raw-data-url'> =
'asset/raw-data-url';
/**
* @type {Readonly<"runtime">}
* This is the module type used for the webpack runtime abstractions.
*/
export const WEBPACK_MODULE_TYPE_RUNTIME: Readonly<'runtime'> = 'runtime';
/**
* @type {Readonly<"fallback-module">}
* This is the module type used for the ModuleFederation feature's FallbackModule class.
* TODO: Document this better.
*/
export const WEBPACK_MODULE_TYPE_FALLBACK: Readonly<'fallback-module'> =
'fallback-module';
/**
* @type {Readonly<"remote-module">}
* This is the module type used for the ModuleFederation feature's RemoteModule class.
* TODO: Document this better.
*/
export const WEBPACK_MODULE_TYPE_REMOTE: Readonly<'remote-module'> =
'remote-module';
/**
* @type {Readonly<"provide-module">}
* This is the module type used for the ModuleFederation feature's ProvideModule class.
* TODO: Document this better.
*/
export const WEBPACK_MODULE_TYPE_PROVIDE: Readonly<'provide-module'> =
'provide-module';
/**
* @type {Readonly<"consume-shared-module">}
* This is the module type used for the ModuleFederation feature's ConsumeSharedModule class.
*/
export const WEBPACK_MODULE_TYPE_CONSUME_SHARED_MODULE: Readonly<'consume-shared-module'> =
'consume-shared-module';
/**
* @type {Readonly<"lazy-compilation-proxy">}
* Module type used for `experiments.lazyCompilation` feature. See `LazyCompilationPlugin` for more information.
*/
export const WEBPACK_MODULE_TYPE_LAZY_COMPILATION_PROXY: Readonly<'lazy-compilation-proxy'> =
'lazy-compilation-proxy';
/** @typedef {"javascript/auto" | "javascript/dynamic" | "javascript/esm"} JavaScriptModuleTypes */
/** @typedef {"json"} JSONModuleType */
/** @typedef {"webassembly/async" | "webassembly/sync"} WebAssemblyModuleTypes */
/** @typedef {"css" | "css/global" | "css/module"} CSSModuleTypes */
/** @typedef {"asset" | "asset/inline" | "asset/resource" | "asset/source" | "asset/raw-data-url"} AssetModuleTypes */
/** @typedef {"runtime" | "fallback-module" | "remote-module" | "provide-module" | "consume-shared-module" | "lazy-compilation-proxy"} WebpackModuleTypes */
/** @typedef {string} UnknownModuleTypes */
/** @typedef {JavaScriptModuleTypes | JSONModuleType | WebAssemblyModuleTypes | CSSModuleTypes | AssetModuleTypes | WebpackModuleTypes | UnknownModuleTypes} ModuleTypes */