rollup 3.19.1 → 3.20.1
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/bin/rollup +2 -2
- package/dist/es/rollup.js +2 -2
- package/dist/es/shared/node-entry.js +74 -28
- package/dist/es/shared/watch.js +2 -2
- package/dist/loadConfigFile.js +2 -2
- package/dist/rollup.js +2 -2
- package/dist/shared/fsevents-importer.js +2 -2
- package/dist/shared/index.js +2 -2
- package/dist/shared/loadConfigFile.js +2 -2
- package/dist/shared/rollup.js +74 -28
- package/dist/shared/watch-cli.js +2 -2
- package/dist/shared/watch-proxy.js +2 -2
- package/dist/shared/watch.js +2 -2
- package/package.json +1 -1
package/dist/bin/rollup
CHANGED
package/dist/es/rollup.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/*
|
|
2
2
|
@license
|
|
3
|
-
Rollup.js v3.
|
|
4
|
-
|
|
3
|
+
Rollup.js v3.20.1
|
|
4
|
+
Thu, 23 Mar 2023 08:52:57 GMT - commit 75c5113e24f5857abf845776423f55f70b8d1c13
|
|
5
5
|
|
|
6
6
|
https://github.com/rollup/rollup
|
|
7
7
|
|
|
@@ -16,7 +16,7 @@ import { lstat, realpath, readdir, readFile, mkdir, writeFile } from 'node:fs/pr
|
|
|
16
16
|
import { EventEmitter } from 'node:events';
|
|
17
17
|
import * as tty from 'tty';
|
|
18
18
|
|
|
19
|
-
var version$1 = "3.
|
|
19
|
+
var version$1 = "3.20.1";
|
|
20
20
|
|
|
21
21
|
const comma = ','.charCodeAt(0);
|
|
22
22
|
const semicolon = ';'.charCodeAt(0);
|
|
@@ -15278,7 +15278,7 @@ class Chunk {
|
|
|
15278
15278
|
const chunkModules = new Set(orderedModules);
|
|
15279
15279
|
for (const module of orderedModules) {
|
|
15280
15280
|
chunkByModule.set(module, this);
|
|
15281
|
-
if (module.namespace.included) {
|
|
15281
|
+
if (module.namespace.included && !outputOptions.preserveModules) {
|
|
15282
15282
|
includedNamespaces.add(module);
|
|
15283
15283
|
}
|
|
15284
15284
|
if (this.isEmpty && module.isIncluded()) {
|
|
@@ -15291,7 +15291,7 @@ class Chunk {
|
|
|
15291
15291
|
if (!chunkModules.has(importer)) {
|
|
15292
15292
|
this.dynamicEntryModules.push(module);
|
|
15293
15293
|
// Modules with synthetic exports need an artificial namespace for dynamic imports
|
|
15294
|
-
if (module.info.syntheticNamedExports
|
|
15294
|
+
if (module.info.syntheticNamedExports) {
|
|
15295
15295
|
includedNamespaces.add(module);
|
|
15296
15296
|
this.exports.add(module.namespace);
|
|
15297
15297
|
}
|
|
@@ -15407,12 +15407,11 @@ class Chunk {
|
|
|
15407
15407
|
requiredFacades.push({});
|
|
15408
15408
|
}
|
|
15409
15409
|
if (!this.facadeModule) {
|
|
15410
|
-
const needsStrictFacade =
|
|
15411
|
-
(module.preserveSignature === '
|
|
15412
|
-
module.
|
|
15413
|
-
|
|
15414
|
-
|
|
15415
|
-
this.canModuleBeFacade(module, exposedVariables)) {
|
|
15410
|
+
const needsStrictFacade = !this.outputOptions.preserveModules &&
|
|
15411
|
+
(module.preserveSignature === 'strict' ||
|
|
15412
|
+
(module.preserveSignature === 'exports-only' &&
|
|
15413
|
+
module.getExportNamesByVariable().size > 0));
|
|
15414
|
+
if (!needsStrictFacade || this.canModuleBeFacade(module, exposedVariables)) {
|
|
15416
15415
|
this.facadeModule = module;
|
|
15417
15416
|
this.facadeChunkByModule.set(module, this);
|
|
15418
15417
|
if (module.preserveSignature) {
|
|
@@ -16000,7 +15999,7 @@ class Chunk {
|
|
|
16000
15999
|
// This method changes properties on the AST before rendering and must not be async
|
|
16001
16000
|
renderModules(fileName) {
|
|
16002
16001
|
const { accessedGlobalsByScope, dependencies, exportNamesByVariable, includedNamespaces, inputOptions: { onwarn }, isEmpty, orderedModules, outputOptions, pluginDriver, renderedModules, snippets } = this;
|
|
16003
|
-
const { compact, dynamicImportFunction, format, freeze, namespaceToStringTag
|
|
16002
|
+
const { compact, dynamicImportFunction, format, freeze, namespaceToStringTag } = outputOptions;
|
|
16004
16003
|
const { _, cnst, n } = snippets;
|
|
16005
16004
|
this.setDynamicImportResolutions(fileName);
|
|
16006
16005
|
this.setImportMetaResolutions(fileName);
|
|
@@ -16039,7 +16038,7 @@ class Chunk {
|
|
|
16039
16038
|
usedModules.push(module);
|
|
16040
16039
|
}
|
|
16041
16040
|
const namespace = module.namespace;
|
|
16042
|
-
if (includedNamespaces.has(module)
|
|
16041
|
+
if (includedNamespaces.has(module)) {
|
|
16043
16042
|
const rendered = namespace.renderBlock(renderOptions);
|
|
16044
16043
|
if (namespace.renderFirst())
|
|
16045
16044
|
hoistedSource += n + rendered;
|
|
@@ -16148,12 +16147,12 @@ class Chunk {
|
|
|
16148
16147
|
deconflictChunk(this.orderedModules, this.getDependenciesToBeDeconflicted(format !== 'es' && format !== 'system', format === 'amd' || format === 'umd' || format === 'iife', interop), this.imports, usedNames, format, interop, preserveModules, externalLiveBindings, this.chunkByModule, this.externalChunkByModule, syntheticExports, this.exportNamesByVariable, this.accessedGlobalsByScope, this.includedNamespaces);
|
|
16149
16148
|
}
|
|
16150
16149
|
setImportMetaResolutions(fileName) {
|
|
16151
|
-
const { accessedGlobalsByScope, includedNamespaces, orderedModules, outputOptions: { format
|
|
16150
|
+
const { accessedGlobalsByScope, includedNamespaces, orderedModules, outputOptions: { format } } = this;
|
|
16152
16151
|
for (const module of orderedModules) {
|
|
16153
16152
|
for (const importMeta of module.importMetas) {
|
|
16154
16153
|
importMeta.setResolution(format, accessedGlobalsByScope, fileName);
|
|
16155
16154
|
}
|
|
16156
|
-
if (includedNamespaces.has(module)
|
|
16155
|
+
if (includedNamespaces.has(module)) {
|
|
16157
16156
|
module.namespace.prepare(accessedGlobalsByScope);
|
|
16158
16157
|
}
|
|
16159
16158
|
}
|
|
@@ -23982,12 +23981,12 @@ class FileEmitter {
|
|
|
23982
23981
|
}
|
|
23983
23982
|
const source = getValidSource(requestedSource, consumedFile, referenceId);
|
|
23984
23983
|
if (this.output) {
|
|
23985
|
-
this.
|
|
23984
|
+
this.finalizeAdditionalAsset(consumedFile, source, this.output);
|
|
23986
23985
|
}
|
|
23987
23986
|
else {
|
|
23988
23987
|
consumedFile.source = source;
|
|
23989
23988
|
for (const emitter of this.outputFileEmitters) {
|
|
23990
|
-
emitter.
|
|
23989
|
+
emitter.finalizeAdditionalAsset(consumedFile, source, emitter.output);
|
|
23991
23990
|
}
|
|
23992
23991
|
}
|
|
23993
23992
|
};
|
|
@@ -24005,11 +24004,21 @@ class FileEmitter {
|
|
|
24005
24004
|
reserveFileNameInBundle(emittedFile.fileName, output, this.options.onwarn);
|
|
24006
24005
|
}
|
|
24007
24006
|
}
|
|
24008
|
-
|
|
24007
|
+
const consumedAssetsByHash = new Map();
|
|
24008
|
+
for (const consumedFile of this.filesByReferenceId.values()) {
|
|
24009
24009
|
if (consumedFile.type === 'asset' && consumedFile.source !== undefined) {
|
|
24010
|
-
|
|
24010
|
+
if (consumedFile.fileName) {
|
|
24011
|
+
this.finalizeAdditionalAsset(consumedFile, consumedFile.source, output);
|
|
24012
|
+
}
|
|
24013
|
+
else {
|
|
24014
|
+
const sourceHash = getSourceHash(consumedFile.source);
|
|
24015
|
+
getOrCreate(consumedAssetsByHash, sourceHash, () => []).push(consumedFile);
|
|
24016
|
+
}
|
|
24011
24017
|
}
|
|
24012
24018
|
}
|
|
24019
|
+
for (const [sourceHash, consumedFiles] of consumedAssetsByHash) {
|
|
24020
|
+
this.finalizeAssetsWithSameSource(consumedFiles, sourceHash, output);
|
|
24021
|
+
}
|
|
24013
24022
|
};
|
|
24014
24023
|
this.filesByReferenceId = baseFileEmitter
|
|
24015
24024
|
? new Map(baseFileEmitter.filesByReferenceId)
|
|
@@ -24025,6 +24034,7 @@ class FileEmitter {
|
|
|
24025
24034
|
referenceId = createHash().update(referenceId).digest('hex').slice(0, 8);
|
|
24026
24035
|
} while (this.filesByReferenceId.has(referenceId) ||
|
|
24027
24036
|
this.outputFileEmitters.some(({ filesByReferenceId }) => filesByReferenceId.has(referenceId)));
|
|
24037
|
+
file.referenceId = referenceId;
|
|
24028
24038
|
this.filesByReferenceId.set(referenceId, file);
|
|
24029
24039
|
for (const { filesByReferenceId } of this.outputFileEmitters) {
|
|
24030
24040
|
filesByReferenceId.set(referenceId, file);
|
|
@@ -24039,27 +24049,28 @@ class FileEmitter {
|
|
|
24039
24049
|
fileName: emittedAsset.fileName,
|
|
24040
24050
|
name: emittedAsset.name,
|
|
24041
24051
|
needsCodeReference: !!emittedAsset.needsCodeReference,
|
|
24052
|
+
referenceId: '',
|
|
24042
24053
|
source,
|
|
24043
24054
|
type: 'asset'
|
|
24044
24055
|
};
|
|
24045
24056
|
const referenceId = this.assignReferenceId(consumedAsset, emittedAsset.fileName || emittedAsset.name || String(this.nextIdBase++));
|
|
24046
24057
|
if (this.output) {
|
|
24047
|
-
this.emitAssetWithReferenceId(consumedAsset,
|
|
24058
|
+
this.emitAssetWithReferenceId(consumedAsset, this.output);
|
|
24048
24059
|
}
|
|
24049
24060
|
else {
|
|
24050
24061
|
for (const fileEmitter of this.outputFileEmitters) {
|
|
24051
|
-
fileEmitter.emitAssetWithReferenceId(consumedAsset,
|
|
24062
|
+
fileEmitter.emitAssetWithReferenceId(consumedAsset, fileEmitter.output);
|
|
24052
24063
|
}
|
|
24053
24064
|
}
|
|
24054
24065
|
return referenceId;
|
|
24055
24066
|
}
|
|
24056
|
-
emitAssetWithReferenceId(consumedAsset,
|
|
24067
|
+
emitAssetWithReferenceId(consumedAsset, output) {
|
|
24057
24068
|
const { fileName, source } = consumedAsset;
|
|
24058
24069
|
if (fileName) {
|
|
24059
24070
|
reserveFileNameInBundle(fileName, output, this.options.onwarn);
|
|
24060
24071
|
}
|
|
24061
24072
|
if (source !== undefined) {
|
|
24062
|
-
this.
|
|
24073
|
+
this.finalizeAdditionalAsset(consumedAsset, source, output);
|
|
24063
24074
|
}
|
|
24064
24075
|
}
|
|
24065
24076
|
emitChunk(emittedChunk) {
|
|
@@ -24073,6 +24084,7 @@ class FileEmitter {
|
|
|
24073
24084
|
fileName: emittedChunk.fileName,
|
|
24074
24085
|
module: null,
|
|
24075
24086
|
name: emittedChunk.name || emittedChunk.id,
|
|
24087
|
+
referenceId: '',
|
|
24076
24088
|
type: 'chunk'
|
|
24077
24089
|
};
|
|
24078
24090
|
this.graph.moduleLoader
|
|
@@ -24084,8 +24096,8 @@ class FileEmitter {
|
|
|
24084
24096
|
});
|
|
24085
24097
|
return this.assignReferenceId(consumedChunk, emittedChunk.id);
|
|
24086
24098
|
}
|
|
24087
|
-
|
|
24088
|
-
let fileName = consumedFile
|
|
24099
|
+
finalizeAdditionalAsset(consumedFile, source, { bundle, fileNamesBySource, outputOptions }) {
|
|
24100
|
+
let { fileName, needsCodeReference, referenceId } = consumedFile;
|
|
24089
24101
|
// Deduplicate assets if an explicit fileName is not provided
|
|
24090
24102
|
if (!fileName) {
|
|
24091
24103
|
const sourceHash = getSourceHash(source);
|
|
@@ -24098,11 +24110,45 @@ class FileEmitter {
|
|
|
24098
24110
|
// We must not modify the original assets to avoid interaction between outputs
|
|
24099
24111
|
const assetWithFileName = { ...consumedFile, fileName, source };
|
|
24100
24112
|
this.filesByReferenceId.set(referenceId, assetWithFileName);
|
|
24113
|
+
const existingAsset = bundle[fileName];
|
|
24114
|
+
if (existingAsset?.type === 'asset') {
|
|
24115
|
+
existingAsset.needsCodeReference && (existingAsset.needsCodeReference = needsCodeReference);
|
|
24116
|
+
}
|
|
24117
|
+
else {
|
|
24118
|
+
bundle[fileName] = {
|
|
24119
|
+
fileName,
|
|
24120
|
+
name: consumedFile.name,
|
|
24121
|
+
needsCodeReference,
|
|
24122
|
+
source,
|
|
24123
|
+
type: 'asset'
|
|
24124
|
+
};
|
|
24125
|
+
}
|
|
24126
|
+
}
|
|
24127
|
+
finalizeAssetsWithSameSource(consumedFiles, sourceHash, { bundle, fileNamesBySource, outputOptions }) {
|
|
24128
|
+
let fileName = '';
|
|
24129
|
+
let usedConsumedFile;
|
|
24130
|
+
let needsCodeReference = true;
|
|
24131
|
+
for (const consumedFile of consumedFiles) {
|
|
24132
|
+
needsCodeReference && (needsCodeReference = consumedFile.needsCodeReference);
|
|
24133
|
+
const assetFileName = generateAssetFileName(consumedFile.name, consumedFile.source, sourceHash, outputOptions, bundle);
|
|
24134
|
+
if (!fileName ||
|
|
24135
|
+
assetFileName.length < fileName.length ||
|
|
24136
|
+
(assetFileName.length === fileName.length && assetFileName < fileName)) {
|
|
24137
|
+
fileName = assetFileName;
|
|
24138
|
+
usedConsumedFile = consumedFile;
|
|
24139
|
+
}
|
|
24140
|
+
}
|
|
24141
|
+
fileNamesBySource.set(sourceHash, fileName);
|
|
24142
|
+
for (const consumedFile of consumedFiles) {
|
|
24143
|
+
// We must not modify the original assets to avoid interaction between outputs
|
|
24144
|
+
const assetWithFileName = { ...consumedFile, fileName };
|
|
24145
|
+
this.filesByReferenceId.set(consumedFile.referenceId, assetWithFileName);
|
|
24146
|
+
}
|
|
24101
24147
|
bundle[fileName] = {
|
|
24102
24148
|
fileName,
|
|
24103
|
-
name:
|
|
24104
|
-
needsCodeReference
|
|
24105
|
-
source,
|
|
24149
|
+
name: usedConsumedFile.name,
|
|
24150
|
+
needsCodeReference,
|
|
24151
|
+
source: usedConsumedFile.source,
|
|
24106
24152
|
type: 'asset'
|
|
24107
24153
|
};
|
|
24108
24154
|
}
|
package/dist/es/shared/watch.js
CHANGED
package/dist/loadConfigFile.js
CHANGED
package/dist/rollup.js
CHANGED
package/dist/shared/index.js
CHANGED
package/dist/shared/rollup.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/*
|
|
2
2
|
@license
|
|
3
|
-
Rollup.js v3.
|
|
4
|
-
|
|
3
|
+
Rollup.js v3.20.1
|
|
4
|
+
Thu, 23 Mar 2023 08:52:57 GMT - commit 75c5113e24f5857abf845776423f55f70b8d1c13
|
|
5
5
|
|
|
6
6
|
https://github.com/rollup/rollup
|
|
7
7
|
|
|
@@ -31,7 +31,7 @@ function _interopNamespaceDefault(e) {
|
|
|
31
31
|
|
|
32
32
|
const tty__namespace = /*#__PURE__*/_interopNamespaceDefault(tty);
|
|
33
33
|
|
|
34
|
-
var version$1 = "3.
|
|
34
|
+
var version$1 = "3.20.1";
|
|
35
35
|
|
|
36
36
|
function ensureArray$1(items) {
|
|
37
37
|
if (Array.isArray(items)) {
|
|
@@ -15776,7 +15776,7 @@ class Chunk {
|
|
|
15776
15776
|
const chunkModules = new Set(orderedModules);
|
|
15777
15777
|
for (const module of orderedModules) {
|
|
15778
15778
|
chunkByModule.set(module, this);
|
|
15779
|
-
if (module.namespace.included) {
|
|
15779
|
+
if (module.namespace.included && !outputOptions.preserveModules) {
|
|
15780
15780
|
includedNamespaces.add(module);
|
|
15781
15781
|
}
|
|
15782
15782
|
if (this.isEmpty && module.isIncluded()) {
|
|
@@ -15789,7 +15789,7 @@ class Chunk {
|
|
|
15789
15789
|
if (!chunkModules.has(importer)) {
|
|
15790
15790
|
this.dynamicEntryModules.push(module);
|
|
15791
15791
|
// Modules with synthetic exports need an artificial namespace for dynamic imports
|
|
15792
|
-
if (module.info.syntheticNamedExports
|
|
15792
|
+
if (module.info.syntheticNamedExports) {
|
|
15793
15793
|
includedNamespaces.add(module);
|
|
15794
15794
|
this.exports.add(module.namespace);
|
|
15795
15795
|
}
|
|
@@ -15905,12 +15905,11 @@ class Chunk {
|
|
|
15905
15905
|
requiredFacades.push({});
|
|
15906
15906
|
}
|
|
15907
15907
|
if (!this.facadeModule) {
|
|
15908
|
-
const needsStrictFacade =
|
|
15909
|
-
(module.preserveSignature === '
|
|
15910
|
-
module.
|
|
15911
|
-
|
|
15912
|
-
|
|
15913
|
-
this.canModuleBeFacade(module, exposedVariables)) {
|
|
15908
|
+
const needsStrictFacade = !this.outputOptions.preserveModules &&
|
|
15909
|
+
(module.preserveSignature === 'strict' ||
|
|
15910
|
+
(module.preserveSignature === 'exports-only' &&
|
|
15911
|
+
module.getExportNamesByVariable().size > 0));
|
|
15912
|
+
if (!needsStrictFacade || this.canModuleBeFacade(module, exposedVariables)) {
|
|
15914
15913
|
this.facadeModule = module;
|
|
15915
15914
|
this.facadeChunkByModule.set(module, this);
|
|
15916
15915
|
if (module.preserveSignature) {
|
|
@@ -16498,7 +16497,7 @@ class Chunk {
|
|
|
16498
16497
|
// This method changes properties on the AST before rendering and must not be async
|
|
16499
16498
|
renderModules(fileName) {
|
|
16500
16499
|
const { accessedGlobalsByScope, dependencies, exportNamesByVariable, includedNamespaces, inputOptions: { onwarn }, isEmpty, orderedModules, outputOptions, pluginDriver, renderedModules, snippets } = this;
|
|
16501
|
-
const { compact, dynamicImportFunction, format, freeze, namespaceToStringTag
|
|
16500
|
+
const { compact, dynamicImportFunction, format, freeze, namespaceToStringTag } = outputOptions;
|
|
16502
16501
|
const { _, cnst, n } = snippets;
|
|
16503
16502
|
this.setDynamicImportResolutions(fileName);
|
|
16504
16503
|
this.setImportMetaResolutions(fileName);
|
|
@@ -16537,7 +16536,7 @@ class Chunk {
|
|
|
16537
16536
|
usedModules.push(module);
|
|
16538
16537
|
}
|
|
16539
16538
|
const namespace = module.namespace;
|
|
16540
|
-
if (includedNamespaces.has(module)
|
|
16539
|
+
if (includedNamespaces.has(module)) {
|
|
16541
16540
|
const rendered = namespace.renderBlock(renderOptions);
|
|
16542
16541
|
if (namespace.renderFirst())
|
|
16543
16542
|
hoistedSource += n + rendered;
|
|
@@ -16646,12 +16645,12 @@ class Chunk {
|
|
|
16646
16645
|
deconflictChunk(this.orderedModules, this.getDependenciesToBeDeconflicted(format !== 'es' && format !== 'system', format === 'amd' || format === 'umd' || format === 'iife', interop), this.imports, usedNames, format, interop, preserveModules, externalLiveBindings, this.chunkByModule, this.externalChunkByModule, syntheticExports, this.exportNamesByVariable, this.accessedGlobalsByScope, this.includedNamespaces);
|
|
16647
16646
|
}
|
|
16648
16647
|
setImportMetaResolutions(fileName) {
|
|
16649
|
-
const { accessedGlobalsByScope, includedNamespaces, orderedModules, outputOptions: { format
|
|
16648
|
+
const { accessedGlobalsByScope, includedNamespaces, orderedModules, outputOptions: { format } } = this;
|
|
16650
16649
|
for (const module of orderedModules) {
|
|
16651
16650
|
for (const importMeta of module.importMetas) {
|
|
16652
16651
|
importMeta.setResolution(format, accessedGlobalsByScope, fileName);
|
|
16653
16652
|
}
|
|
16654
|
-
if (includedNamespaces.has(module)
|
|
16653
|
+
if (includedNamespaces.has(module)) {
|
|
16655
16654
|
module.namespace.prepare(accessedGlobalsByScope);
|
|
16656
16655
|
}
|
|
16657
16656
|
}
|
|
@@ -24480,12 +24479,12 @@ class FileEmitter {
|
|
|
24480
24479
|
}
|
|
24481
24480
|
const source = getValidSource(requestedSource, consumedFile, referenceId);
|
|
24482
24481
|
if (this.output) {
|
|
24483
|
-
this.
|
|
24482
|
+
this.finalizeAdditionalAsset(consumedFile, source, this.output);
|
|
24484
24483
|
}
|
|
24485
24484
|
else {
|
|
24486
24485
|
consumedFile.source = source;
|
|
24487
24486
|
for (const emitter of this.outputFileEmitters) {
|
|
24488
|
-
emitter.
|
|
24487
|
+
emitter.finalizeAdditionalAsset(consumedFile, source, emitter.output);
|
|
24489
24488
|
}
|
|
24490
24489
|
}
|
|
24491
24490
|
};
|
|
@@ -24503,11 +24502,21 @@ class FileEmitter {
|
|
|
24503
24502
|
reserveFileNameInBundle(emittedFile.fileName, output, this.options.onwarn);
|
|
24504
24503
|
}
|
|
24505
24504
|
}
|
|
24506
|
-
|
|
24505
|
+
const consumedAssetsByHash = new Map();
|
|
24506
|
+
for (const consumedFile of this.filesByReferenceId.values()) {
|
|
24507
24507
|
if (consumedFile.type === 'asset' && consumedFile.source !== undefined) {
|
|
24508
|
-
|
|
24508
|
+
if (consumedFile.fileName) {
|
|
24509
|
+
this.finalizeAdditionalAsset(consumedFile, consumedFile.source, output);
|
|
24510
|
+
}
|
|
24511
|
+
else {
|
|
24512
|
+
const sourceHash = getSourceHash(consumedFile.source);
|
|
24513
|
+
getOrCreate(consumedAssetsByHash, sourceHash, () => []).push(consumedFile);
|
|
24514
|
+
}
|
|
24509
24515
|
}
|
|
24510
24516
|
}
|
|
24517
|
+
for (const [sourceHash, consumedFiles] of consumedAssetsByHash) {
|
|
24518
|
+
this.finalizeAssetsWithSameSource(consumedFiles, sourceHash, output);
|
|
24519
|
+
}
|
|
24511
24520
|
};
|
|
24512
24521
|
this.filesByReferenceId = baseFileEmitter
|
|
24513
24522
|
? new Map(baseFileEmitter.filesByReferenceId)
|
|
@@ -24523,6 +24532,7 @@ class FileEmitter {
|
|
|
24523
24532
|
referenceId = createHash().update(referenceId).digest('hex').slice(0, 8);
|
|
24524
24533
|
} while (this.filesByReferenceId.has(referenceId) ||
|
|
24525
24534
|
this.outputFileEmitters.some(({ filesByReferenceId }) => filesByReferenceId.has(referenceId)));
|
|
24535
|
+
file.referenceId = referenceId;
|
|
24526
24536
|
this.filesByReferenceId.set(referenceId, file);
|
|
24527
24537
|
for (const { filesByReferenceId } of this.outputFileEmitters) {
|
|
24528
24538
|
filesByReferenceId.set(referenceId, file);
|
|
@@ -24537,27 +24547,28 @@ class FileEmitter {
|
|
|
24537
24547
|
fileName: emittedAsset.fileName,
|
|
24538
24548
|
name: emittedAsset.name,
|
|
24539
24549
|
needsCodeReference: !!emittedAsset.needsCodeReference,
|
|
24550
|
+
referenceId: '',
|
|
24540
24551
|
source,
|
|
24541
24552
|
type: 'asset'
|
|
24542
24553
|
};
|
|
24543
24554
|
const referenceId = this.assignReferenceId(consumedAsset, emittedAsset.fileName || emittedAsset.name || String(this.nextIdBase++));
|
|
24544
24555
|
if (this.output) {
|
|
24545
|
-
this.emitAssetWithReferenceId(consumedAsset,
|
|
24556
|
+
this.emitAssetWithReferenceId(consumedAsset, this.output);
|
|
24546
24557
|
}
|
|
24547
24558
|
else {
|
|
24548
24559
|
for (const fileEmitter of this.outputFileEmitters) {
|
|
24549
|
-
fileEmitter.emitAssetWithReferenceId(consumedAsset,
|
|
24560
|
+
fileEmitter.emitAssetWithReferenceId(consumedAsset, fileEmitter.output);
|
|
24550
24561
|
}
|
|
24551
24562
|
}
|
|
24552
24563
|
return referenceId;
|
|
24553
24564
|
}
|
|
24554
|
-
emitAssetWithReferenceId(consumedAsset,
|
|
24565
|
+
emitAssetWithReferenceId(consumedAsset, output) {
|
|
24555
24566
|
const { fileName, source } = consumedAsset;
|
|
24556
24567
|
if (fileName) {
|
|
24557
24568
|
reserveFileNameInBundle(fileName, output, this.options.onwarn);
|
|
24558
24569
|
}
|
|
24559
24570
|
if (source !== undefined) {
|
|
24560
|
-
this.
|
|
24571
|
+
this.finalizeAdditionalAsset(consumedAsset, source, output);
|
|
24561
24572
|
}
|
|
24562
24573
|
}
|
|
24563
24574
|
emitChunk(emittedChunk) {
|
|
@@ -24571,6 +24582,7 @@ class FileEmitter {
|
|
|
24571
24582
|
fileName: emittedChunk.fileName,
|
|
24572
24583
|
module: null,
|
|
24573
24584
|
name: emittedChunk.name || emittedChunk.id,
|
|
24585
|
+
referenceId: '',
|
|
24574
24586
|
type: 'chunk'
|
|
24575
24587
|
};
|
|
24576
24588
|
this.graph.moduleLoader
|
|
@@ -24582,8 +24594,8 @@ class FileEmitter {
|
|
|
24582
24594
|
});
|
|
24583
24595
|
return this.assignReferenceId(consumedChunk, emittedChunk.id);
|
|
24584
24596
|
}
|
|
24585
|
-
|
|
24586
|
-
let fileName = consumedFile
|
|
24597
|
+
finalizeAdditionalAsset(consumedFile, source, { bundle, fileNamesBySource, outputOptions }) {
|
|
24598
|
+
let { fileName, needsCodeReference, referenceId } = consumedFile;
|
|
24587
24599
|
// Deduplicate assets if an explicit fileName is not provided
|
|
24588
24600
|
if (!fileName) {
|
|
24589
24601
|
const sourceHash = getSourceHash(source);
|
|
@@ -24596,11 +24608,45 @@ class FileEmitter {
|
|
|
24596
24608
|
// We must not modify the original assets to avoid interaction between outputs
|
|
24597
24609
|
const assetWithFileName = { ...consumedFile, fileName, source };
|
|
24598
24610
|
this.filesByReferenceId.set(referenceId, assetWithFileName);
|
|
24611
|
+
const existingAsset = bundle[fileName];
|
|
24612
|
+
if (existingAsset?.type === 'asset') {
|
|
24613
|
+
existingAsset.needsCodeReference && (existingAsset.needsCodeReference = needsCodeReference);
|
|
24614
|
+
}
|
|
24615
|
+
else {
|
|
24616
|
+
bundle[fileName] = {
|
|
24617
|
+
fileName,
|
|
24618
|
+
name: consumedFile.name,
|
|
24619
|
+
needsCodeReference,
|
|
24620
|
+
source,
|
|
24621
|
+
type: 'asset'
|
|
24622
|
+
};
|
|
24623
|
+
}
|
|
24624
|
+
}
|
|
24625
|
+
finalizeAssetsWithSameSource(consumedFiles, sourceHash, { bundle, fileNamesBySource, outputOptions }) {
|
|
24626
|
+
let fileName = '';
|
|
24627
|
+
let usedConsumedFile;
|
|
24628
|
+
let needsCodeReference = true;
|
|
24629
|
+
for (const consumedFile of consumedFiles) {
|
|
24630
|
+
needsCodeReference && (needsCodeReference = consumedFile.needsCodeReference);
|
|
24631
|
+
const assetFileName = generateAssetFileName(consumedFile.name, consumedFile.source, sourceHash, outputOptions, bundle);
|
|
24632
|
+
if (!fileName ||
|
|
24633
|
+
assetFileName.length < fileName.length ||
|
|
24634
|
+
(assetFileName.length === fileName.length && assetFileName < fileName)) {
|
|
24635
|
+
fileName = assetFileName;
|
|
24636
|
+
usedConsumedFile = consumedFile;
|
|
24637
|
+
}
|
|
24638
|
+
}
|
|
24639
|
+
fileNamesBySource.set(sourceHash, fileName);
|
|
24640
|
+
for (const consumedFile of consumedFiles) {
|
|
24641
|
+
// We must not modify the original assets to avoid interaction between outputs
|
|
24642
|
+
const assetWithFileName = { ...consumedFile, fileName };
|
|
24643
|
+
this.filesByReferenceId.set(consumedFile.referenceId, assetWithFileName);
|
|
24644
|
+
}
|
|
24599
24645
|
bundle[fileName] = {
|
|
24600
24646
|
fileName,
|
|
24601
|
-
name:
|
|
24602
|
-
needsCodeReference
|
|
24603
|
-
source,
|
|
24647
|
+
name: usedConsumedFile.name,
|
|
24648
|
+
needsCodeReference,
|
|
24649
|
+
source: usedConsumedFile.source,
|
|
24604
24650
|
type: 'asset'
|
|
24605
24651
|
};
|
|
24606
24652
|
}
|
package/dist/shared/watch-cli.js
CHANGED
package/dist/shared/watch.js
CHANGED