@modern-js/utils 2.31.2-alpha.0 → 2.32.0
Sign up to get free protection for your applications and to get access to all the features.
- package/CHANGELOG.md +30 -0
- package/LICENSE +1 -1
- package/dist/cjs/runtime/nestedRoutes.js +21 -8
- package/dist/cjs/runtime-node/index.js +1 -0
- package/dist/cjs/runtime-node/loaderContext/createLoaderCtx.js +34 -0
- package/dist/cjs/runtime-node/loaderContext/createRequestCtx.js +38 -0
- package/dist/cjs/runtime-node/loaderContext/index.js +22 -0
- package/dist/cjs/universal/constants.js +4 -0
- package/dist/compiled/webpack-chain/index.js +1 -1
- package/dist/compiled/webpack-chain/package.json +1 -1
- package/dist/compiled/webpack-chain/types/index.d.ts +381 -170
- package/dist/esm/runtime/nestedRoutes.js +47 -13
- package/dist/esm/runtime-node/index.js +1 -0
- package/dist/esm/runtime-node/loaderContext/createLoaderCtx.js +20 -0
- package/dist/esm/runtime-node/loaderContext/createRequestCtx.js +24 -0
- package/dist/esm/runtime-node/loaderContext/index.js +3 -0
- package/dist/esm/universal/constants.js +1 -0
- package/dist/esm-node/runtime/nestedRoutes.js +22 -9
- package/dist/esm-node/runtime-node/index.js +1 -0
- package/dist/esm-node/runtime-node/loaderContext/createLoaderCtx.js +15 -0
- package/dist/esm-node/runtime-node/loaderContext/createRequestCtx.js +19 -0
- package/dist/esm-node/runtime-node/loaderContext/index.js +3 -0
- package/dist/esm-node/universal/constants.js +1 -0
- package/dist/types/runtime/nestedRoutes.d.ts +3 -2
- package/dist/types/runtime-node/index.d.ts +2 -1
- package/dist/types/runtime-node/loaderContext/createLoaderCtx.d.ts +7 -0
- package/dist/types/runtime-node/loaderContext/createRequestCtx.d.ts +7 -0
- package/dist/types/runtime-node/loaderContext/index.d.ts +4 -0
- package/dist/types/runtime-node/nestedRoutes.d.ts +1 -1
- package/dist/types/universal/constants.d.ts +5 -1
- package/package.json +8 -7
@@ -1,24 +1,32 @@
|
|
1
|
-
import {
|
2
|
-
|
1
|
+
import {
|
2
|
+
Configuration,
|
3
|
+
Compiler,
|
4
|
+
WebpackPluginInstance,
|
5
|
+
RuleSetRule,
|
6
|
+
ResolveOptions,
|
7
|
+
} from 'webpack';
|
3
8
|
import * as https from 'https';
|
4
9
|
|
5
10
|
export = Config;
|
6
11
|
|
7
12
|
declare namespace __Config {
|
8
13
|
class Chained<Parent> {
|
14
|
+
batch(handler: (chained: this) => void): this;
|
9
15
|
end(): Parent;
|
10
16
|
}
|
11
|
-
|
12
|
-
class TypedChainedMap<Parent, Value> extends Chained<Parent> {
|
17
|
+
class TypedChainedMap<Parent, OptionsType> extends Chained<Parent> {
|
13
18
|
clear(): this;
|
14
19
|
delete(key: string): this;
|
15
20
|
has(key: string): boolean;
|
16
|
-
get(key:
|
17
|
-
getOrCompute
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
21
|
+
get<T extends keyof OptionsType>(key: T): OptionsType[T];
|
22
|
+
getOrCompute<T extends keyof OptionsType>(
|
23
|
+
key: T,
|
24
|
+
compute: () => OptionsType[T],
|
25
|
+
): OptionsType[T];
|
26
|
+
set<T extends keyof OptionsType>(key: T, value: OptionsType[T]): this;
|
27
|
+
merge(obj: Partial<OptionsType>): this;
|
28
|
+
entries(): OptionsType;
|
29
|
+
values<T extends keyof OptionsType>(): [OptionsType[T]][];
|
22
30
|
when(
|
23
31
|
condition: boolean,
|
24
32
|
trueBrancher: (obj: this) => void,
|
@@ -27,7 +35,6 @@ declare namespace __Config {
|
|
27
35
|
}
|
28
36
|
|
29
37
|
class ChainedMap<Parent> extends TypedChainedMap<Parent, any> {}
|
30
|
-
|
31
38
|
class TypedChainedSet<Parent, Value> extends Chained<Parent> {
|
32
39
|
add(value: Value): this;
|
33
40
|
prepend(value: Value): this;
|
@@ -46,48 +53,59 @@ declare namespace __Config {
|
|
46
53
|
class ChainedSet<Parent> extends TypedChainedSet<Parent, any> {}
|
47
54
|
}
|
48
55
|
|
56
|
+
type WebpackConfig = Required<Configuration>;
|
49
57
|
declare class Config extends __Config.ChainedMap<void> {
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
58
|
+
entryPoints: Config.TypedChainedMap<
|
59
|
+
Config,
|
60
|
+
{ [key: string]: Config.EntryPoint }
|
61
|
+
>;
|
54
62
|
output: Config.Output;
|
63
|
+
module: Config.Module;
|
64
|
+
node: Config.ChainedMap<this> & ((value: boolean) => this);
|
55
65
|
optimization: Config.Optimization;
|
56
|
-
performance: Config.Performance;
|
57
|
-
plugins: Config.Plugins<this,
|
66
|
+
performance: Config.Performance & ((value: boolean) => this);
|
67
|
+
plugins: Config.Plugins<this, WebpackPluginInstance>;
|
58
68
|
resolve: Config.Resolve;
|
59
69
|
resolveLoader: Config.ResolveLoader;
|
70
|
+
devServer: Config.DevServer;
|
60
71
|
|
61
|
-
|
62
|
-
|
63
|
-
cache(value: boolean | any): this;
|
72
|
+
context(value: WebpackConfig['context']): this;
|
73
|
+
mode(value: WebpackConfig['mode']): this;
|
64
74
|
devtool(value: Config.DevTool): this;
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
75
|
+
target(value: WebpackConfig['target']): this;
|
76
|
+
watch(value: WebpackConfig['watch']): this;
|
77
|
+
watchOptions(value: WebpackConfig['watchOptions']): this;
|
78
|
+
externals(value: WebpackConfig['externals']): this;
|
79
|
+
externalsType(value: WebpackConfig['externalsType']): this;
|
80
|
+
externalsPresets(value: WebpackConfig['externalsPresets']): this;
|
81
|
+
stats(value: WebpackConfig['stats']): this;
|
82
|
+
experiments(value: WebpackConfig['experiments']): this;
|
83
|
+
amd(value: WebpackConfig['amd']): this;
|
84
|
+
bail(value: WebpackConfig['bail']): this;
|
85
|
+
cache(value: WebpackConfig['cache']): this;
|
86
|
+
dependencies(value: WebpackConfig['dependencies']): this;
|
87
|
+
ignoreWarnings(value: WebpackConfig['ignoreWarnings']): this;
|
88
|
+
loader(value: WebpackConfig['loader']): this;
|
89
|
+
parallelism(value: WebpackConfig['parallelism']): this;
|
90
|
+
profile(value: WebpackConfig['profile']): this;
|
91
|
+
recordsPath(value: WebpackConfig['recordsPath']): this;
|
92
|
+
recordsInputPath(value: WebpackConfig['recordsInputPath']): this;
|
93
|
+
recordsOutputPath(value: WebpackConfig['recordsOutputPath']): this;
|
94
|
+
name(value: WebpackConfig['name']): this;
|
95
|
+
infrastructureLogging(value: WebpackConfig['infrastructureLogging']): this;
|
96
|
+
snapshot(value: WebpackConfig['snapshot']): this;
|
79
97
|
|
80
98
|
entry(name: string): Config.EntryPoint;
|
81
|
-
plugin(name: string): Config.Plugin<this,
|
99
|
+
plugin(name: string): Config.Plugin<this, WebpackPluginInstance>;
|
82
100
|
|
83
|
-
toConfig():
|
101
|
+
toConfig(): Configuration;
|
84
102
|
}
|
85
103
|
|
86
104
|
declare namespace Config {
|
87
105
|
class Chained<Parent> extends __Config.Chained<Parent> {}
|
88
|
-
class TypedChainedMap<Parent,
|
106
|
+
class TypedChainedMap<Parent, OptionsType> extends __Config.TypedChainedMap<
|
89
107
|
Parent,
|
90
|
-
|
108
|
+
OptionsType
|
91
109
|
> {}
|
92
110
|
class ChainedMap<Parent> extends __Config.TypedChainedMap<Parent, any> {}
|
93
111
|
class TypedChainedSet<Parent, Value> extends __Config.TypedChainedSet<
|
@@ -98,21 +116,29 @@ declare namespace Config {
|
|
98
116
|
|
99
117
|
class Plugins<
|
100
118
|
Parent,
|
101
|
-
PluginType extends
|
102
|
-
> extends TypedChainedMap<
|
119
|
+
PluginType extends WebpackPluginInstance,
|
120
|
+
> extends TypedChainedMap<
|
121
|
+
Parent,
|
122
|
+
{ [key: string]: Plugin<Parent, PluginType> }
|
123
|
+
> {}
|
103
124
|
|
104
|
-
class Plugin<Parent, PluginType extends
|
125
|
+
class Plugin<Parent, PluginType extends WebpackPluginInstance | ResolvePlugin>
|
105
126
|
extends ChainedMap<Parent>
|
106
|
-
implements Orderable
|
127
|
+
implements Orderable
|
128
|
+
{
|
107
129
|
init<P extends PluginType | PluginClass<PluginType>>(
|
108
130
|
value: (
|
109
131
|
plugin: P,
|
110
|
-
args: P extends PluginClass
|
132
|
+
args: P extends PluginClass<PluginType>
|
133
|
+
? ConstructorParameters<P>
|
134
|
+
: any[],
|
111
135
|
) => PluginType,
|
112
136
|
): this;
|
113
137
|
use<P extends string | PluginType | PluginClass<PluginType>>(
|
114
138
|
plugin: P,
|
115
|
-
args?: P extends PluginClass
|
139
|
+
args?: P extends PluginClass<PluginType>
|
140
|
+
? ConstructorParameters<P>
|
141
|
+
: any[],
|
116
142
|
): this;
|
117
143
|
tap<P extends PluginClass<PluginType>>(
|
118
144
|
f: (args: ConstructorParameters<P>) => ConstructorParameters<P>,
|
@@ -123,61 +149,119 @@ declare namespace Config {
|
|
123
149
|
after(name: string): this;
|
124
150
|
}
|
125
151
|
|
152
|
+
type WebpackEntry = NonNullable<Configuration['entry']>;
|
153
|
+
|
154
|
+
type WepackEntryObject = Exclude<
|
155
|
+
WebpackEntry,
|
156
|
+
string | string[] | Function
|
157
|
+
>[string];
|
158
|
+
|
159
|
+
class EntryPoint extends TypedChainedSet<Config, WepackEntryObject> {}
|
160
|
+
|
161
|
+
type WebpackModule = Required<NonNullable<Configuration['module']>>;
|
162
|
+
|
126
163
|
class Module extends ChainedMap<Config> {
|
127
|
-
rules: TypedChainedMap<this, Rule>;
|
164
|
+
rules: TypedChainedMap<this, { [key: string]: Rule }>;
|
165
|
+
generator: ChainedMap<this>;
|
166
|
+
parser: ChainedMap<this>;
|
128
167
|
rule(name: string): Rule;
|
129
|
-
noParse(
|
130
|
-
|
168
|
+
noParse(value: WebpackModule['noParse']): this;
|
169
|
+
unsafeCache(value: WebpackModule['unsafeCache']): this;
|
170
|
+
wrappedContextCritical(
|
171
|
+
value: WebpackModule['wrappedContextCritical'],
|
172
|
+
): this;
|
173
|
+
exprContextRegExp(value: WebpackModule['exprContextRegExp']): this;
|
174
|
+
wrappedContextRecursive(
|
175
|
+
value: WebpackModule['wrappedContextRecursive'],
|
131
176
|
): this;
|
132
|
-
strictExportPresence(value:
|
177
|
+
strictExportPresence(value: WebpackModule['strictExportPresence']): this;
|
178
|
+
wrappedContextRegExp(value: WebpackModule['wrappedContextRegExp']): this;
|
133
179
|
}
|
134
180
|
|
181
|
+
type WebpackOutput = Required<NonNullable<Configuration['output']>>;
|
182
|
+
|
135
183
|
class Output extends ChainedMap<Config> {
|
136
|
-
auxiliaryComment(value:
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
184
|
+
auxiliaryComment(value: WebpackOutput['auxiliaryComment']): this;
|
185
|
+
charset(value: WebpackOutput['charset']): this;
|
186
|
+
chunkFilename(value: WebpackOutput['chunkFilename']): this;
|
187
|
+
chunkLoadTimeout(value: WebpackOutput['chunkLoadTimeout']): this;
|
188
|
+
chunkLoadingGlobal(value: WebpackOutput['chunkLoadingGlobal']): this;
|
189
|
+
chunkLoading(value: WebpackOutput['chunkLoading']): this;
|
190
|
+
chunkFormat(value: WebpackOutput['chunkFormat']): this;
|
191
|
+
enabledChunkLoadingTypes(
|
192
|
+
value: WebpackOutput['enabledChunkLoadingTypes'],
|
193
|
+
): this;
|
194
|
+
crossOriginLoading(value: WebpackOutput['crossOriginLoading']): this;
|
195
|
+
devtoolFallbackModuleFilenameTemplate(
|
196
|
+
value: WebpackOutput['devtoolFallbackModuleFilenameTemplate'],
|
197
|
+
): this;
|
198
|
+
devtoolModuleFilenameTemplate(
|
199
|
+
value: WebpackOutput['devtoolModuleFilenameTemplate'],
|
200
|
+
): this;
|
201
|
+
devtoolNamespace(value: WebpackOutput['devtoolNamespace']): this;
|
202
|
+
filename(value: WebpackOutput['filename']): this;
|
203
|
+
assetModuleFilenamet(value: WebpackOutput['assetModuleFilename']): this;
|
204
|
+
globalObject(value: WebpackOutput['globalObject']): this;
|
205
|
+
uniqueName(value: WebpackOutput['uniqueName']): this;
|
206
|
+
hashDigest(value: WebpackOutput['hashDigest']): this;
|
207
|
+
hashDigestLength(value: WebpackOutput['hashDigestLength']): this;
|
208
|
+
hashFunction(value: WebpackOutput['hashFunction']): this;
|
209
|
+
hashSalt(value: WebpackOutput['hashSalt']): this;
|
210
|
+
hotUpdateChunkFilename(
|
211
|
+
value: WebpackOutput['hotUpdateChunkFilename'],
|
212
|
+
): this;
|
213
|
+
hotUpdateGlobal(value: WebpackOutput['hotUpdateGlobal']): this;
|
214
|
+
hotUpdateMainFilename(value: WebpackOutput['hotUpdateMainFilename']): this;
|
215
|
+
library(value: WebpackOutput['library']): this;
|
216
|
+
libraryExport(value: WebpackOutput['libraryExport']): this;
|
217
|
+
libraryTarget(value: WebpackOutput['libraryTarget']): this;
|
218
|
+
importFunctionName(value: WebpackOutput['importFunctionName']): this;
|
219
|
+
path(value: WebpackOutput['path']): this;
|
220
|
+
pathinfo(value: WebpackOutput['pathinfo']): this;
|
221
|
+
publicPath(value: WebpackOutput['publicPath']): this;
|
222
|
+
scriptType(value: WebpackOutput['scriptType']): this;
|
223
|
+
sourceMapFilename(value: WebpackOutput['sourceMapFilename']): this;
|
224
|
+
sourcePrefix(value: WebpackOutput['sourcePrefix']): this;
|
225
|
+
strictModuleErrorHandling(
|
226
|
+
value: WebpackOutput['strictModuleErrorHandling'],
|
227
|
+
): this;
|
228
|
+
strictModuleExceptionHandling(
|
229
|
+
value: WebpackOutput['strictModuleExceptionHandling'],
|
230
|
+
): this;
|
231
|
+
umdNamedDefine(value: WebpackOutput['umdNamedDefine']): this;
|
232
|
+
workerChunkLoading(value: WebpackOutput['workerChunkLoading']): this;
|
233
|
+
enabledLibraryTypes(value: WebpackOutput['enabledLibraryTypes']): this;
|
234
|
+
environment(value: WebpackOutput['environment']): this;
|
235
|
+
compareBeforeEmit(value: WebpackOutput['compareBeforeEmit']): this;
|
236
|
+
wasmLoading(value: WebpackOutput['wasmLoading']): this;
|
237
|
+
enabledWasmLoadingTypes(
|
238
|
+
value: WebpackOutput['enabledWasmLoadingTypes'],
|
239
|
+
): this;
|
240
|
+
iife(value: WebpackOutput['iife']): this;
|
241
|
+
module(value: WebpackOutput['module']): this;
|
242
|
+
clean(value: WebpackOutput['clean']): this;
|
165
243
|
}
|
166
244
|
|
245
|
+
// await for @types/webpack-dev-server update do v4 to remove all any
|
167
246
|
class DevServer extends ChainedMap<Config> {
|
168
247
|
allowedHosts: TypedChainedSet<this, string>;
|
169
|
-
|
170
|
-
|
171
|
-
value: (app: any, server: any, compiler: webpack.Compiler) => void,
|
172
|
-
): this;
|
173
|
-
before(
|
174
|
-
value: (app: any, server: any, compiler: webpack.Compiler) => void,
|
175
|
-
): this;
|
248
|
+
after(value: (app: any, server: any, compiler: Compiler) => void): this;
|
249
|
+
before(value: (app: any, server: any, compiler: Compiler) => void): this;
|
176
250
|
bonjour(value: boolean): this;
|
177
|
-
clientLogLevel(
|
178
|
-
|
251
|
+
clientLogLevel(
|
252
|
+
value:
|
253
|
+
| 'silent'
|
254
|
+
| 'trace'
|
255
|
+
| 'debug'
|
256
|
+
| 'info'
|
257
|
+
| 'warn'
|
258
|
+
| 'error'
|
259
|
+
| 'none'
|
260
|
+
| 'warning',
|
261
|
+
): this;
|
179
262
|
compress(value: boolean): this;
|
180
263
|
contentBase(value: boolean | string | string[]): this;
|
264
|
+
contentBasePublicPath(value: string): this;
|
181
265
|
disableHostCheck(value: boolean): this;
|
182
266
|
filename(value: string): this;
|
183
267
|
headers(value: { [header: string]: string }): this;
|
@@ -188,11 +272,14 @@ declare namespace Config {
|
|
188
272
|
http2(value: boolean): this;
|
189
273
|
https(value: boolean | https.ServerOptions): this;
|
190
274
|
index(value: string): this;
|
191
|
-
|
275
|
+
injectClient(value: boolean | ((compiler: Compiler) => boolean)): this;
|
276
|
+
injectHot(value: boolean | ((compiler: Compiler) => boolean)): this;
|
192
277
|
inline(value: boolean): this;
|
193
278
|
lazy(value: boolean): this;
|
279
|
+
liveReload(value: boolean): this;
|
194
280
|
mimeTypes(value: Object): this;
|
195
281
|
noInfo(value: boolean): this;
|
282
|
+
onListening(value: (server: any) => void): this;
|
196
283
|
open(value: boolean): this;
|
197
284
|
openPage(value: string | string[]): this;
|
198
285
|
overlay(value: boolean | { warnings?: boolean; errors?: boolean }): this;
|
@@ -204,75 +291,129 @@ declare namespace Config {
|
|
204
291
|
public(value: string): this;
|
205
292
|
publicPath(publicPath: string): this;
|
206
293
|
quiet(value: boolean): this;
|
294
|
+
serveIndex(value: boolean): this;
|
207
295
|
setup(value: (expressApp: any) => void): this;
|
208
296
|
socket(value: string): this;
|
209
297
|
sockHost(value: string): this;
|
210
298
|
sockPath(value: string): this;
|
211
299
|
sockPort(value: number): this;
|
212
300
|
staticOptions(value: any): this;
|
213
|
-
stats(value:
|
301
|
+
stats(value: Configuration['stats']): this;
|
214
302
|
stdin(value: boolean): this;
|
303
|
+
transportMode(
|
304
|
+
value:
|
305
|
+
| 'sockjs'
|
306
|
+
| 'ws'
|
307
|
+
| {
|
308
|
+
server: 'ws';
|
309
|
+
client: object;
|
310
|
+
}
|
311
|
+
| {
|
312
|
+
client: 'sockjs';
|
313
|
+
server: object;
|
314
|
+
}
|
315
|
+
| {
|
316
|
+
client: object;
|
317
|
+
server: object;
|
318
|
+
},
|
319
|
+
): this;
|
215
320
|
useLocalIp(value: boolean): this;
|
216
321
|
watchContentBase(value: boolean): this;
|
217
|
-
watchOptions(value:
|
322
|
+
watchOptions(value: Configuration['watchOptions']): this;
|
218
323
|
writeToDisk(value: boolean): this;
|
219
324
|
}
|
220
325
|
|
326
|
+
type WebpackPerformance = Exclude<
|
327
|
+
Required<NonNullable<Configuration['performance']>>,
|
328
|
+
false
|
329
|
+
>;
|
221
330
|
class Performance extends ChainedMap<Config> {
|
222
|
-
hints(value:
|
223
|
-
maxEntrypointSize(value:
|
224
|
-
maxAssetSize(value:
|
225
|
-
assetFilter(value:
|
331
|
+
hints(value: WebpackPerformance['hints']): this;
|
332
|
+
maxEntrypointSize(value: WebpackPerformance['maxEntrypointSize']): this;
|
333
|
+
maxAssetSize(value: WebpackPerformance['maxAssetSize']): this;
|
334
|
+
assetFilter(value: WebpackPerformance['assetFilter']): this;
|
226
335
|
}
|
227
336
|
|
228
|
-
|
337
|
+
type WebpackResolve = Required<NonNullable<Configuration['resolve']>>;
|
338
|
+
type ResolvePlugin = Exclude<
|
339
|
+
NonNullable<ResolveOptions['plugins']>[number],
|
340
|
+
'...'
|
341
|
+
>;
|
229
342
|
|
230
343
|
class Resolve<T = Config> extends ChainedMap<T> {
|
231
|
-
alias: TypedChainedMap<this, string>;
|
232
|
-
aliasFields: TypedChainedSet<this,
|
233
|
-
descriptionFiles: TypedChainedSet<
|
234
|
-
|
235
|
-
|
236
|
-
|
237
|
-
|
238
|
-
|
239
|
-
|
240
|
-
|
241
|
-
|
242
|
-
|
243
|
-
|
244
|
-
|
245
|
-
|
246
|
-
|
247
|
-
|
344
|
+
alias: TypedChainedMap<this, { [key: string]: string | false | string[] }>;
|
345
|
+
aliasFields: TypedChainedSet<this, WebpackResolve['aliasFields'][number]>;
|
346
|
+
descriptionFiles: TypedChainedSet<
|
347
|
+
this,
|
348
|
+
WebpackResolve['descriptionFiles'][number]
|
349
|
+
>;
|
350
|
+
extensions: TypedChainedSet<this, WebpackResolve['extensions'][number]>;
|
351
|
+
mainFields: TypedChainedSet<this, WebpackResolve['mainFields'][number]>;
|
352
|
+
mainFiles: TypedChainedSet<this, WebpackResolve['mainFiles'][number]>;
|
353
|
+
exportsFields: TypedChainedSet<
|
354
|
+
this,
|
355
|
+
WebpackResolve['exportsFields'][number]
|
356
|
+
>;
|
357
|
+
importsFields: TypedChainedSet<
|
358
|
+
this,
|
359
|
+
WebpackResolve['importsFields'][number]
|
360
|
+
>;
|
361
|
+
restrictions: TypedChainedSet<this, WebpackResolve['restrictions'][number]>;
|
362
|
+
roots: TypedChainedSet<this, WebpackResolve['roots'][number]>;
|
363
|
+
modules: TypedChainedSet<this, WebpackResolve['modules'][number]>;
|
364
|
+
plugins: TypedChainedMap<
|
365
|
+
this,
|
366
|
+
{ [key: string]: Plugin<Resolve, ResolvePlugin> }
|
367
|
+
>;
|
368
|
+
fallback: TypedChainedMap<
|
369
|
+
this,
|
370
|
+
{ [key: string]: string | false | string[] }
|
371
|
+
>;
|
372
|
+
byDependency: TypedChainedMap<this, WebpackResolve['byDependency']>;
|
373
|
+
|
374
|
+
cachePredicate(value: WebpackResolve['cachePredicate']): this;
|
375
|
+
cacheWithContext(value: WebpackResolve['cacheWithContext']): this;
|
376
|
+
enforceExtension(value: WebpackResolve['enforceExtension']): this;
|
377
|
+
symlinks(value: WebpackResolve['symlinks']): this;
|
378
|
+
unsafeCache(value: WebpackResolve['unsafeCache']): this;
|
379
|
+
preferRelative(value: WebpackResolve['preferRelative']): this;
|
380
|
+
preferAbsolute(value: WebpackResolve['preferAbsolute']): this;
|
381
|
+
|
382
|
+
plugin(name: string): Plugin<this, ResolvePlugin>;
|
383
|
+
}
|
248
384
|
|
249
|
-
|
385
|
+
class RuleResolve<T = Config> extends Resolve<T> {
|
386
|
+
fullySpecified(value: boolean): this;
|
250
387
|
}
|
251
388
|
|
252
389
|
class ResolveLoader extends Resolve {
|
390
|
+
modules: ChainedSet<this>;
|
253
391
|
moduleExtensions: ChainedSet<this>;
|
254
392
|
packageMains: ChainedSet<this>;
|
255
393
|
}
|
256
394
|
|
395
|
+
type WebpackRuleSet = Required<RuleSetRule>;
|
396
|
+
|
257
397
|
class Rule<T = Module> extends ChainedMap<T> implements Orderable {
|
258
|
-
|
259
|
-
|
260
|
-
|
261
|
-
|
262
|
-
|
263
|
-
resolve:
|
264
|
-
|
265
|
-
|
266
|
-
|
267
|
-
|
268
|
-
|
269
|
-
|
270
|
-
|
271
|
-
|
272
|
-
|
273
|
-
|
274
|
-
): this;
|
275
|
-
|
398
|
+
uses: TypedChainedMap<this, { [key: string]: Use }>;
|
399
|
+
include: TypedChainedSet<this, WebpackRuleSet['include']>;
|
400
|
+
exclude: TypedChainedSet<this, WebpackRuleSet['exclude']>;
|
401
|
+
rules: TypedChainedMap<this, { [key: string]: Rule<Rule> }>;
|
402
|
+
oneOfs: TypedChainedMap<this, { [key: string]: Rule<Rule> }>;
|
403
|
+
resolve: RuleResolve<Rule<T>>;
|
404
|
+
|
405
|
+
enforce(value: WebpackRuleSet['enforce']): this;
|
406
|
+
issuer(value: WebpackRuleSet['issuer']): this;
|
407
|
+
issuerLayer(value: WebpackRuleSet['issuerLayer']): this;
|
408
|
+
layer(value: WebpackRuleSet['layer']): this;
|
409
|
+
mimetype(value: WebpackRuleSet['mimetype']): this;
|
410
|
+
parser(value: WebpackRuleSet['parser']): this;
|
411
|
+
generator(value: WebpackRuleSet['generator']): this;
|
412
|
+
resource(value: WebpackRuleSet['resource']): this;
|
413
|
+
resourceQuery(value: WebpackRuleSet['resourceQuery']): this;
|
414
|
+
sideEffects(value: WebpackRuleSet['sideEffects']): this;
|
415
|
+
test(value: WebpackRuleSet['test']): this;
|
416
|
+
type(value: WebpackRuleSet['type']): this;
|
276
417
|
|
277
418
|
use(name: string): Use<this>;
|
278
419
|
rule(name: string): Rule<Rule>;
|
@@ -281,28 +422,40 @@ declare namespace Config {
|
|
281
422
|
post(): this;
|
282
423
|
before(name: string): this;
|
283
424
|
after(name: string): this;
|
284
|
-
resourceQuery(value: webpack.Condition | webpack.Condition[]): this;
|
285
425
|
}
|
286
426
|
|
427
|
+
type WebpackOptimization = Required<
|
428
|
+
NonNullable<Configuration['optimization']>
|
429
|
+
>;
|
430
|
+
type SplitChunksObject = Exclude<WebpackOptimization['splitChunks'], false>;
|
287
431
|
class Optimization extends ChainedMap<Config> {
|
288
|
-
|
289
|
-
|
290
|
-
|
291
|
-
|
292
|
-
|
293
|
-
|
294
|
-
|
295
|
-
|
296
|
-
|
297
|
-
|
298
|
-
|
299
|
-
|
300
|
-
|
301
|
-
|
302
|
-
|
303
|
-
|
304
|
-
|
305
|
-
|
432
|
+
minimizer(name: string): Config.Plugin<this, WebpackPluginInstance>;
|
433
|
+
splitChunks: TypedChainedMap<this, SplitChunksObject> &
|
434
|
+
((value: SplitChunksObject | false) => this);
|
435
|
+
|
436
|
+
minimize(value: WebpackOptimization['minimize']): this;
|
437
|
+
runtimeChunk(value: WebpackOptimization['runtimeChunk']): this;
|
438
|
+
emitOnErrors(value: WebpackOptimization['emitOnErrors']): this;
|
439
|
+
moduleIds(value: WebpackOptimization['moduleIds']): this;
|
440
|
+
chunkIds(value: WebpackOptimization['chunkIds']): this;
|
441
|
+
nodeEnv(value: WebpackOptimization['nodeEnv']): this;
|
442
|
+
mangleWasmImports(value: WebpackOptimization['mangleWasmImports']): this;
|
443
|
+
removeAvailableModules(
|
444
|
+
value: WebpackOptimization['removeAvailableModules'],
|
445
|
+
): this;
|
446
|
+
removeEmptyChunks(value: WebpackOptimization['removeEmptyChunks']): this;
|
447
|
+
mergeDuplicateChunks(
|
448
|
+
value: WebpackOptimization['mergeDuplicateChunks'],
|
449
|
+
): this;
|
450
|
+
flagIncludedChunks(value: WebpackOptimization['flagIncludedChunks']): this;
|
451
|
+
providedExports(value: WebpackOptimization['providedExports']): this;
|
452
|
+
usedExports(value: WebpackOptimization['usedExports']): this;
|
453
|
+
concatenateModules(value: WebpackOptimization['concatenateModules']): this;
|
454
|
+
sideEffects(value: WebpackOptimization['sideEffects']): this;
|
455
|
+
portableRecords(value: WebpackOptimization['portableRecords']): this;
|
456
|
+
mangleExports(value: WebpackOptimization['mangleExports']): this;
|
457
|
+
innerGraph(value: WebpackOptimization['innerGraph']): this;
|
458
|
+
realContentHash(value: WebpackOptimization['realContentHash']): this;
|
306
459
|
}
|
307
460
|
|
308
461
|
interface RuntimeChunk {
|
@@ -332,52 +485,110 @@ declare namespace Config {
|
|
332
485
|
|
333
486
|
type DevTool =
|
334
487
|
| 'eval'
|
335
|
-
| '
|
336
|
-
| 'cheap-
|
488
|
+
| 'eval-cheap-source-map'
|
489
|
+
| 'eval-cheap-module-source-map'
|
490
|
+
| 'eval-source-map'
|
337
491
|
| 'cheap-source-map'
|
338
|
-
| 'cheap-module-eval-source-map'
|
339
492
|
| 'cheap-module-source-map'
|
340
|
-
| 'eval-source-map'
|
341
493
|
| 'source-map'
|
494
|
+
| 'inline-cheap-source-map'
|
495
|
+
| 'inline-cheap-module-source-map'
|
496
|
+
| 'inline-source-map'
|
497
|
+
| 'eval-nosources-cheap-source-map'
|
498
|
+
| 'eval-nosources-cheap-module-source-map'
|
499
|
+
| 'eval-nosources-source-map'
|
500
|
+
| 'inline-nosources-cheap-source-map'
|
501
|
+
| 'inline-nosources-cheap-module-source-map'
|
502
|
+
| 'inline-nosources-source-map'
|
503
|
+
| 'nosources-cheap-source-map'
|
504
|
+
| 'nosources-cheap-module-source-map'
|
342
505
|
| 'nosources-source-map'
|
506
|
+
| 'hidden-nosources-cheap-source-map'
|
507
|
+
| 'hidden-nosources-cheap-module-source-map'
|
508
|
+
| 'hidden-nosources-source-map'
|
509
|
+
| 'hidden-cheap-source-map'
|
510
|
+
| 'hidden-cheap-module-source-map'
|
343
511
|
| 'hidden-source-map'
|
344
|
-
| 'nosources-source-map'
|
345
512
|
| '@eval'
|
346
|
-
| '@
|
347
|
-
| '@cheap-
|
513
|
+
| '@eval-cheap-source-map'
|
514
|
+
| '@eval-cheap-module-source-map'
|
515
|
+
| '@eval-source-map'
|
348
516
|
| '@cheap-source-map'
|
349
|
-
| '@cheap-module-eval-source-map'
|
350
517
|
| '@cheap-module-source-map'
|
351
|
-
| '@eval-source-map'
|
352
518
|
| '@source-map'
|
519
|
+
| '@inline-cheap-source-map'
|
520
|
+
| '@inline-cheap-module-source-map'
|
521
|
+
| '@inline-source-map'
|
522
|
+
| '@eval-nosources-cheap-source-map'
|
523
|
+
| '@eval-nosources-cheap-module-source-map'
|
524
|
+
| '@eval-nosources-source-map'
|
525
|
+
| '@inline-nosources-cheap-source-map'
|
526
|
+
| '@inline-nosources-cheap-module-source-map'
|
527
|
+
| '@inline-nosources-source-map'
|
528
|
+
| '@nosources-cheap-source-map'
|
529
|
+
| '@nosources-cheap-module-source-map'
|
353
530
|
| '@nosources-source-map'
|
531
|
+
| '@hidden-nosources-cheap-source-map'
|
532
|
+
| '@hidden-nosources-cheap-module-source-map'
|
533
|
+
| '@hidden-nosources-source-map'
|
534
|
+
| '@hidden-cheap-source-map'
|
535
|
+
| '@hidden-cheap-module-source-map'
|
354
536
|
| '@hidden-source-map'
|
355
|
-
| '@nosources-source-map'
|
356
537
|
| '#eval'
|
357
|
-
| '#
|
358
|
-
| '#cheap-
|
538
|
+
| '#eval-cheap-source-map'
|
539
|
+
| '#eval-cheap-module-source-map'
|
540
|
+
| '#eval-source-map'
|
359
541
|
| '#cheap-source-map'
|
360
|
-
| '#cheap-module-eval-source-map'
|
361
542
|
| '#cheap-module-source-map'
|
362
|
-
| '#eval-source-map'
|
363
543
|
| '#source-map'
|
544
|
+
| '#inline-cheap-source-map'
|
545
|
+
| '#inline-cheap-module-source-map'
|
546
|
+
| '#inline-source-map'
|
547
|
+
| '#eval-nosources-cheap-source-map'
|
548
|
+
| '#eval-nosources-cheap-module-source-map'
|
549
|
+
| '#eval-nosources-source-map'
|
550
|
+
| '#inline-nosources-cheap-source-map'
|
551
|
+
| '#inline-nosources-cheap-module-source-map'
|
552
|
+
| '#inline-nosources-source-map'
|
553
|
+
| '#nosources-cheap-source-map'
|
554
|
+
| '#nosources-cheap-module-source-map'
|
364
555
|
| '#nosources-source-map'
|
556
|
+
| '#hidden-nosources-cheap-source-map'
|
557
|
+
| '#hidden-nosources-cheap-module-source-map'
|
558
|
+
| '#hidden-nosources-source-map'
|
559
|
+
| '#hidden-cheap-source-map'
|
560
|
+
| '#hidden-cheap-module-source-map'
|
365
561
|
| '#hidden-source-map'
|
366
|
-
| '#nosources-source-map'
|
367
562
|
| '#@eval'
|
368
|
-
| '#@
|
369
|
-
| '#@cheap-
|
563
|
+
| '#@eval-cheap-source-map'
|
564
|
+
| '#@eval-cheap-module-source-map'
|
565
|
+
| '#@eval-source-map'
|
370
566
|
| '#@cheap-source-map'
|
371
|
-
| '#@cheap-module-eval-source-map'
|
372
567
|
| '#@cheap-module-source-map'
|
373
|
-
| '#@eval-source-map'
|
374
568
|
| '#@source-map'
|
569
|
+
| '#@inline-cheap-source-map'
|
570
|
+
| '#@inline-cheap-module-source-map'
|
571
|
+
| '#@inline-source-map'
|
572
|
+
| '#@eval-nosources-cheap-source-map'
|
573
|
+
| '#@eval-nosources-cheap-module-source-map'
|
574
|
+
| '#@eval-nosources-source-map'
|
575
|
+
| '#@inline-nosources-cheap-source-map'
|
576
|
+
| '#@inline-nosources-cheap-module-source-map'
|
577
|
+
| '#@inline-nosources-source-map'
|
578
|
+
| '#@nosources-cheap-source-map'
|
579
|
+
| '#@nosources-cheap-module-source-map'
|
375
580
|
| '#@nosources-source-map'
|
581
|
+
| '#@hidden-nosources-cheap-source-map'
|
582
|
+
| '#@hidden-nosources-cheap-module-source-map'
|
583
|
+
| '#@hidden-nosources-source-map'
|
584
|
+
| '#@hidden-cheap-source-map'
|
585
|
+
| '#@hidden-cheap-module-source-map'
|
376
586
|
| '#@hidden-source-map'
|
377
|
-
| '#@nosources-source-map'
|
378
587
|
| boolean;
|
379
588
|
|
380
|
-
interface PluginClass<
|
589
|
+
interface PluginClass<
|
590
|
+
PluginType extends WebpackPluginInstance | ResolvePlugin,
|
591
|
+
> {
|
381
592
|
new (...opts: any[]): PluginType;
|
382
593
|
}
|
383
594
|
|