@atlaspack/core 2.16.2-canary.27 → 2.16.2-canary.270
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/CHANGELOG.md +665 -0
- package/dist/AssetGraph.js +591 -0
- package/dist/Atlaspack.js +658 -0
- package/dist/AtlaspackConfig.js +324 -0
- package/dist/AtlaspackConfig.schema.js +108 -0
- package/dist/BundleGraph.js +1635 -0
- package/dist/CommittedAsset.js +142 -0
- package/dist/Dependency.js +125 -0
- package/dist/Environment.js +132 -0
- package/dist/EnvironmentManager.js +108 -0
- package/dist/IdentifierRegistry.js +38 -0
- package/dist/InternalConfig.js +37 -0
- package/dist/PackagerRunner.js +545 -0
- package/dist/ReporterRunner.js +151 -0
- package/dist/RequestTracker.js +1360 -0
- package/dist/SymbolPropagation.js +620 -0
- package/dist/TargetDescriptor.schema.js +143 -0
- package/dist/Transformation.js +490 -0
- package/dist/UncommittedAsset.js +315 -0
- package/dist/Validation.js +196 -0
- package/dist/applyRuntimes.js +305 -0
- package/dist/assetUtils.js +168 -0
- package/dist/atlaspack-v3/AtlaspackV3.js +70 -0
- package/dist/atlaspack-v3/NapiWorkerPool.js +57 -0
- package/dist/atlaspack-v3/fs.js +52 -0
- package/dist/atlaspack-v3/index.js +25 -0
- package/dist/atlaspack-v3/jsCallable.js +16 -0
- package/dist/atlaspack-v3/worker/compat/asset-symbols.js +190 -0
- package/dist/atlaspack-v3/worker/compat/bitflags.js +94 -0
- package/dist/atlaspack-v3/worker/compat/dependency.js +43 -0
- package/dist/atlaspack-v3/worker/compat/environment.js +57 -0
- package/dist/atlaspack-v3/worker/compat/index.js +25 -0
- package/dist/atlaspack-v3/worker/compat/mutable-asset.js +152 -0
- package/dist/atlaspack-v3/worker/compat/plugin-config.js +76 -0
- package/dist/atlaspack-v3/worker/compat/plugin-logger.js +26 -0
- package/dist/atlaspack-v3/worker/compat/plugin-options.js +122 -0
- package/dist/atlaspack-v3/worker/compat/plugin-tracer.js +10 -0
- package/dist/atlaspack-v3/worker/compat/target.js +14 -0
- package/dist/atlaspack-v3/worker/worker.js +297 -0
- package/dist/constants.js +17 -0
- package/dist/dumpGraphToGraphViz.js +281 -0
- package/dist/index.js +62 -0
- package/dist/loadAtlaspackPlugin.js +128 -0
- package/dist/loadDotEnv.js +41 -0
- package/dist/projectPath.js +83 -0
- package/dist/public/Asset.js +279 -0
- package/dist/public/Bundle.js +224 -0
- package/dist/public/BundleGraph.js +359 -0
- package/dist/public/BundleGroup.js +53 -0
- package/dist/public/Config.js +286 -0
- package/dist/public/Dependency.js +138 -0
- package/dist/public/Environment.js +278 -0
- package/dist/public/MutableBundleGraph.js +277 -0
- package/dist/public/PluginOptions.js +80 -0
- package/dist/public/Symbols.js +248 -0
- package/dist/public/Target.js +69 -0
- package/dist/registerCoreWithSerializer.js +38 -0
- package/dist/requests/AssetGraphRequest.js +429 -0
- package/dist/requests/AssetGraphRequestRust.js +262 -0
- package/dist/requests/AssetRequest.js +130 -0
- package/dist/requests/AtlaspackBuildRequest.js +65 -0
- package/dist/requests/AtlaspackConfigRequest.js +493 -0
- package/dist/requests/BundleGraphRequest.js +445 -0
- package/dist/requests/ConfigRequest.js +222 -0
- package/dist/requests/DevDepRequest.js +204 -0
- package/dist/requests/EntryRequest.js +314 -0
- package/dist/requests/PackageRequest.js +62 -0
- package/dist/requests/PathRequest.js +349 -0
- package/dist/requests/TargetRequest.js +1311 -0
- package/dist/requests/ValidationRequest.js +49 -0
- package/dist/requests/WriteBundleRequest.js +254 -0
- package/dist/requests/WriteBundlesRequest.js +184 -0
- package/dist/requests/asset-graph-diff.js +128 -0
- package/dist/requests/asset-graph-dot.js +131 -0
- package/dist/resolveOptions.js +268 -0
- package/dist/rustWorkerThreadDylibHack.js +19 -0
- package/dist/serializerCore.browser.js +43 -0
- package/dist/summarizeRequest.js +39 -0
- package/dist/types.js +31 -0
- package/dist/utils.js +172 -0
- package/dist/worker.js +123 -0
- package/lib/AssetGraph.js +111 -14
- package/lib/Atlaspack.js +81 -37
- package/lib/AtlaspackConfig.js +15 -3
- package/lib/AtlaspackConfig.schema.js +7 -5
- package/lib/BundleGraph.js +90 -32
- package/lib/CommittedAsset.js +6 -0
- package/lib/Dependency.js +8 -2
- package/lib/Environment.js +15 -8
- package/lib/EnvironmentManager.js +143 -0
- package/lib/IdentifierRegistry.js +1 -3
- package/lib/InternalConfig.js +3 -2
- package/lib/PackagerRunner.js +90 -27
- package/lib/ReporterRunner.js +6 -9
- package/lib/RequestTracker.js +266 -156
- package/lib/SymbolPropagation.js +42 -18
- package/lib/TargetDescriptor.schema.js +7 -1
- package/lib/Transformation.js +26 -10
- package/lib/UncommittedAsset.js +30 -9
- package/lib/Validation.js +18 -2
- package/lib/applyRuntimes.js +9 -1
- package/lib/assetUtils.js +7 -4
- package/lib/atlaspack-v3/AtlaspackV3.js +32 -7
- package/lib/atlaspack-v3/NapiWorkerPool.js +3 -0
- package/lib/atlaspack-v3/fs.js +3 -1
- package/lib/atlaspack-v3/index.js +28 -1
- package/lib/atlaspack-v3/jsCallable.js +0 -2
- package/lib/atlaspack-v3/worker/compat/asset-symbols.js +7 -4
- package/lib/atlaspack-v3/worker/compat/bitflags.js +7 -6
- package/lib/atlaspack-v3/worker/compat/dependency.js +3 -0
- package/lib/atlaspack-v3/worker/compat/environment.js +10 -7
- package/lib/atlaspack-v3/worker/compat/mutable-asset.js +14 -9
- package/lib/atlaspack-v3/worker/compat/plugin-config.js +8 -10
- package/lib/atlaspack-v3/worker/compat/plugin-options.js +1 -0
- package/lib/atlaspack-v3/worker/compat/plugin-tracer.js +3 -0
- package/lib/atlaspack-v3/worker/compat/target.js +2 -0
- package/lib/atlaspack-v3/worker/index.js +3 -0
- package/lib/atlaspack-v3/worker/worker.js +43 -7
- package/lib/constants.js +0 -1
- package/lib/dumpGraphToGraphViz.js +71 -16
- package/lib/index.js +45 -1
- package/lib/loadDotEnv.js +4 -1
- package/lib/projectPath.js +5 -0
- package/lib/public/Asset.js +21 -11
- package/lib/public/Bundle.js +15 -16
- package/lib/public/BundleGraph.js +10 -4
- package/lib/public/BundleGroup.js +4 -5
- package/lib/public/Config.js +118 -17
- package/lib/public/Dependency.js +8 -6
- package/lib/public/Environment.js +12 -7
- package/lib/public/MutableBundleGraph.js +54 -12
- package/lib/public/PluginOptions.js +2 -2
- package/lib/public/Symbols.js +11 -11
- package/lib/public/Target.js +7 -6
- package/lib/registerCoreWithSerializer.js +5 -3
- package/lib/requests/AssetGraphRequest.js +42 -5
- package/lib/requests/AssetGraphRequestRust.js +126 -62
- package/lib/requests/AssetRequest.js +23 -6
- package/lib/requests/AtlaspackBuildRequest.js +10 -4
- package/lib/requests/AtlaspackConfigRequest.js +27 -16
- package/lib/requests/BundleGraphRequest.js +34 -19
- package/lib/requests/ConfigRequest.js +28 -4
- package/lib/requests/DevDepRequest.js +31 -5
- package/lib/requests/EntryRequest.js +2 -0
- package/lib/requests/PackageRequest.js +2 -1
- package/lib/requests/PathRequest.js +24 -3
- package/lib/requests/TargetRequest.js +122 -57
- package/lib/requests/ValidationRequest.js +5 -1
- package/lib/requests/WriteBundleRequest.js +39 -11
- package/lib/requests/WriteBundlesRequest.js +51 -4
- package/lib/requests/asset-graph-diff.js +12 -7
- package/lib/requests/asset-graph-dot.js +1 -7
- package/lib/resolveOptions.js +36 -10
- package/lib/rustWorkerThreadDylibHack.js +0 -1
- package/lib/types/AssetGraph.d.ts +80 -0
- package/lib/types/Atlaspack.d.ts +52 -0
- package/lib/types/AtlaspackConfig.d.ts +65 -0
- package/lib/types/AtlaspackConfig.schema.d.ts +46 -0
- package/lib/types/BundleGraph.d.ts +182 -0
- package/lib/types/CommittedAsset.d.ts +23 -0
- package/lib/types/Dependency.d.ts +44 -0
- package/lib/types/Environment.d.ts +11 -0
- package/lib/types/EnvironmentManager.d.ts +37 -0
- package/lib/types/IdentifierRegistry.d.ts +6 -0
- package/lib/types/InternalConfig.d.ts +24 -0
- package/lib/types/PackagerRunner.d.ts +85 -0
- package/lib/types/ReporterRunner.d.ts +25 -0
- package/lib/types/RequestTracker.d.ts +385 -0
- package/lib/types/SymbolPropagation.d.ts +11 -0
- package/lib/types/TargetDescriptor.schema.d.ts +5 -0
- package/lib/types/Transformation.d.ts +72 -0
- package/lib/types/UncommittedAsset.d.ts +61 -0
- package/lib/types/Validation.d.ts +37 -0
- package/lib/types/applyRuntimes.d.ts +25 -0
- package/lib/types/assetUtils.d.ts +42 -0
- package/lib/types/atlaspack-v3/AtlaspackV3.d.ts +26 -0
- package/lib/types/atlaspack-v3/NapiWorkerPool.d.ts +12 -0
- package/lib/types/atlaspack-v3/fs.d.ts +12 -0
- package/lib/types/atlaspack-v3/index.d.ts +5 -0
- package/lib/types/atlaspack-v3/jsCallable.d.ts +1 -0
- package/lib/types/atlaspack-v3/worker/compat/asset-symbols.d.ts +51 -0
- package/lib/types/atlaspack-v3/worker/compat/bitflags.d.ts +15 -0
- package/lib/types/atlaspack-v3/worker/compat/dependency.d.ts +25 -0
- package/lib/types/atlaspack-v3/worker/compat/environment.d.ts +27 -0
- package/{src/atlaspack-v3/worker/compat/index.js → lib/types/atlaspack-v3/worker/compat/index.d.ts} +0 -1
- package/lib/types/atlaspack-v3/worker/compat/mutable-asset.d.ts +49 -0
- package/lib/types/atlaspack-v3/worker/compat/plugin-config.d.ts +37 -0
- package/lib/types/atlaspack-v3/worker/compat/plugin-logger.d.ts +9 -0
- package/lib/types/atlaspack-v3/worker/compat/plugin-options.d.ts +22 -0
- package/lib/types/atlaspack-v3/worker/compat/plugin-tracer.d.ts +5 -0
- package/lib/types/atlaspack-v3/worker/compat/target.d.ts +11 -0
- package/lib/types/atlaspack-v3/worker/worker.d.ts +60 -0
- package/lib/types/constants.d.ts +13 -0
- package/lib/types/dumpGraphToGraphViz.d.ts +10 -0
- package/lib/types/index.d.ts +8 -0
- package/lib/types/loadAtlaspackPlugin.d.ts +8 -0
- package/lib/types/loadDotEnv.d.ts +3 -0
- package/lib/types/projectPath.d.ts +19 -0
- package/lib/types/public/Asset.d.ts +74 -0
- package/lib/types/public/Bundle.d.ts +45 -0
- package/lib/types/public/BundleGraph.d.ts +70 -0
- package/lib/types/public/BundleGroup.d.ts +12 -0
- package/lib/types/public/Config.d.ts +75 -0
- package/lib/types/public/Dependency.d.ts +32 -0
- package/lib/types/public/Environment.d.ts +34 -0
- package/lib/types/public/MutableBundleGraph.d.ts +26 -0
- package/lib/types/public/PluginOptions.d.ts +25 -0
- package/lib/types/public/Symbols.d.ts +81 -0
- package/lib/types/public/Target.d.ts +16 -0
- package/lib/types/registerCoreWithSerializer.d.ts +2 -0
- package/lib/types/requests/AssetGraphRequest.d.ts +74 -0
- package/lib/types/requests/AssetGraphRequestRust.d.ts +21 -0
- package/lib/types/requests/AssetRequest.d.ts +16 -0
- package/lib/types/requests/AtlaspackBuildRequest.d.ts +33 -0
- package/lib/types/requests/AtlaspackConfigRequest.d.ts +45 -0
- package/lib/types/requests/BundleGraphRequest.d.ts +28 -0
- package/lib/types/requests/ConfigRequest.d.ts +59 -0
- package/lib/types/requests/DevDepRequest.d.ts +30 -0
- package/lib/types/requests/EntryRequest.d.ts +36 -0
- package/lib/types/requests/PackageRequest.d.ts +27 -0
- package/lib/types/requests/PathRequest.d.ts +48 -0
- package/lib/types/requests/TargetRequest.d.ts +48 -0
- package/lib/types/requests/ValidationRequest.d.ts +20 -0
- package/lib/types/requests/WriteBundleRequest.d.ts +28 -0
- package/lib/types/requests/WriteBundlesRequest.d.ts +32 -0
- package/lib/types/requests/asset-graph-diff.d.ts +1 -0
- package/lib/types/requests/asset-graph-dot.d.ts +9 -0
- package/lib/types/resolveOptions.d.ts +3 -0
- package/lib/types/rustWorkerThreadDylibHack.d.ts +9 -0
- package/lib/types/serializerCore.browser.d.ts +3 -0
- package/lib/types/summarizeRequest.d.ts +10 -0
- package/lib/types/types.d.ts +493 -0
- package/lib/types/utils.d.ts +23 -0
- package/lib/types/worker.d.ts +44 -0
- package/lib/types.js +8 -1
- package/lib/utils.js +17 -2
- package/lib/worker.js +29 -13
- package/package.json +24 -34
- package/src/{AssetGraph.js → AssetGraph.ts} +156 -52
- package/src/{Atlaspack.js → Atlaspack.ts} +114 -61
- package/src/{AtlaspackConfig.schema.js → AtlaspackConfig.schema.ts} +16 -19
- package/src/{AtlaspackConfig.js → AtlaspackConfig.ts} +78 -54
- package/src/{BundleGraph.js → BundleGraph.ts} +231 -140
- package/src/{CommittedAsset.js → CommittedAsset.ts} +14 -12
- package/src/{Dependency.js → Dependency.ts} +59 -42
- package/src/{Environment.js → Environment.ts} +24 -15
- package/src/EnvironmentManager.ts +154 -0
- package/src/{IdentifierRegistry.js → IdentifierRegistry.ts} +1 -4
- package/src/{InternalConfig.js → InternalConfig.ts} +22 -23
- package/src/{PackagerRunner.js → PackagerRunner.ts} +178 -86
- package/src/{ReporterRunner.js → ReporterRunner.ts} +13 -18
- package/src/{RequestTracker.js → RequestTracker.ts} +572 -357
- package/src/{SymbolPropagation.js → SymbolPropagation.ts} +165 -57
- package/src/{TargetDescriptor.schema.js → TargetDescriptor.schema.ts} +7 -1
- package/src/{Transformation.js → Transformation.ts} +71 -62
- package/src/{UncommittedAsset.js → UncommittedAsset.ts} +57 -36
- package/src/{Validation.js → Validation.ts} +32 -17
- package/src/{applyRuntimes.js → applyRuntimes.ts} +35 -26
- package/src/{assetUtils.js → assetUtils.ts} +47 -35
- package/src/atlaspack-v3/AtlaspackV3.ts +122 -0
- package/src/atlaspack-v3/{NapiWorkerPool.js → NapiWorkerPool.ts} +10 -5
- package/src/atlaspack-v3/{fs.js → fs.ts} +3 -4
- package/src/atlaspack-v3/{index.js → index.ts} +2 -4
- package/src/atlaspack-v3/jsCallable.ts +14 -0
- package/src/atlaspack-v3/worker/compat/{asset-symbols.js → asset-symbols.ts} +40 -30
- package/src/atlaspack-v3/worker/compat/{bitflags.js → bitflags.ts} +9 -10
- package/src/atlaspack-v3/worker/compat/{dependency.js → dependency.ts} +12 -12
- package/src/atlaspack-v3/worker/compat/{environment.js → environment.ts} +13 -9
- package/src/atlaspack-v3/worker/compat/index.ts +9 -0
- package/src/atlaspack-v3/worker/compat/{mutable-asset.js → mutable-asset.ts} +20 -19
- package/src/atlaspack-v3/worker/compat/{plugin-config.js → plugin-config.ts} +27 -26
- package/src/atlaspack-v3/worker/compat/{plugin-logger.js → plugin-logger.ts} +0 -2
- package/src/atlaspack-v3/worker/compat/{plugin-options.js → plugin-options.ts} +4 -5
- package/src/atlaspack-v3/worker/compat/{plugin-tracer.js → plugin-tracer.ts} +2 -2
- package/src/atlaspack-v3/worker/compat/{target.js → target.ts} +3 -4
- package/src/atlaspack-v3/worker/index.js +2 -1
- package/src/atlaspack-v3/worker/{worker.js → worker.ts} +102 -66
- package/src/{constants.js → constants.ts} +0 -3
- package/src/{dumpGraphToGraphViz.js → dumpGraphToGraphViz.ts} +73 -28
- package/src/index.ts +18 -0
- package/src/{loadAtlaspackPlugin.js → loadAtlaspackPlugin.ts} +8 -9
- package/src/{loadDotEnv.js → loadDotEnv.ts} +2 -2
- package/src/{projectPath.js → projectPath.ts} +20 -9
- package/src/public/{Asset.js → Asset.ts} +40 -27
- package/src/public/{Bundle.js → Bundle.ts} +28 -29
- package/src/public/{BundleGraph.js → BundleGraph.ts} +81 -50
- package/src/public/{BundleGroup.js → BundleGroup.ts} +7 -10
- package/src/public/{Config.js → Config.ts} +171 -33
- package/src/public/{Dependency.js → Dependency.ts} +20 -17
- package/src/public/{Environment.js → Environment.ts} +28 -17
- package/src/public/{MutableBundleGraph.js → MutableBundleGraph.ts} +55 -24
- package/src/public/{PluginOptions.js → PluginOptions.ts} +6 -6
- package/src/public/{Symbols.js → Symbols.ts} +75 -36
- package/src/public/{Target.js → Target.ts} +10 -8
- package/src/{registerCoreWithSerializer.js → registerCoreWithSerializer.ts} +9 -7
- package/src/requests/{AssetGraphRequest.js → AssetGraphRequest.ts} +84 -49
- package/src/requests/AssetGraphRequestRust.ts +352 -0
- package/src/requests/{AssetRequest.js → AssetRequest.ts} +24 -18
- package/src/requests/{AtlaspackBuildRequest.js → AtlaspackBuildRequest.ts} +46 -32
- package/src/requests/{AtlaspackConfigRequest.js → AtlaspackConfigRequest.ts} +72 -58
- package/src/requests/{BundleGraphRequest.js → BundleGraphRequest.ts} +71 -58
- package/src/requests/{ConfigRequest.js → ConfigRequest.ts} +71 -50
- package/src/requests/{DevDepRequest.js → DevDepRequest.ts} +60 -35
- package/src/requests/{EntryRequest.js → EntryRequest.ts} +36 -31
- package/src/requests/{PackageRequest.js → PackageRequest.ts} +20 -22
- package/src/requests/{PathRequest.js → PathRequest.ts} +47 -37
- package/src/requests/{TargetRequest.js → TargetRequest.ts} +260 -179
- package/src/requests/{ValidationRequest.js → ValidationRequest.ts} +18 -17
- package/src/requests/{WriteBundleRequest.js → WriteBundleRequest.ts} +77 -49
- package/src/requests/{WriteBundlesRequest.js → WriteBundlesRequest.ts} +109 -37
- package/src/requests/{asset-graph-diff.js → asset-graph-diff.ts} +25 -21
- package/src/requests/{asset-graph-dot.js → asset-graph-dot.ts} +8 -12
- package/src/{resolveOptions.js → resolveOptions.ts} +56 -24
- package/src/{rustWorkerThreadDylibHack.js → rustWorkerThreadDylibHack.ts} +1 -4
- package/src/{serializerCore.browser.js → serializerCore.browser.ts} +2 -3
- package/src/{summarizeRequest.js → summarizeRequest.ts} +17 -5
- package/src/types.ts +647 -0
- package/src/{utils.js → utils.ts} +52 -21
- package/src/{worker.js → worker.ts} +49 -41
- package/test/{AssetGraph.test.js → AssetGraph.test.ts} +37 -8
- package/test/{Atlaspack.test.js → Atlaspack.test.ts} +5 -10
- package/test/{AtlaspackConfig.test.js → AtlaspackConfig.test.ts} +0 -5
- package/test/{AtlaspackConfigRequest.test.js → AtlaspackConfigRequest.test.ts} +75 -15
- package/test/{BundleGraph.test.js → BundleGraph.test.ts} +8 -13
- package/test/{Dependency.test.js → Dependency.test.ts} +2 -3
- package/test/{EntryRequest.test.js → EntryRequest.test.ts} +1 -6
- package/test/Environment.test.ts +153 -0
- package/test/EnvironmentManager.test.ts +188 -0
- package/test/{IdentifierRegistry.test.js → IdentifierRegistry.test.ts} +2 -4
- package/test/{InternalAsset.test.js → InternalAsset.test.ts} +2 -7
- package/test/PackagerRunner.test.ts +0 -0
- package/test/{PublicAsset.test.js → PublicAsset.test.ts} +2 -7
- package/test/{PublicBundle.test.js → PublicBundle.test.ts} +1 -2
- package/test/{PublicDependency.test.js → PublicDependency.test.ts} +0 -2
- package/test/PublicEnvironment.test.ts +49 -0
- package/test/{PublicMutableBundleGraph.test.js → PublicMutableBundleGraph.test.ts} +6 -11
- package/test/{RequestTracker.test.js → RequestTracker.test.ts} +314 -59
- package/test/{SymbolPropagation.test.js → SymbolPropagation.test.ts} +124 -74
- package/test/{TargetRequest.test.js → TargetRequest.test.ts} +66 -92
- package/test/fixtures/config-with-reporters/.parcelrc +7 -0
- package/test/fixtures/custom-targets/package.json +6 -0
- package/test/public/Config.test.ts +104 -0
- package/test/requests/{AssetGraphRequestRust.test.js → AssetGraphRequestRust.test.ts} +164 -134
- package/test/requests/{ConfigRequest.test.js → ConfigRequest.test.ts} +202 -13
- package/test/requests/{DevDepRequest.test.js → DevDepRequest.test.ts} +0 -2
- package/test/{test-utils.js → test-utils.ts} +4 -11
- package/test/{utils.test.js → utils.test.ts} +1 -3
- package/tsconfig.json +57 -0
- package/tsconfig.tsbuildinfo +1 -0
- package/index.d.ts +0 -30
- package/src/atlaspack-v3/AtlaspackV3.js +0 -87
- package/src/atlaspack-v3/jsCallable.js +0 -18
- package/src/index.js +0 -13
- package/src/requests/AssetGraphRequestRust.js +0 -263
- package/src/types.js +0 -600
- package/test/Environment.test.js +0 -119
- package/test/PackagerRunner.test.js +0 -27
- package/test/PublicEnvironment.test.js +0 -27
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
// @flow
|
|
2
1
|
import type {
|
|
3
2
|
Symbol as ISymbol,
|
|
4
3
|
MutableAssetSymbols as IMutableAssetSymbols,
|
|
@@ -16,13 +15,13 @@ const EMPTY_ITERABLE = {
|
|
|
16
15
|
[Symbol.iterator]() {
|
|
17
16
|
return EMPTY_ITERATOR;
|
|
18
17
|
},
|
|
19
|
-
};
|
|
18
|
+
} as const;
|
|
20
19
|
|
|
21
20
|
const EMPTY_ITERATOR = {
|
|
22
21
|
next() {
|
|
23
22
|
return {done: true};
|
|
24
23
|
},
|
|
25
|
-
};
|
|
24
|
+
} as const;
|
|
26
25
|
|
|
27
26
|
const inspect = Symbol.for('nodejs.util.inspect.custom');
|
|
28
27
|
|
|
@@ -31,10 +30,12 @@ export class AssetSymbols implements IAssetSymbols {
|
|
|
31
30
|
/*::
|
|
32
31
|
@@iterator(): Iterator<[ISymbol, {|local: ISymbol, loc: ?SourceLocation, meta?: ?Meta|}]> { return ({}: any); }
|
|
33
32
|
*/
|
|
33
|
+
// @ts-expect-error TS2564
|
|
34
34
|
#value: Asset;
|
|
35
|
+
// @ts-expect-error TS2564
|
|
35
36
|
#options: AtlaspackOptions;
|
|
36
37
|
|
|
37
|
-
constructor(options: AtlaspackOptions, asset: Asset)
|
|
38
|
+
constructor(options: AtlaspackOptions, asset: Asset) {
|
|
38
39
|
let existing = valueToSymbols.get(asset);
|
|
39
40
|
if (existing != null) {
|
|
40
41
|
return existing;
|
|
@@ -60,9 +61,14 @@ export class AssetSymbols implements IAssetSymbols {
|
|
|
60
61
|
return false;
|
|
61
62
|
}
|
|
62
63
|
|
|
63
|
-
get(
|
|
64
|
-
|
|
65
|
-
|
|
64
|
+
get(exportSymbol: ISymbol):
|
|
65
|
+
| {
|
|
66
|
+
local: ISymbol;
|
|
67
|
+
loc: SourceLocation | null | undefined;
|
|
68
|
+
meta?: Meta | null | undefined;
|
|
69
|
+
}
|
|
70
|
+
| null
|
|
71
|
+
| undefined {
|
|
66
72
|
return fromInternalAssetSymbol(
|
|
67
73
|
this.#options.projectRoot,
|
|
68
74
|
this.#value.symbols?.get(exportSymbol),
|
|
@@ -76,19 +82,18 @@ export class AssetSymbols implements IAssetSymbols {
|
|
|
76
82
|
exportSymbols(): Iterable<ISymbol> {
|
|
77
83
|
return this.#value.symbols?.keys() ?? [];
|
|
78
84
|
}
|
|
79
|
-
//
|
|
85
|
+
// @ts-expect-error TS2416
|
|
80
86
|
[Symbol.iterator]() {
|
|
81
87
|
return this.#value.symbols
|
|
82
88
|
? this.#value.symbols[Symbol.iterator]()
|
|
83
89
|
: EMPTY_ITERATOR;
|
|
84
90
|
}
|
|
85
91
|
|
|
86
|
-
// $FlowFixMe
|
|
87
92
|
[inspect]() {
|
|
88
93
|
return `AssetSymbols(${
|
|
89
94
|
this.#value.symbols
|
|
90
95
|
? [...this.#value.symbols]
|
|
91
|
-
.map(([s, {local}]) => `${s}:${local}`)
|
|
96
|
+
.map(([s, {local}]: [any, any]) => `${s}:${local}`)
|
|
92
97
|
.join(', ')
|
|
93
98
|
: null
|
|
94
99
|
})`;
|
|
@@ -101,10 +106,12 @@ export class MutableAssetSymbols implements IMutableAssetSymbols {
|
|
|
101
106
|
/*::
|
|
102
107
|
@@iterator(): Iterator<[ISymbol, {|local: ISymbol, loc: ?SourceLocation, meta?: ?Meta|}]> { return ({}: any); }
|
|
103
108
|
*/
|
|
109
|
+
// @ts-expect-error TS2564
|
|
104
110
|
#value: Asset;
|
|
111
|
+
// @ts-expect-error TS2564
|
|
105
112
|
#options: AtlaspackOptions;
|
|
106
113
|
|
|
107
|
-
constructor(options: AtlaspackOptions, asset: Asset)
|
|
114
|
+
constructor(options: AtlaspackOptions, asset: Asset) {
|
|
108
115
|
let existing = valueToMutableAssetSymbols.get(asset);
|
|
109
116
|
if (existing != null) {
|
|
110
117
|
return existing;
|
|
@@ -130,9 +137,14 @@ export class MutableAssetSymbols implements IMutableAssetSymbols {
|
|
|
130
137
|
return false;
|
|
131
138
|
}
|
|
132
139
|
|
|
133
|
-
get(
|
|
134
|
-
|
|
135
|
-
|
|
140
|
+
get(exportSymbol: ISymbol):
|
|
141
|
+
| {
|
|
142
|
+
local: ISymbol;
|
|
143
|
+
loc: SourceLocation | null | undefined;
|
|
144
|
+
meta?: Meta | null | undefined;
|
|
145
|
+
}
|
|
146
|
+
| null
|
|
147
|
+
| undefined {
|
|
136
148
|
return fromInternalAssetSymbol(
|
|
137
149
|
this.#options.projectRoot,
|
|
138
150
|
this.#value.symbols?.get(exportSymbol),
|
|
@@ -144,22 +156,21 @@ export class MutableAssetSymbols implements IMutableAssetSymbols {
|
|
|
144
156
|
}
|
|
145
157
|
|
|
146
158
|
exportSymbols(): Iterable<ISymbol> {
|
|
147
|
-
//
|
|
159
|
+
// @ts-expect-error TS2322
|
|
148
160
|
return this.#value.symbols.keys();
|
|
149
161
|
}
|
|
150
|
-
//
|
|
162
|
+
// @ts-expect-error TS2416
|
|
151
163
|
[Symbol.iterator]() {
|
|
152
164
|
return this.#value.symbols
|
|
153
165
|
? this.#value.symbols[Symbol.iterator]()
|
|
154
166
|
: EMPTY_ITERATOR;
|
|
155
167
|
}
|
|
156
168
|
|
|
157
|
-
// $FlowFixMe
|
|
158
169
|
[inspect]() {
|
|
159
170
|
return `MutableAssetSymbols(${
|
|
160
171
|
this.#value.symbols
|
|
161
172
|
? [...this.#value.symbols]
|
|
162
|
-
.map(([s, {local}]) => `${s}:${local}`)
|
|
173
|
+
.map(([s, {local}]: [any, any]) => `${s}:${local}`)
|
|
163
174
|
.join(', ')
|
|
164
175
|
: null
|
|
165
176
|
})`;
|
|
@@ -176,8 +187,8 @@ export class MutableAssetSymbols implements IMutableAssetSymbols {
|
|
|
176
187
|
set(
|
|
177
188
|
exportSymbol: ISymbol,
|
|
178
189
|
local: ISymbol,
|
|
179
|
-
loc
|
|
180
|
-
meta
|
|
190
|
+
loc?: SourceLocation | null,
|
|
191
|
+
meta?: Meta | null,
|
|
181
192
|
) {
|
|
182
193
|
nullthrows(this.#value.symbols).set(exportSymbol, {
|
|
183
194
|
local,
|
|
@@ -193,19 +204,18 @@ export class MutableAssetSymbols implements IMutableAssetSymbols {
|
|
|
193
204
|
|
|
194
205
|
let valueToMutableDependencySymbols: WeakMap<
|
|
195
206
|
Dependency,
|
|
196
|
-
MutableDependencySymbols
|
|
207
|
+
MutableDependencySymbols
|
|
197
208
|
> = new WeakMap();
|
|
198
209
|
export class MutableDependencySymbols implements IMutableDependencySymbols {
|
|
199
210
|
/*::
|
|
200
211
|
@@iterator(): Iterator<[ISymbol, {|local: ISymbol, loc: ?SourceLocation, isWeak: boolean, meta?: ?Meta|}]> { return ({}: any); }
|
|
201
212
|
*/
|
|
213
|
+
// @ts-expect-error TS2564
|
|
202
214
|
#value: Dependency;
|
|
215
|
+
// @ts-expect-error TS2564
|
|
203
216
|
#options: AtlaspackOptions;
|
|
204
217
|
|
|
205
|
-
constructor(
|
|
206
|
-
options: AtlaspackOptions,
|
|
207
|
-
dep: Dependency,
|
|
208
|
-
): MutableDependencySymbols {
|
|
218
|
+
constructor(options: AtlaspackOptions, dep: Dependency) {
|
|
209
219
|
let existing = valueToMutableDependencySymbols.get(dep);
|
|
210
220
|
if (existing != null) {
|
|
211
221
|
return existing;
|
|
@@ -230,9 +240,15 @@ export class MutableDependencySymbols implements IMutableDependencySymbols {
|
|
|
230
240
|
return false;
|
|
231
241
|
}
|
|
232
242
|
|
|
233
|
-
get(
|
|
234
|
-
|
|
235
|
-
|
|
243
|
+
get(exportSymbol: ISymbol):
|
|
244
|
+
| {
|
|
245
|
+
local: ISymbol;
|
|
246
|
+
loc: SourceLocation | null | undefined;
|
|
247
|
+
isWeak: boolean;
|
|
248
|
+
meta?: Meta | null | undefined;
|
|
249
|
+
}
|
|
250
|
+
| null
|
|
251
|
+
| undefined {
|
|
236
252
|
return fromInternalDependencySymbol(
|
|
237
253
|
this.#options.projectRoot,
|
|
238
254
|
nullthrows(this.#value.symbols).get(exportSymbol),
|
|
@@ -244,23 +260,25 @@ export class MutableDependencySymbols implements IMutableDependencySymbols {
|
|
|
244
260
|
}
|
|
245
261
|
|
|
246
262
|
exportSymbols(): Iterable<ISymbol> {
|
|
247
|
-
//
|
|
263
|
+
// @ts-expect-error TS2322
|
|
248
264
|
return this.#value.symbols ? this.#value.symbols.keys() : EMPTY_ITERABLE;
|
|
249
265
|
}
|
|
250
266
|
|
|
251
|
-
//
|
|
267
|
+
// @ts-expect-error TS2416
|
|
252
268
|
[Symbol.iterator]() {
|
|
253
269
|
return this.#value.symbols
|
|
254
270
|
? this.#value.symbols[Symbol.iterator]()
|
|
255
271
|
: EMPTY_ITERATOR;
|
|
256
272
|
}
|
|
257
273
|
|
|
258
|
-
// $FlowFixMe
|
|
259
274
|
[inspect]() {
|
|
260
275
|
return `MutableDependencySymbols(${
|
|
261
276
|
this.#value.symbols
|
|
262
277
|
? [...this.#value.symbols]
|
|
263
|
-
.map(
|
|
278
|
+
.map(
|
|
279
|
+
([s, {local, isWeak}]: [any, any]) =>
|
|
280
|
+
`${s}:${local}${isWeak ? '?' : ''}`,
|
|
281
|
+
)
|
|
264
282
|
.join(', ')
|
|
265
283
|
: null
|
|
266
284
|
})`;
|
|
@@ -277,8 +295,8 @@ export class MutableDependencySymbols implements IMutableDependencySymbols {
|
|
|
277
295
|
set(
|
|
278
296
|
exportSymbol: ISymbol,
|
|
279
297
|
local: ISymbol,
|
|
280
|
-
loc
|
|
281
|
-
isWeak
|
|
298
|
+
loc?: SourceLocation | null,
|
|
299
|
+
isWeak?: boolean | null,
|
|
282
300
|
) {
|
|
283
301
|
let symbols = nullthrows(this.#value.symbols);
|
|
284
302
|
symbols.set(exportSymbol, {
|
|
@@ -293,7 +311,17 @@ export class MutableDependencySymbols implements IMutableDependencySymbols {
|
|
|
293
311
|
}
|
|
294
312
|
}
|
|
295
313
|
|
|
296
|
-
function fromInternalAssetSymbol(
|
|
314
|
+
function fromInternalAssetSymbol(
|
|
315
|
+
projectRoot: string,
|
|
316
|
+
value:
|
|
317
|
+
| undefined
|
|
318
|
+
| {
|
|
319
|
+
// @ts-expect-error TS2304
|
|
320
|
+
loc: InternalSourceLocation | null | undefined;
|
|
321
|
+
local: ISymbol;
|
|
322
|
+
meta?: Meta | null | undefined;
|
|
323
|
+
},
|
|
324
|
+
) {
|
|
297
325
|
return (
|
|
298
326
|
value && {
|
|
299
327
|
local: value.local,
|
|
@@ -303,7 +331,18 @@ function fromInternalAssetSymbol(projectRoot: string, value) {
|
|
|
303
331
|
);
|
|
304
332
|
}
|
|
305
333
|
|
|
306
|
-
function fromInternalDependencySymbol(
|
|
334
|
+
function fromInternalDependencySymbol(
|
|
335
|
+
projectRoot: string,
|
|
336
|
+
value:
|
|
337
|
+
| undefined
|
|
338
|
+
| {
|
|
339
|
+
isWeak: boolean;
|
|
340
|
+
// @ts-expect-error TS2304
|
|
341
|
+
loc: InternalSourceLocation | null | undefined;
|
|
342
|
+
local: ISymbol;
|
|
343
|
+
meta?: Meta | null | undefined;
|
|
344
|
+
},
|
|
345
|
+
) {
|
|
307
346
|
return (
|
|
308
347
|
value && {
|
|
309
348
|
local: value.local,
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
// @flow
|
|
2
1
|
import type {
|
|
3
2
|
FilePath,
|
|
4
3
|
Target as ITarget,
|
|
@@ -11,6 +10,7 @@ import nullthrows from 'nullthrows';
|
|
|
11
10
|
import Environment from './Environment';
|
|
12
11
|
import {fromProjectPath} from '../projectPath';
|
|
13
12
|
import {fromInternalSourceLocation} from '../utils';
|
|
13
|
+
import {fromEnvironmentId} from '../EnvironmentManager';
|
|
14
14
|
|
|
15
15
|
const inspect = Symbol.for('nodejs.util.inspect.custom');
|
|
16
16
|
|
|
@@ -21,10 +21,12 @@ export function targetToInternalTarget(target: ITarget): TargetValue {
|
|
|
21
21
|
}
|
|
22
22
|
|
|
23
23
|
export default class Target implements ITarget {
|
|
24
|
-
|
|
25
|
-
#
|
|
24
|
+
// @ts-expect-error TS2564
|
|
25
|
+
#target: TargetValue;
|
|
26
|
+
// @ts-expect-error TS2564
|
|
27
|
+
#options: AtlaspackOptions;
|
|
26
28
|
|
|
27
|
-
constructor(target: TargetValue, options: AtlaspackOptions)
|
|
29
|
+
constructor(target: TargetValue, options: AtlaspackOptions) {
|
|
28
30
|
let existing = internalTargetToTarget.get(target);
|
|
29
31
|
if (existing != null) {
|
|
30
32
|
return existing;
|
|
@@ -37,7 +39,7 @@ export default class Target implements ITarget {
|
|
|
37
39
|
return this;
|
|
38
40
|
}
|
|
39
41
|
|
|
40
|
-
get distEntry():
|
|
42
|
+
get distEntry(): FilePath | null | undefined {
|
|
41
43
|
return this.#target.distEntry;
|
|
42
44
|
}
|
|
43
45
|
|
|
@@ -46,7 +48,7 @@ export default class Target implements ITarget {
|
|
|
46
48
|
}
|
|
47
49
|
|
|
48
50
|
get env(): IEnvironment {
|
|
49
|
-
return new Environment(this.#target.env, this.#options);
|
|
51
|
+
return new Environment(fromEnvironmentId(this.#target.env), this.#options);
|
|
50
52
|
}
|
|
51
53
|
|
|
52
54
|
get name(): string {
|
|
@@ -57,15 +59,15 @@ export default class Target implements ITarget {
|
|
|
57
59
|
return this.#target.publicUrl;
|
|
58
60
|
}
|
|
59
61
|
|
|
60
|
-
get loc():
|
|
62
|
+
get loc(): SourceLocation | null | undefined {
|
|
61
63
|
return fromInternalSourceLocation(
|
|
62
64
|
this.#options.projectRoot,
|
|
63
65
|
this.#target.loc,
|
|
64
66
|
);
|
|
65
67
|
}
|
|
66
68
|
|
|
67
|
-
// $FlowFixMe[unsupported-syntax]
|
|
68
69
|
[inspect](): string {
|
|
70
|
+
// @ts-expect-error TS7053
|
|
69
71
|
return `Target(${this.name} - ${this.env[inspect]()})`;
|
|
70
72
|
}
|
|
71
73
|
}
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
// @flow
|
|
2
|
-
|
|
3
1
|
import {registerSerializableClass} from '@atlaspack/build-cache';
|
|
4
2
|
import {Graph} from '@atlaspack/graph';
|
|
5
3
|
|
|
@@ -11,26 +9,30 @@ import BundleGraph from './BundleGraph';
|
|
|
11
9
|
import Config from './public/Config';
|
|
12
10
|
import {RequestGraph} from './RequestTracker';
|
|
13
11
|
|
|
12
|
+
// flow-to-ts helpers
|
|
13
|
+
export type Class<T> = new (...args: any[]) => T;
|
|
14
|
+
// /flow-to-ts helpers
|
|
15
|
+
|
|
16
|
+
// @ts-expect-error TS7034
|
|
14
17
|
let coreRegistered;
|
|
15
18
|
export function registerCoreWithSerializer() {
|
|
19
|
+
// @ts-expect-error TS7005
|
|
16
20
|
if (coreRegistered) {
|
|
17
21
|
return;
|
|
18
22
|
}
|
|
19
|
-
const packageVersion:
|
|
23
|
+
const packageVersion: unknown = packageJson.version;
|
|
20
24
|
if (typeof packageVersion !== 'string') {
|
|
21
25
|
throw new Error('Expected package version to be a string');
|
|
22
26
|
}
|
|
23
27
|
|
|
24
|
-
|
|
25
|
-
for (let [name, ctor] of (Object.entries({
|
|
28
|
+
for (let [name, ctor] of Object.entries({
|
|
26
29
|
AssetGraph,
|
|
27
30
|
Config,
|
|
28
31
|
BundleGraph,
|
|
29
32
|
Graph,
|
|
30
33
|
AtlaspackConfig,
|
|
31
34
|
RequestGraph,
|
|
32
|
-
|
|
33
|
-
}): Array<[string, Class<any>]>)) {
|
|
35
|
+
}) as Array<[string, Class<any>]>) {
|
|
34
36
|
registerSerializableClass(packageVersion + ':' + name, ctor);
|
|
35
37
|
}
|
|
36
38
|
coreRegistered = true;
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
// @flow strict-local
|
|
2
|
-
|
|
3
1
|
import type {NodeId} from '@atlaspack/graph';
|
|
4
2
|
import type {Async} from '@atlaspack/types';
|
|
5
3
|
import type {SharedReference} from '@atlaspack/workers';
|
|
@@ -20,6 +18,7 @@ import logger from '@atlaspack/logger';
|
|
|
20
18
|
|
|
21
19
|
import invariant from 'assert';
|
|
22
20
|
import nullthrows from 'nullthrows';
|
|
21
|
+
import {getFeatureFlag} from '@atlaspack/feature-flags';
|
|
23
22
|
import {PromiseQueue, setEqual} from '@atlaspack/utils';
|
|
24
23
|
import {hashString} from '@atlaspack/rust';
|
|
25
24
|
import ThrowableDiagnostic from '@atlaspack/diagnostic';
|
|
@@ -30,44 +29,46 @@ import createEntryRequest from './EntryRequest';
|
|
|
30
29
|
import createTargetRequest from './TargetRequest';
|
|
31
30
|
import createAssetRequest from './AssetRequest';
|
|
32
31
|
import createPathRequest from './PathRequest';
|
|
33
|
-
import {
|
|
32
|
+
import {ProjectPath, fromProjectPathRelative} from '../projectPath';
|
|
34
33
|
import dumpGraphToGraphViz from '../dumpGraphToGraphViz';
|
|
35
34
|
import {propagateSymbols} from '../SymbolPropagation';
|
|
36
35
|
import {requestTypes} from '../RequestTracker';
|
|
37
36
|
|
|
38
|
-
export type AssetGraphRequestInput = {
|
|
39
|
-
entries?: Array<ProjectPath
|
|
40
|
-
assetGroups?: Array<AssetGroup
|
|
41
|
-
optionsRef: SharedReference
|
|
42
|
-
name: string
|
|
43
|
-
shouldBuildLazily?: boolean
|
|
44
|
-
lazyIncludes?: RegExp[]
|
|
45
|
-
lazyExcludes?: RegExp[]
|
|
46
|
-
requestedAssetIds?: Set<string
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
export type AssetGraphRequestResult = {
|
|
50
|
-
assetGraph: AssetGraph
|
|
37
|
+
export type AssetGraphRequestInput = {
|
|
38
|
+
entries?: Array<ProjectPath>;
|
|
39
|
+
assetGroups?: Array<AssetGroup>;
|
|
40
|
+
optionsRef: SharedReference;
|
|
41
|
+
name: string;
|
|
42
|
+
shouldBuildLazily?: boolean;
|
|
43
|
+
lazyIncludes?: RegExp[];
|
|
44
|
+
lazyExcludes?: RegExp[];
|
|
45
|
+
requestedAssetIds?: Set<string>;
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
export type AssetGraphRequestResult = {
|
|
49
|
+
assetGraph: AssetGraph;
|
|
51
50
|
/** Assets added/modified since the last successful build. */
|
|
52
|
-
changedAssets: Map<string, Asset
|
|
51
|
+
changedAssets: Map<string, Asset>;
|
|
53
52
|
/** Assets added/modified since the last symbol propagation invocation. */
|
|
54
|
-
changedAssetsPropagation: Set<string
|
|
55
|
-
assetGroupsWithRemovedParents:
|
|
56
|
-
previousSymbolPropagationErrors:
|
|
57
|
-
|
|
58
|
-
|
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
53
|
+
changedAssetsPropagation: Set<string>;
|
|
54
|
+
assetGroupsWithRemovedParents: Set<NodeId> | null | undefined;
|
|
55
|
+
previousSymbolPropagationErrors:
|
|
56
|
+
| Map<NodeId, Array<Diagnostic>>
|
|
57
|
+
| null
|
|
58
|
+
| undefined;
|
|
59
|
+
assetRequests: Array<AssetGroup>;
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
type RunInput = {
|
|
63
|
+
input: AssetGraphRequestInput;
|
|
64
|
+
} & StaticRunOpts<AssetGraphRequestResult>;
|
|
65
|
+
|
|
66
|
+
type AssetGraphRequest = {
|
|
67
|
+
id: string;
|
|
68
|
+
readonly type: typeof requestTypes.asset_graph_request;
|
|
69
|
+
run: (arg1: RunInput) => Async<AssetGraphRequestResult>;
|
|
70
|
+
input: AssetGraphRequestInput;
|
|
71
|
+
};
|
|
71
72
|
|
|
72
73
|
export default function createAssetGraphRequest(
|
|
73
74
|
requestInput: AssetGraphRequestInput,
|
|
@@ -80,9 +81,14 @@ export default function createAssetGraphRequest(
|
|
|
80
81
|
await input.api.getPreviousResult<AssetGraphRequestResult>();
|
|
81
82
|
|
|
82
83
|
let builder = new AssetGraphBuilder(input, prevResult);
|
|
83
|
-
let assetGraphRequest = await
|
|
84
|
+
let assetGraphRequest = await builder.build();
|
|
84
85
|
|
|
85
86
|
// early break for incremental bundling if production or flag is off;
|
|
87
|
+
assetGraphRequest.assetGraph.setDisableIncrementalBundling(
|
|
88
|
+
!input.options.shouldBundleIncrementally ||
|
|
89
|
+
input.options.mode === 'production',
|
|
90
|
+
);
|
|
91
|
+
|
|
86
92
|
if (
|
|
87
93
|
!input.options.shouldBundleIncrementally ||
|
|
88
94
|
input.options.mode === 'production'
|
|
@@ -106,10 +112,10 @@ const typesWithRequests = new Set([
|
|
|
106
112
|
export class AssetGraphBuilder {
|
|
107
113
|
assetGraph: AssetGraph;
|
|
108
114
|
assetRequests: Array<AssetGroup> = [];
|
|
109
|
-
queue: PromiseQueue<
|
|
115
|
+
queue: PromiseQueue<unknown>;
|
|
110
116
|
changedAssets: Map<string, Asset>;
|
|
111
117
|
changedAssetsPropagation: Set<string>;
|
|
112
|
-
prevChangedAssetsPropagation:
|
|
118
|
+
prevChangedAssetsPropagation: Set<string> | null | undefined;
|
|
113
119
|
optionsRef: SharedReference;
|
|
114
120
|
options: AtlaspackOptions;
|
|
115
121
|
api: RunAPI<AssetGraphRequestResult>;
|
|
@@ -125,7 +131,7 @@ export class AssetGraphBuilder {
|
|
|
125
131
|
|
|
126
132
|
constructor(
|
|
127
133
|
{input, api, options}: RunInput,
|
|
128
|
-
prevResult
|
|
134
|
+
prevResult?: AssetGraphRequestResult | null,
|
|
129
135
|
) {
|
|
130
136
|
let {
|
|
131
137
|
entries,
|
|
@@ -161,20 +167,30 @@ export class AssetGraphBuilder {
|
|
|
161
167
|
this.shouldBuildLazily = shouldBuildLazily ?? false;
|
|
162
168
|
this.lazyIncludes = lazyIncludes ?? [];
|
|
163
169
|
this.lazyExcludes = lazyExcludes ?? [];
|
|
164
|
-
|
|
165
|
-
hashString(
|
|
170
|
+
if (getFeatureFlag('cachePerformanceImprovements')) {
|
|
171
|
+
const key = hashString(
|
|
166
172
|
`${ATLASPACK_VERSION}${name}${JSON.stringify(entries) ?? ''}${
|
|
167
173
|
options.mode
|
|
168
174
|
}${options.shouldBuildLazily ? 'lazy' : 'eager'}`,
|
|
169
|
-
)
|
|
175
|
+
);
|
|
176
|
+
this.cacheKey = `AssetGraph/${ATLASPACK_VERSION}/${options.mode}/${key}`;
|
|
177
|
+
} else {
|
|
178
|
+
this.cacheKey =
|
|
179
|
+
hashString(
|
|
180
|
+
`${ATLASPACK_VERSION}${name}${JSON.stringify(entries) ?? ''}${
|
|
181
|
+
options.mode
|
|
182
|
+
}${options.shouldBuildLazily ? 'lazy' : 'eager'}`,
|
|
183
|
+
) + '-AssetGraph';
|
|
184
|
+
}
|
|
170
185
|
|
|
171
186
|
this.isSingleChangeRebuild =
|
|
172
187
|
api
|
|
173
188
|
.getInvalidSubRequests()
|
|
189
|
+
// @ts-expect-error TS2367
|
|
174
190
|
.filter((req) => req.requestType === 'asset_request').length === 1;
|
|
175
191
|
this.queue = new PromiseQueue();
|
|
176
192
|
|
|
177
|
-
assetGraph.onNodeRemoved = (nodeId) => {
|
|
193
|
+
assetGraph.onNodeRemoved = (nodeId: NodeId) => {
|
|
178
194
|
this.assetGroupsWithRemovedParents.delete(nodeId);
|
|
179
195
|
|
|
180
196
|
// This needs to mark all connected nodes that doesn't become orphaned
|
|
@@ -196,7 +212,7 @@ export class AssetGraphBuilder {
|
|
|
196
212
|
}
|
|
197
213
|
|
|
198
214
|
async build(): Promise<AssetGraphRequestResult> {
|
|
199
|
-
let errors = [];
|
|
215
|
+
let errors: Array<Error> = [];
|
|
200
216
|
let rootNodeId = nullthrows(
|
|
201
217
|
this.assetGraph.rootNodeId,
|
|
202
218
|
'A root node is required to traverse',
|
|
@@ -224,6 +240,7 @@ export class AssetGraphBuilder {
|
|
|
224
240
|
for (let childNodeId of this.assetGraph.getNodeIdsConnectedFrom(nodeId)) {
|
|
225
241
|
let child = nullthrows(this.assetGraph.getNode(childNodeId));
|
|
226
242
|
if (
|
|
243
|
+
// @ts-expect-error TS2339
|
|
227
244
|
(!visited.has(childNodeId) || child.hasDeferred) &&
|
|
228
245
|
this.shouldVisitChild(nodeId, childNodeId)
|
|
229
246
|
) {
|
|
@@ -310,7 +327,7 @@ export class AssetGraphBuilder {
|
|
|
310
327
|
diagnostic: [...errors.values()][0],
|
|
311
328
|
});
|
|
312
329
|
}
|
|
313
|
-
} catch (e) {
|
|
330
|
+
} catch (e: any) {
|
|
314
331
|
await dumpGraphToGraphViz(
|
|
315
332
|
this.assetGraph,
|
|
316
333
|
'AssetGraph_' + this.name + '_failed',
|
|
@@ -428,9 +445,12 @@ export class AssetGraphBuilder {
|
|
|
428
445
|
shouldSkipRequest(nodeId: NodeId): boolean {
|
|
429
446
|
let node = nullthrows(this.assetGraph.getNode(nodeId));
|
|
430
447
|
return (
|
|
448
|
+
// @ts-expect-error TS2339
|
|
431
449
|
node.complete === true ||
|
|
432
450
|
!typesWithRequests.has(node.type) ||
|
|
451
|
+
// @ts-expect-error TS2339
|
|
433
452
|
(node.correspondingRequest != null &&
|
|
453
|
+
// @ts-expect-error TS2339
|
|
434
454
|
this.api.canSkipSubrequest(node.correspondingRequest))
|
|
435
455
|
);
|
|
436
456
|
}
|
|
@@ -459,7 +479,7 @@ export class AssetGraphBuilder {
|
|
|
459
479
|
`Can not queue corresponding request of node with type ${node.type}`,
|
|
460
480
|
);
|
|
461
481
|
}
|
|
462
|
-
return new Promise((resolve) => {
|
|
482
|
+
return new Promise((resolve: (result: Promise<null> | null) => void) => {
|
|
463
483
|
this.queue.add(() =>
|
|
464
484
|
promise.then(
|
|
465
485
|
() => {
|
|
@@ -501,6 +521,7 @@ export class AssetGraphBuilder {
|
|
|
501
521
|
|
|
502
522
|
if (didEntriesChange) {
|
|
503
523
|
this.assetGraph.safeToIncrementallyBundle = false;
|
|
524
|
+
this.assetGraph.setNeedsBundling();
|
|
504
525
|
}
|
|
505
526
|
}
|
|
506
527
|
}
|
|
@@ -515,15 +536,16 @@ export class AssetGraphBuilder {
|
|
|
515
536
|
|
|
516
537
|
async runPathRequest(input: Dependency) {
|
|
517
538
|
let request = createPathRequest({dependency: input, name: this.name});
|
|
518
|
-
let result = await this.api.runRequest<
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
);
|
|
539
|
+
let result = await this.api.runRequest<
|
|
540
|
+
PathRequestInput,
|
|
541
|
+
AssetGroup | null | undefined
|
|
542
|
+
>(request, {force: true});
|
|
522
543
|
this.assetGraph.resolveDependency(input, result, request.id);
|
|
523
544
|
}
|
|
524
545
|
|
|
525
546
|
async runAssetRequest(input: AssetGroup) {
|
|
526
547
|
this.assetRequests.push(input);
|
|
548
|
+
// @ts-expect-error TS2345
|
|
527
549
|
let request = createAssetRequest({
|
|
528
550
|
...input,
|
|
529
551
|
name: this.name,
|
|
@@ -538,16 +560,28 @@ export class AssetGraphBuilder {
|
|
|
538
560
|
|
|
539
561
|
if (assets != null) {
|
|
540
562
|
for (let asset of assets) {
|
|
563
|
+
// Pass the runtimeAssetRequiringExecutionOnLoad flag from the asset
|
|
564
|
+
// group down to the asset itself, for reading in the packager.
|
|
565
|
+
if (input.runtimeAssetRequiringExecutionOnLoad) {
|
|
566
|
+
asset.meta = {
|
|
567
|
+
...(asset.meta ?? {}),
|
|
568
|
+
runtimeAssetRequiringExecutionOnLoad:
|
|
569
|
+
input.runtimeAssetRequiringExecutionOnLoad,
|
|
570
|
+
};
|
|
571
|
+
}
|
|
572
|
+
|
|
541
573
|
if (this.assetGraph.safeToIncrementallyBundle) {
|
|
542
574
|
let otherAsset = this.assetGraph.getNodeByContentKey(asset.id);
|
|
543
575
|
if (otherAsset != null) {
|
|
544
576
|
invariant(otherAsset.type === 'asset');
|
|
545
577
|
if (!this._areDependenciesEqualForAssets(asset, otherAsset.value)) {
|
|
546
578
|
this.assetGraph.safeToIncrementallyBundle = false;
|
|
579
|
+
this.assetGraph.setNeedsBundling();
|
|
547
580
|
}
|
|
548
581
|
} else {
|
|
549
582
|
// adding a new entry or dependency
|
|
550
583
|
this.assetGraph.safeToIncrementallyBundle = false;
|
|
584
|
+
this.assetGraph.setNeedsBundling();
|
|
551
585
|
}
|
|
552
586
|
}
|
|
553
587
|
this.changedAssets.set(asset.id, asset);
|
|
@@ -556,6 +590,7 @@ export class AssetGraphBuilder {
|
|
|
556
590
|
this.assetGraph.resolveAssetGroup(input, assets, request.id);
|
|
557
591
|
} else {
|
|
558
592
|
this.assetGraph.safeToIncrementallyBundle = false;
|
|
593
|
+
this.assetGraph.setNeedsBundling();
|
|
559
594
|
}
|
|
560
595
|
|
|
561
596
|
this.isSingleChangeRebuild = false;
|