@rspack/core 1.0.5 → 1.0.6
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.
- package/dist/Chunk.d.ts +5 -0
- package/dist/Chunk.js +28 -0
- package/dist/Compilation.d.ts +15 -7
- package/dist/Compilation.js +25 -8
- package/dist/Compiler.js +9 -21
- package/dist/Module.d.ts +20 -8
- package/dist/Module.js +66 -7
- package/dist/Resolver.d.ts +2 -4
- package/dist/RspackError.d.ts +2 -2
- package/dist/RspackError.js +3 -3
- package/dist/RuntimeModule.d.ts +32 -0
- package/dist/RuntimeModule.js +58 -0
- package/dist/builtin-plugin/ContextReplacementPlugin.d.ts +10 -0
- package/dist/builtin-plugin/ContextReplacementPlugin.js +43 -0
- package/dist/builtin-plugin/ProgressPlugin.d.ts +1 -1
- package/dist/builtin-plugin/ProgressPlugin.js +10 -8
- package/dist/builtin-plugin/index.d.ts +1 -0
- package/dist/builtin-plugin/index.js +1 -0
- package/dist/config/adapter.js +10 -14
- package/dist/config/adapterRuleUse.d.ts +40 -3
- package/dist/config/defaults.js +0 -4
- package/dist/config/zod.d.ts +16 -16
- package/dist/exports.d.ts +2 -0
- package/dist/exports.js +6 -2
- package/dist/loader-runner/index.js +30 -28
- package/dist/node/NodeEnvironmentPlugin.js +1 -1
- package/dist/stats/DefaultStatsFactoryPlugin.js +18 -29
- package/dist/stats/DefaultStatsPrinterPlugin.js +3 -5
- package/dist/stats/StatsFactory.d.ts +1 -1
- package/dist/stats/StatsFactory.js +1 -4
- package/dist/stats/statsFactoryUtils.d.ts +7 -3
- package/dist/stats/statsFactoryUtils.js +5 -6
- package/dist/util/comparators.d.ts +2 -2
- package/dist/util/smartGrouping.d.ts +4 -4
- package/dist/util/source.d.ts +1 -12
- package/dist/util/source.js +19 -43
- package/package.json +2 -2
|
@@ -66,7 +66,7 @@ const MERGER = {
|
|
|
66
66
|
"compilation.namedChunkGroups": statsFactoryUtils_1.mergeToObject
|
|
67
67
|
};
|
|
68
68
|
const ASSETS_GROUPERS = {
|
|
69
|
-
_: (groupConfigs,
|
|
69
|
+
_: (groupConfigs, _context, options) => {
|
|
70
70
|
const groupByFlag = (name, exclude) => {
|
|
71
71
|
groupConfigs.push({
|
|
72
72
|
getKeys: (asset) => {
|
|
@@ -78,7 +78,6 @@ const ASSETS_GROUPERS = {
|
|
|
78
78
|
force: exclude
|
|
79
79
|
};
|
|
80
80
|
},
|
|
81
|
-
// @ts-expect-error
|
|
82
81
|
createGroup: (key, children, assets) => {
|
|
83
82
|
return exclude
|
|
84
83
|
? {
|
|
@@ -130,7 +129,6 @@ const ASSETS_GROUPERS = {
|
|
|
130
129
|
}
|
|
131
130
|
return keys;
|
|
132
131
|
},
|
|
133
|
-
// @ts-expect-error
|
|
134
132
|
createGroup: (key, children) => {
|
|
135
133
|
return {
|
|
136
134
|
type: groupAssetsByPath ? "assets by path" : "assets by extension",
|
|
@@ -148,7 +146,6 @@ const ASSETS_GROUPERS = {
|
|
|
148
146
|
getKeys: asset => {
|
|
149
147
|
return asset.info?.[name] ? ["1"] : undefined;
|
|
150
148
|
},
|
|
151
|
-
// @ts-expect-error
|
|
152
149
|
createGroup: (key, children) => {
|
|
153
150
|
return {
|
|
154
151
|
type: "assets by info",
|
|
@@ -171,7 +168,6 @@ const ASSETS_GROUPERS = {
|
|
|
171
168
|
getKeys: asset => {
|
|
172
169
|
return asset[name];
|
|
173
170
|
},
|
|
174
|
-
// @ts-expect-error
|
|
175
171
|
createGroup: (key, children) => {
|
|
176
172
|
return {
|
|
177
173
|
type: "assets by chunk",
|
|
@@ -187,7 +183,7 @@ const ASSETS_GROUPERS = {
|
|
|
187
183
|
groupByNames("chunkIdHints");
|
|
188
184
|
groupByNames("auxiliaryChunkIdHints");
|
|
189
185
|
},
|
|
190
|
-
excludeAssets: (groupConfigs,
|
|
186
|
+
excludeAssets: (groupConfigs, _context, { excludeAssets }) => {
|
|
191
187
|
groupConfigs.push({
|
|
192
188
|
getKeys: asset => {
|
|
193
189
|
const ident = asset.name;
|
|
@@ -199,8 +195,7 @@ const ASSETS_GROUPERS = {
|
|
|
199
195
|
groupChildren: false,
|
|
200
196
|
force: true
|
|
201
197
|
}),
|
|
202
|
-
|
|
203
|
-
createGroup: (key, children, assets) => ({
|
|
198
|
+
createGroup: (_key, children, assets) => ({
|
|
204
199
|
type: "hidden assets",
|
|
205
200
|
filteredChildren: assets.length,
|
|
206
201
|
...(0, statsFactoryUtils_1.assetGroup)(children)
|
|
@@ -209,7 +204,7 @@ const ASSETS_GROUPERS = {
|
|
|
209
204
|
}
|
|
210
205
|
};
|
|
211
206
|
const MODULES_GROUPERS = (type) => ({
|
|
212
|
-
_: (groupConfigs,
|
|
207
|
+
_: (groupConfigs, _context, options) => {
|
|
213
208
|
const groupByFlag = (name, type, exclude) => {
|
|
214
209
|
groupConfigs.push({
|
|
215
210
|
getKeys: module => {
|
|
@@ -221,7 +216,6 @@ const MODULES_GROUPERS = (type) => ({
|
|
|
221
216
|
force: exclude
|
|
222
217
|
};
|
|
223
218
|
},
|
|
224
|
-
// @ts-expect-error
|
|
225
219
|
createGroup: (key, children, modules) => {
|
|
226
220
|
return {
|
|
227
221
|
type,
|
|
@@ -273,7 +267,6 @@ const MODULES_GROUPERS = (type) => ({
|
|
|
273
267
|
force: exclude
|
|
274
268
|
};
|
|
275
269
|
},
|
|
276
|
-
// @ts-expect-error
|
|
277
270
|
createGroup: (key, children, modules) => {
|
|
278
271
|
const exclude = key === "runtime" && !options.runtimeModules;
|
|
279
272
|
return {
|
|
@@ -316,8 +309,7 @@ const MODULES_GROUPERS = (type) => ({
|
|
|
316
309
|
}
|
|
317
310
|
return keys;
|
|
318
311
|
},
|
|
319
|
-
|
|
320
|
-
createGroup: (key, children, modules) => {
|
|
312
|
+
createGroup: (key, children, _modules) => {
|
|
321
313
|
const isDataUrl = key.startsWith("data:");
|
|
322
314
|
return {
|
|
323
315
|
type: isDataUrl
|
|
@@ -333,7 +325,7 @@ const MODULES_GROUPERS = (type) => ({
|
|
|
333
325
|
});
|
|
334
326
|
}
|
|
335
327
|
},
|
|
336
|
-
excludeModules: (groupConfigs,
|
|
328
|
+
excludeModules: (groupConfigs, _context, { excludeModules }) => {
|
|
337
329
|
groupConfigs.push({
|
|
338
330
|
getKeys: module => {
|
|
339
331
|
const name = module.name;
|
|
@@ -347,8 +339,7 @@ const MODULES_GROUPERS = (type) => ({
|
|
|
347
339
|
groupChildren: false,
|
|
348
340
|
force: true
|
|
349
341
|
}),
|
|
350
|
-
|
|
351
|
-
createGroup: (key, children, modules) => ({
|
|
342
|
+
createGroup: (_key, children, _modules) => ({
|
|
352
343
|
type: "hidden modules",
|
|
353
344
|
filteredChildren: children.length,
|
|
354
345
|
...(0, statsFactoryUtils_1.moduleGroup)(children)
|
|
@@ -374,22 +365,22 @@ const ASSET_SORTERS = {
|
|
|
374
365
|
};
|
|
375
366
|
const RESULT_SORTERS = {
|
|
376
367
|
"compilation.chunks": {
|
|
377
|
-
chunksSort: (comparators,
|
|
368
|
+
chunksSort: (comparators, _context, { chunksSort }) => {
|
|
378
369
|
comparators.push((0, statsFactoryUtils_1.sortByField)(chunksSort));
|
|
379
370
|
}
|
|
380
371
|
},
|
|
381
372
|
"compilation.modules": {
|
|
382
|
-
modulesSort: (comparators,
|
|
373
|
+
modulesSort: (comparators, _context, { modulesSort }) => {
|
|
383
374
|
comparators.push((0, statsFactoryUtils_1.sortByField)(modulesSort));
|
|
384
375
|
}
|
|
385
376
|
},
|
|
386
377
|
"chunk.modules": {
|
|
387
|
-
chunkModulesSort: (comparators,
|
|
378
|
+
chunkModulesSort: (comparators, _context, { chunkModulesSort }) => {
|
|
388
379
|
comparators.push((0, statsFactoryUtils_1.sortByField)(chunkModulesSort));
|
|
389
380
|
}
|
|
390
381
|
},
|
|
391
382
|
"module.modules": {
|
|
392
|
-
nestedModulesSort: (comparators,
|
|
383
|
+
nestedModulesSort: (comparators, _context, { nestedModulesSort }) => {
|
|
393
384
|
comparators.push((0, statsFactoryUtils_1.sortByField)(nestedModulesSort));
|
|
394
385
|
}
|
|
395
386
|
},
|
|
@@ -840,7 +831,7 @@ const SIMPLE_EXTRACTORS = {
|
|
|
840
831
|
object.auxiliaryChunkIdHints =
|
|
841
832
|
asset.auxiliaryChunkIdHints.filter(Boolean);
|
|
842
833
|
},
|
|
843
|
-
relatedAssets: (object, asset, context,
|
|
834
|
+
relatedAssets: (object, asset, context, _options, factory) => {
|
|
844
835
|
const { type } = context;
|
|
845
836
|
object.related = factory.create(`${type.slice(0, -8)}.related`, asset.related, context);
|
|
846
837
|
object.filteredRelated = asset.related
|
|
@@ -900,7 +891,7 @@ const SIMPLE_EXTRACTORS = {
|
|
|
900
891
|
}
|
|
901
892
|
},
|
|
902
893
|
module$visible: {
|
|
903
|
-
_: (object, module, context,
|
|
894
|
+
_: (object, module, context, _options, factory) => {
|
|
904
895
|
const { type } = context;
|
|
905
896
|
const { commonAttributes } = module;
|
|
906
897
|
if (commonAttributes.moduleDescriptor) {
|
|
@@ -1008,7 +999,7 @@ const SIMPLE_EXTRACTORS = {
|
|
|
1008
999
|
}
|
|
1009
1000
|
},
|
|
1010
1001
|
moduleIssuer: {
|
|
1011
|
-
_: (object, module,
|
|
1002
|
+
_: (object, module, _context, _options, _factory) => {
|
|
1012
1003
|
if (module.moduleDescriptor) {
|
|
1013
1004
|
object.identifier = module.moduleDescriptor.identifier;
|
|
1014
1005
|
object.name = module.moduleDescriptor.name;
|
|
@@ -1077,13 +1068,13 @@ const SIMPLE_EXTRACTORS = {
|
|
|
1077
1068
|
object.modules = limited.children;
|
|
1078
1069
|
object.filteredModules = limited.filteredChildren;
|
|
1079
1070
|
},
|
|
1080
|
-
chunkOrigins: (object, chunk, context,
|
|
1071
|
+
chunkOrigins: (object, chunk, context, _options, factory) => {
|
|
1081
1072
|
const { type } = context;
|
|
1082
1073
|
object.origins = factory.create(`${type}.origins`, chunk.origins, context);
|
|
1083
1074
|
}
|
|
1084
1075
|
},
|
|
1085
1076
|
chunkOrigin: {
|
|
1086
|
-
_: (object, origin,
|
|
1077
|
+
_: (object, origin, _context) => {
|
|
1087
1078
|
const { moduleDescriptor, loc, request } = origin;
|
|
1088
1079
|
const statsChunkOrigin = {
|
|
1089
1080
|
module: moduleDescriptor ? moduleDescriptor.identifier : "",
|
|
@@ -1101,7 +1092,7 @@ const SIMPLE_EXTRACTORS = {
|
|
|
1101
1092
|
error: EXTRACT_ERROR,
|
|
1102
1093
|
warning: EXTRACT_ERROR,
|
|
1103
1094
|
moduleTraceItem: {
|
|
1104
|
-
_: (object, { origin, module },
|
|
1095
|
+
_: (object, { origin, module }, _context, { requestShortener }, _factory) => {
|
|
1105
1096
|
if (origin.moduleDescriptor) {
|
|
1106
1097
|
object.originIdentifier = origin.moduleDescriptor.identifier;
|
|
1107
1098
|
object.originName = origin.moduleDescriptor.name;
|
|
@@ -1134,9 +1125,7 @@ const FILTER_RESULTS = {
|
|
|
1134
1125
|
class DefaultStatsFactoryPlugin {
|
|
1135
1126
|
apply(compiler) {
|
|
1136
1127
|
compiler.hooks.compilation.tap("DefaultStatsFactoryPlugin", compilation => {
|
|
1137
|
-
compilation.hooks.statsFactory.tap("DefaultStatsFactoryPlugin",
|
|
1138
|
-
// @ts-expect-error
|
|
1139
|
-
(stats, options, context) => {
|
|
1128
|
+
compilation.hooks.statsFactory.tap("DefaultStatsFactoryPlugin", (stats, options) => {
|
|
1140
1129
|
(0, statsFactoryUtils_1.iterateConfig)(SIMPLE_EXTRACTORS, options, (hookFor, fn) => {
|
|
1141
1130
|
stats.hooks.extract
|
|
1142
1131
|
.for(hookFor)
|
|
@@ -1002,8 +1002,8 @@ class DefaultStatsPrinterPlugin {
|
|
|
1002
1002
|
start = options.colors[color];
|
|
1003
1003
|
}
|
|
1004
1004
|
else {
|
|
1005
|
-
|
|
1006
|
-
|
|
1005
|
+
start =
|
|
1006
|
+
AVAILABLE_COLORS[color];
|
|
1007
1007
|
}
|
|
1008
1008
|
}
|
|
1009
1009
|
if (start) {
|
|
@@ -1026,9 +1026,7 @@ class DefaultStatsPrinterPlugin {
|
|
|
1026
1026
|
for (const key of Object.keys(SIMPLE_PRINTERS)) {
|
|
1027
1027
|
stats.hooks.print
|
|
1028
1028
|
.for(key)
|
|
1029
|
-
.tap("DefaultStatsPrinterPlugin", (obj, ctx) =>
|
|
1030
|
-
// @ts-expect-error
|
|
1031
|
-
SIMPLE_PRINTERS[key](obj, ctx, stats));
|
|
1029
|
+
.tap("DefaultStatsPrinterPlugin", (obj, ctx) => SIMPLE_PRINTERS[key](obj, ctx, stats));
|
|
1032
1030
|
}
|
|
1033
1031
|
for (const key of Object.keys(PREFERRED_ORDERS)) {
|
|
1034
1032
|
const preferredOrder = PREFERRED_ORDERS[key];
|
|
@@ -25,7 +25,7 @@ type Hooks = Readonly<{
|
|
|
25
25
|
extract: HookMap<SyncBailHook<[Object, any, StatsFactoryContext], undefined>>;
|
|
26
26
|
filter: HookMap<SyncBailHook<[any, StatsFactoryContext, number, number], undefined>>;
|
|
27
27
|
filterSorted: HookMap<SyncBailHook<[any, StatsFactoryContext, number, number], undefined>>;
|
|
28
|
-
groupResults: HookMap<SyncBailHook<[GroupConfig[], StatsFactoryContext], undefined>>;
|
|
28
|
+
groupResults: HookMap<SyncBailHook<[GroupConfig<any>[], StatsFactoryContext], undefined>>;
|
|
29
29
|
filterResults: HookMap<SyncBailHook<[any, StatsFactoryContext, number, number], undefined>>;
|
|
30
30
|
sort: HookMap<SyncBailHook<[
|
|
31
31
|
((arg1: any, arg2: any) => number)[],
|
|
@@ -15,10 +15,7 @@ class StatsFactory {
|
|
|
15
15
|
filter: new lite_tapable_1.HookMap(() => new lite_tapable_1.SyncBailHook(["item", "context", "index", "unfilteredIndex"])),
|
|
16
16
|
sort: new lite_tapable_1.HookMap(() => new lite_tapable_1.SyncBailHook(["comparators", "context"])),
|
|
17
17
|
filterSorted: new lite_tapable_1.HookMap(() => new lite_tapable_1.SyncBailHook(["item", "context", "index", "unfilteredIndex"])),
|
|
18
|
-
groupResults: new lite_tapable_1.HookMap(() => new lite_tapable_1.SyncBailHook([
|
|
19
|
-
"groupConfigs",
|
|
20
|
-
"context"
|
|
21
|
-
])),
|
|
18
|
+
groupResults: new lite_tapable_1.HookMap(() => new lite_tapable_1.SyncBailHook(["groupConfigs", "context"])),
|
|
22
19
|
sortResults: new lite_tapable_1.HookMap(() => new lite_tapable_1.SyncBailHook(["comparators", "context"])),
|
|
23
20
|
filterResults: new lite_tapable_1.HookMap(() => new lite_tapable_1.SyncBailHook(["item", "context", "index", "unfilteredIndex"])),
|
|
24
21
|
merge: new lite_tapable_1.HookMap(() => new lite_tapable_1.SyncBailHook([
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
import type * as binding from "@rspack/binding";
|
|
3
3
|
import type { JsOriginRecord } from "@rspack/binding";
|
|
4
|
-
import type { Compilation
|
|
4
|
+
import type { Compilation } from "../Compilation";
|
|
5
|
+
import type { StatsOptions } from "../config";
|
|
5
6
|
import { type Comparator } from "../util/comparators";
|
|
6
7
|
import type { StatsFactory, StatsFactoryContext } from "./StatsFactory";
|
|
7
8
|
export type KnownStatsChunkGroup = {
|
|
@@ -258,7 +259,7 @@ export type SimpleExtractors = {
|
|
|
258
259
|
};
|
|
259
260
|
export declare const uniqueArray: <T, I>(items: Iterable<T>, selector: (arg: T) => Iterable<I>) => I[];
|
|
260
261
|
export declare const uniqueOrderedArray: <T, I>(items: Iterable<T>, selector: (arg: T) => Iterable<I>, comparator: Comparator) => I[];
|
|
261
|
-
export declare const iterateConfig: (config: Record<string, Record<string, Function>>, options:
|
|
262
|
+
export declare const iterateConfig: (config: Record<string, Record<string, Function>>, options: StatsOptions, fn: (a1: string, a2: Function) => void) => void;
|
|
262
263
|
type Child = {
|
|
263
264
|
children?: ItemChildren;
|
|
264
265
|
filteredChildren?: number;
|
|
@@ -275,7 +276,10 @@ export declare const sortByField: (field: string) => (a1: Object, a2: Object) =>
|
|
|
275
276
|
export declare const assetGroup: (children: StatsAsset[]) => {
|
|
276
277
|
size: number;
|
|
277
278
|
};
|
|
278
|
-
export declare const moduleGroup: (children:
|
|
279
|
+
export declare const moduleGroup: (children: {
|
|
280
|
+
size: number;
|
|
281
|
+
sizes: Record<string, number>;
|
|
282
|
+
}[]) => {
|
|
279
283
|
size: number;
|
|
280
284
|
sizes: Record<string, number>;
|
|
281
285
|
};
|
|
@@ -22,7 +22,9 @@ const iterateConfig = (config, options, fn) => {
|
|
|
22
22
|
for (const option of Object.keys(subConfig)) {
|
|
23
23
|
if (option !== "_") {
|
|
24
24
|
if (option.startsWith("!")) {
|
|
25
|
-
if (
|
|
25
|
+
if (
|
|
26
|
+
// string cannot be used as key, so use "as"
|
|
27
|
+
options[option.slice(1)])
|
|
26
28
|
continue;
|
|
27
29
|
}
|
|
28
30
|
else {
|
|
@@ -157,7 +159,6 @@ const spaceLimited = (itemsAndGroups, max, filteredChildrenLineReserved = false)
|
|
|
157
159
|
}
|
|
158
160
|
for (let i = 0; i < groups.length; i++) {
|
|
159
161
|
if (groupSizes[i] === maxGroupSize) {
|
|
160
|
-
// @ts-expect-error
|
|
161
162
|
const group = groups[i];
|
|
162
163
|
// run this algorithm recursively and limit the size of the children to
|
|
163
164
|
// current size - oversize / number of groups
|
|
@@ -226,13 +227,11 @@ const sortOrderRegular = (field) => {
|
|
|
226
227
|
};
|
|
227
228
|
const sortByField = (field) => {
|
|
228
229
|
if (!field) {
|
|
229
|
-
const noSort = (
|
|
230
|
+
const noSort = (_a, _b) => 0;
|
|
230
231
|
return noSort;
|
|
231
232
|
}
|
|
232
233
|
const fieldKey = normalizeFieldKey(field);
|
|
233
|
-
let sortFn = (0, comparators_1.compareSelect)((m) => m[fieldKey],
|
|
234
|
-
// @ts-expect-error
|
|
235
|
-
comparators_1.compareIds);
|
|
234
|
+
let sortFn = (0, comparators_1.compareSelect)((m) => m[fieldKey], comparators_1.compareIds);
|
|
236
235
|
// if a field is prefixed with a "!" the sort is reversed!
|
|
237
236
|
const sortIsRegular = sortOrderRegular(field);
|
|
238
237
|
if (!sortIsRegular) {
|
|
@@ -12,9 +12,9 @@ import type { ChunkGroup } from "../ChunkGroup";
|
|
|
12
12
|
export type Comparator = <T>(arg0: T, arg1: T) => -1 | 0 | 1;
|
|
13
13
|
type Selector<A, B> = (input: A) => B;
|
|
14
14
|
export declare const concatComparators: (...comps: Array<Comparator>) => Comparator;
|
|
15
|
-
export declare const compareIds:
|
|
15
|
+
export declare const compareIds: <T = string | number>(a: T, b: T) => -1 | 0 | 1;
|
|
16
16
|
export declare const compareChunksById: (a: Chunk, b: Chunk) => -1 | 0 | 1;
|
|
17
17
|
export declare const compareChunkGroupsByIndex: (a: ChunkGroup, b: ChunkGroup) => -1 | 0 | 1;
|
|
18
18
|
export declare const compareSelect: <T, R>(getter: Selector<T, R>, comparator: Comparator) => Comparator;
|
|
19
|
-
export declare const compareNumbers: (a: number, b: number) =>
|
|
19
|
+
export declare const compareNumbers: (a: number, b: number) => 0 | 1 | -1;
|
|
20
20
|
export {};
|
|
@@ -12,10 +12,10 @@ type GroupOptions = {
|
|
|
12
12
|
force?: boolean | undefined;
|
|
13
13
|
targetGroupCount?: number | undefined;
|
|
14
14
|
};
|
|
15
|
-
export type GroupConfig = {
|
|
15
|
+
export type GroupConfig<T, R = T> = {
|
|
16
16
|
getKeys: (arg0: any) => string[] | undefined;
|
|
17
|
-
createGroup:
|
|
18
|
-
getOptions?: (
|
|
17
|
+
createGroup: (key: string, arg1: (T | R)[], arg2: T[]) => R;
|
|
18
|
+
getOptions?: ((key: string, arg1: T[]) => GroupOptions) | undefined;
|
|
19
19
|
};
|
|
20
|
-
export declare const smartGrouping: <T, R>(items: T[], groupConfigs: GroupConfig[]) => (T | R)[];
|
|
20
|
+
export declare const smartGrouping: <T, R>(items: T[], groupConfigs: GroupConfig<T, R>[]) => (T | R)[];
|
|
21
21
|
export {};
|
package/dist/util/source.d.ts
CHANGED
|
@@ -1,18 +1,7 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
1
|
import type { JsCompatSource } from "@rspack/binding";
|
|
3
2
|
import { Source } from "../../compiled/webpack-sources";
|
|
4
3
|
declare class JsSource extends Source {
|
|
5
4
|
static __from_binding(source: JsCompatSource): Source;
|
|
6
|
-
static __to_binding(source: Source):
|
|
7
|
-
source: Buffer;
|
|
8
|
-
isRaw: boolean;
|
|
9
|
-
isBuffer: boolean;
|
|
10
|
-
map?: undefined;
|
|
11
|
-
} | {
|
|
12
|
-
source: Buffer;
|
|
13
|
-
map: Buffer;
|
|
14
|
-
isRaw: boolean;
|
|
15
|
-
isBuffer: boolean;
|
|
16
|
-
};
|
|
5
|
+
static __to_binding(source: Source): JsCompatSource;
|
|
17
6
|
}
|
|
18
7
|
export { JsSource };
|
package/dist/util/source.js
CHANGED
|
@@ -2,65 +2,41 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.JsSource = void 0;
|
|
4
4
|
const webpack_sources_1 = require("../../compiled/webpack-sources");
|
|
5
|
-
const index_1 = require("./index");
|
|
6
5
|
class JsSource extends webpack_sources_1.Source {
|
|
7
6
|
static __from_binding(source) {
|
|
8
|
-
if (source.
|
|
9
|
-
|
|
10
|
-
//
|
|
11
|
-
|
|
7
|
+
if (source.source instanceof Buffer) {
|
|
8
|
+
// @ts-expect-error: webpack-sources can accept buffer as source,
|
|
9
|
+
// see: https://github.com/webpack/webpack-sources/blob/9f98066311d53a153fdc7c633422a1d086528027/lib/RawSource.js#L12
|
|
10
|
+
return new webpack_sources_1.RawSource(source.source);
|
|
12
11
|
}
|
|
13
12
|
if (!source.map) {
|
|
14
|
-
return new webpack_sources_1.RawSource(source.source
|
|
13
|
+
return new webpack_sources_1.RawSource(source.source);
|
|
15
14
|
}
|
|
16
|
-
return new webpack_sources_1.
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
buffer() {
|
|
21
|
-
return source.source;
|
|
22
|
-
},
|
|
23
|
-
map(_) {
|
|
24
|
-
if (source.map) {
|
|
25
|
-
return JSON.parse(source.map.toString("utf-8"));
|
|
26
|
-
}
|
|
27
|
-
return null;
|
|
28
|
-
}
|
|
29
|
-
});
|
|
15
|
+
return new webpack_sources_1.SourceMapSource(source.source, "inmemory://from rust",
|
|
16
|
+
// @ts-expect-error: SourceMapSource can accept string as source map,
|
|
17
|
+
// see: https://github.com/webpack/webpack-sources/blob/9f98066311d53a153fdc7c633422a1d086528027/lib/SourceMapSource.js#L30
|
|
18
|
+
source.map);
|
|
30
19
|
}
|
|
31
20
|
static __to_binding(source) {
|
|
32
|
-
const sourceSource = source.source();
|
|
33
|
-
const isBuffer = Buffer.isBuffer(sourceSource);
|
|
34
21
|
if (source instanceof webpack_sources_1.RawSource) {
|
|
22
|
+
// @ts-expect-error: The 'isBuffer' method exists on 'RawSource' in 'webpack-sources',
|
|
23
|
+
if (source.isBuffer()) {
|
|
24
|
+
return {
|
|
25
|
+
source: source.buffer()
|
|
26
|
+
};
|
|
27
|
+
}
|
|
35
28
|
return {
|
|
36
|
-
source: source.
|
|
37
|
-
isRaw: true,
|
|
38
|
-
isBuffer
|
|
29
|
+
source: source.source()
|
|
39
30
|
};
|
|
40
31
|
}
|
|
41
|
-
const buffer = source.buffer?.() ??
|
|
42
|
-
(isBuffer
|
|
43
|
-
? sourceSource
|
|
44
|
-
: sourceSource instanceof ArrayBuffer
|
|
45
|
-
? arrayBufferToBuffer(sourceSource)
|
|
46
|
-
: Buffer.from(sourceSource));
|
|
47
32
|
const map = JSON.stringify(source.map?.({
|
|
48
33
|
columns: true
|
|
49
34
|
}));
|
|
35
|
+
const code = source.source();
|
|
50
36
|
return {
|
|
51
|
-
source:
|
|
52
|
-
map
|
|
53
|
-
isRaw: false,
|
|
54
|
-
isBuffer
|
|
37
|
+
source: typeof code === "string" ? code : Buffer.from(code).toString("utf-8"),
|
|
38
|
+
map
|
|
55
39
|
};
|
|
56
40
|
}
|
|
57
41
|
}
|
|
58
42
|
exports.JsSource = JsSource;
|
|
59
|
-
function arrayBufferToBuffer(ab) {
|
|
60
|
-
const buf = Buffer.alloc(ab.byteLength);
|
|
61
|
-
const view = new Uint8Array(ab);
|
|
62
|
-
for (let i = 0; i < buf.length; ++i) {
|
|
63
|
-
buf[i] = view[i];
|
|
64
|
-
}
|
|
65
|
-
return buf;
|
|
66
|
-
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rspack/core",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.6",
|
|
4
4
|
"webpackVersion": "5.75.0",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"description": "The fast Rust-based web bundler with webpack-compatible API",
|
|
@@ -60,7 +60,7 @@
|
|
|
60
60
|
"@module-federation/runtime-tools": "0.5.1",
|
|
61
61
|
"@rspack/lite-tapable": "1.0.0",
|
|
62
62
|
"caniuse-lite": "^1.0.30001616",
|
|
63
|
-
"@rspack/binding": "1.0.
|
|
63
|
+
"@rspack/binding": "1.0.6"
|
|
64
64
|
},
|
|
65
65
|
"peerDependencies": {
|
|
66
66
|
"@swc/helpers": ">=0.5.1"
|