@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 strict-local
|
|
2
1
|
import type {Async} from '@atlaspack/types';
|
|
3
2
|
import type {SharedReference} from '@atlaspack/workers';
|
|
4
3
|
import type {StaticRunOpts} from '../RequestTracker';
|
|
@@ -12,22 +11,21 @@ import Validation from '../Validation';
|
|
|
12
11
|
import createAtlaspackConfigRequest from './AtlaspackConfigRequest';
|
|
13
12
|
import {requestTypes} from '../RequestTracker';
|
|
14
13
|
|
|
15
|
-
type ValidationRequest = {
|
|
16
|
-
id: string
|
|
17
|
-
|
|
18
|
-
run: (RunOpts<
|
|
19
|
-
input: ValidationRequestInput
|
|
20
|
-
|
|
14
|
+
type ValidationRequest = {
|
|
15
|
+
id: string;
|
|
16
|
+
readonly type: typeof requestTypes.validation_request;
|
|
17
|
+
run: (arg1: RunOpts<undefined>) => Async<void>;
|
|
18
|
+
input: ValidationRequestInput;
|
|
19
|
+
};
|
|
21
20
|
|
|
22
|
-
type RunOpts<TResult> = {
|
|
23
|
-
input: ValidationRequestInput
|
|
24
|
-
|
|
25
|
-
|};
|
|
21
|
+
type RunOpts<TResult> = {
|
|
22
|
+
input: ValidationRequestInput;
|
|
23
|
+
} & StaticRunOpts<TResult>;
|
|
26
24
|
|
|
27
|
-
type ValidationRequestInput = {
|
|
28
|
-
assetRequests: Array<AssetGroup
|
|
29
|
-
optionsRef: SharedReference
|
|
30
|
-
|
|
25
|
+
type ValidationRequestInput = {
|
|
26
|
+
assetRequests: Array<AssetGroup>;
|
|
27
|
+
optionsRef: SharedReference;
|
|
28
|
+
};
|
|
31
29
|
|
|
32
30
|
export default function createValidationRequest(
|
|
33
31
|
input: ValidationRequestInput,
|
|
@@ -44,17 +42,18 @@ export default function createValidationRequest(
|
|
|
44
42
|
|
|
45
43
|
let config = new AtlaspackConfig(processedConfig, options);
|
|
46
44
|
let trackedRequestsDesc = assetRequests.filter((request) => {
|
|
45
|
+
// @ts-expect-error TS2345
|
|
47
46
|
return config.getValidatorNames(request.filePath).length > 0;
|
|
48
47
|
});
|
|
49
48
|
|
|
50
49
|
// Schedule validations on workers for all plugins that implement the one-asset-at-a-time "validate" method.
|
|
51
50
|
let promises = trackedRequestsDesc.map(
|
|
52
51
|
async (request) =>
|
|
53
|
-
(
|
|
52
|
+
(await farm.createHandle('runValidate'))({
|
|
54
53
|
requests: [request],
|
|
55
54
|
optionsRef: optionsRef,
|
|
56
55
|
configCachePath: cachePath,
|
|
57
|
-
})
|
|
56
|
+
}) as undefined,
|
|
58
57
|
);
|
|
59
58
|
|
|
60
59
|
// Skip sending validation requests if no validators were configured
|
|
@@ -64,10 +63,12 @@ export default function createValidationRequest(
|
|
|
64
63
|
|
|
65
64
|
// Schedule validations on the main thread for all validation plugins that implement "validateAll".
|
|
66
65
|
promises.push(
|
|
66
|
+
// @ts-expect-error TS2345
|
|
67
67
|
new Validation({
|
|
68
68
|
requests: trackedRequestsDesc,
|
|
69
69
|
options,
|
|
70
70
|
config,
|
|
71
|
+
// @ts-expect-error TS2322
|
|
71
72
|
report,
|
|
72
73
|
dedicatedThread: true,
|
|
73
74
|
}).run(),
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
// @flow strict-local
|
|
2
|
-
|
|
3
1
|
import type {FileSystem, FileOptions} from '@atlaspack/fs';
|
|
4
2
|
import type {ContentKey} from '@atlaspack/graph';
|
|
5
3
|
import type {Async, FilePath, Compressor} from '@atlaspack/types';
|
|
@@ -40,30 +38,31 @@ import {AtlaspackConfig} from '../AtlaspackConfig';
|
|
|
40
38
|
import ThrowableDiagnostic, {errorToDiagnostic} from '@atlaspack/diagnostic';
|
|
41
39
|
import {PluginTracer, tracer} from '@atlaspack/profiler';
|
|
42
40
|
import {requestTypes} from '../RequestTracker';
|
|
41
|
+
import {getFeatureFlag} from '@atlaspack/feature-flags';
|
|
42
|
+
import {fromEnvironmentId} from '../EnvironmentManager';
|
|
43
43
|
|
|
44
44
|
const HASH_REF_PREFIX_LEN = HASH_REF_PREFIX.length;
|
|
45
45
|
const BOUNDARY_LENGTH = HASH_REF_PREFIX.length + 32 - 1;
|
|
46
46
|
|
|
47
|
-
type WriteBundleRequestInput = {
|
|
48
|
-
bundleGraph: BundleGraph
|
|
49
|
-
bundle: Bundle
|
|
50
|
-
info: BundleInfo
|
|
51
|
-
hashRefToNameHash: Map<string, string
|
|
52
|
-
|
|
47
|
+
type WriteBundleRequestInput = {
|
|
48
|
+
bundleGraph: BundleGraph;
|
|
49
|
+
bundle: Bundle;
|
|
50
|
+
info: BundleInfo;
|
|
51
|
+
hashRefToNameHash: Map<string, string>;
|
|
52
|
+
};
|
|
53
53
|
|
|
54
54
|
export type WriteBundleRequestResult = PackagedBundleInfo;
|
|
55
55
|
|
|
56
|
-
type RunInput<TResult> = {
|
|
57
|
-
input: WriteBundleRequestInput
|
|
58
|
-
|
|
59
|
-
|};
|
|
56
|
+
type RunInput<TResult> = {
|
|
57
|
+
input: WriteBundleRequestInput;
|
|
58
|
+
} & StaticRunOpts<TResult>;
|
|
60
59
|
|
|
61
|
-
export type WriteBundleRequest = {
|
|
62
|
-
id: ContentKey
|
|
63
|
-
|
|
64
|
-
run: (RunInput<PackagedBundleInfo>) => Async<PackagedBundleInfo
|
|
65
|
-
input: WriteBundleRequestInput
|
|
66
|
-
|
|
60
|
+
export type WriteBundleRequest = {
|
|
61
|
+
id: ContentKey;
|
|
62
|
+
readonly type: typeof requestTypes.write_bundle_request;
|
|
63
|
+
run: (arg1: RunInput<PackagedBundleInfo>) => Async<PackagedBundleInfo>;
|
|
64
|
+
input: WriteBundleRequestInput;
|
|
65
|
+
};
|
|
67
66
|
|
|
68
67
|
/**
|
|
69
68
|
* Writes a bundle to the dist directory, replacing hash references with the final content hashes.
|
|
@@ -83,6 +82,7 @@ export default function createWriteBundleRequest(
|
|
|
83
82
|
};
|
|
84
83
|
}
|
|
85
84
|
|
|
85
|
+
// @ts-expect-error TS7031
|
|
86
86
|
async function run({input, options, api}) {
|
|
87
87
|
let {bundleGraph, bundle, info, hashRefToNameHash} = input;
|
|
88
88
|
let {inputFS, outputFS} = options;
|
|
@@ -110,7 +110,9 @@ async function run({input, options, api}) {
|
|
|
110
110
|
let cacheKeys = info.cacheKeys;
|
|
111
111
|
let mapKey = cacheKeys.map;
|
|
112
112
|
let fullPath = fromProjectPath(options.projectRoot, filePath);
|
|
113
|
-
|
|
113
|
+
const env = fromEnvironmentId(bundle.env);
|
|
114
|
+
|
|
115
|
+
if (mapKey && env.sourceMap && !env.sourceMap.inline) {
|
|
114
116
|
api.invalidateOnFileDelete(
|
|
115
117
|
toProjectPath(options.projectRoot, fullPath + '.map'),
|
|
116
118
|
);
|
|
@@ -139,12 +141,14 @@ async function run({input, options, api}) {
|
|
|
139
141
|
}
|
|
140
142
|
let size = 0;
|
|
141
143
|
contentStream = contentStream.pipe(
|
|
142
|
-
|
|
144
|
+
// @ts-expect-error TS2554
|
|
145
|
+
new TapStream((buf: Buffer) => {
|
|
143
146
|
size += buf.length;
|
|
144
147
|
}),
|
|
145
148
|
);
|
|
146
149
|
|
|
147
150
|
let configResult = nullthrows(
|
|
151
|
+
// @ts-expect-error TS2347
|
|
148
152
|
await api.runRequest<null, ConfigAndCachePath>(
|
|
149
153
|
createAtlaspackConfigRequest(),
|
|
150
154
|
),
|
|
@@ -167,14 +171,15 @@ async function run({input, options, api}) {
|
|
|
167
171
|
api,
|
|
168
172
|
);
|
|
169
173
|
|
|
170
|
-
|
|
171
|
-
mapKey
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
174
|
+
const hasSourceMap = getFeatureFlag('cachePerformanceImprovements')
|
|
175
|
+
? await options.cache.hasLargeBlob(mapKey)
|
|
176
|
+
: await options.cache.has(mapKey);
|
|
177
|
+
if (mapKey && env.sourceMap && !env.sourceMap.inline && hasSourceMap) {
|
|
178
|
+
const mapEntry = getFeatureFlag('cachePerformanceImprovements')
|
|
179
|
+
? await options.cache.getLargeBlob(mapKey)
|
|
180
|
+
: await options.cache.getBlob(mapKey);
|
|
176
181
|
await writeFiles(
|
|
177
|
-
blobToStream(
|
|
182
|
+
blobToStream(mapEntry),
|
|
178
183
|
info,
|
|
179
184
|
hashRefToNameHash,
|
|
180
185
|
options,
|
|
@@ -189,6 +194,7 @@ async function run({input, options, api}) {
|
|
|
189
194
|
|
|
190
195
|
let res = {
|
|
191
196
|
filePath,
|
|
197
|
+
bundleId: bundle.id,
|
|
192
198
|
type: info.type,
|
|
193
199
|
stats: {
|
|
194
200
|
size,
|
|
@@ -201,14 +207,15 @@ async function run({input, options, api}) {
|
|
|
201
207
|
}
|
|
202
208
|
|
|
203
209
|
async function writeFiles(
|
|
204
|
-
|
|
210
|
+
// @ts-expect-error TS2503
|
|
211
|
+
inputStream: stream.Readable,
|
|
205
212
|
info: BundleInfo,
|
|
206
213
|
hashRefToNameHash: Map<string, string>,
|
|
207
214
|
options: AtlaspackOptions,
|
|
208
215
|
config: AtlaspackConfig,
|
|
209
216
|
outputFS: FileSystem,
|
|
210
217
|
filePath: ProjectPath,
|
|
211
|
-
writeOptions:
|
|
218
|
+
writeOptions: FileOptions | null | undefined,
|
|
212
219
|
devDeps: Map<string, string>,
|
|
213
220
|
api: RunAPI<PackagedBundleInfo>,
|
|
214
221
|
) {
|
|
@@ -221,9 +228,10 @@ async function writeFiles(
|
|
|
221
228
|
? inputStream.pipe(replaceStream(hashRefToNameHash))
|
|
222
229
|
: inputStream;
|
|
223
230
|
|
|
224
|
-
let promises = [];
|
|
231
|
+
let promises: Array<Promise<undefined>> = [];
|
|
225
232
|
for (let compressor of compressors) {
|
|
226
233
|
promises.push(
|
|
234
|
+
// @ts-expect-error TS2345
|
|
227
235
|
runCompressor(
|
|
228
236
|
compressor,
|
|
229
237
|
cloneStream(stream),
|
|
@@ -242,11 +250,12 @@ async function writeFiles(
|
|
|
242
250
|
|
|
243
251
|
async function runCompressor(
|
|
244
252
|
compressor: LoadedPlugin<Compressor>,
|
|
245
|
-
|
|
253
|
+
// @ts-expect-error TS2503
|
|
254
|
+
stream: stream.Readable,
|
|
246
255
|
options: AtlaspackOptions,
|
|
247
256
|
outputFS: FileSystem,
|
|
248
257
|
filePath: FilePath,
|
|
249
|
-
writeOptions:
|
|
258
|
+
writeOptions: FileOptions | null | undefined,
|
|
250
259
|
devDeps: Map<string, string>,
|
|
251
260
|
api: RunAPI<PackagedBundleInfo>,
|
|
252
261
|
) {
|
|
@@ -265,21 +274,26 @@ async function runCompressor(
|
|
|
265
274
|
});
|
|
266
275
|
|
|
267
276
|
if (res != null) {
|
|
268
|
-
await new Promise(
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
277
|
+
await new Promise(
|
|
278
|
+
(
|
|
279
|
+
resolve: (result: Promise<undefined> | undefined) => void,
|
|
280
|
+
reject: (error?: any) => void,
|
|
281
|
+
) =>
|
|
282
|
+
pipeline(
|
|
283
|
+
res.stream,
|
|
284
|
+
outputFS.createWriteStream(
|
|
285
|
+
filePath + (res.type != null ? '.' + res.type : ''),
|
|
286
|
+
writeOptions,
|
|
287
|
+
),
|
|
288
|
+
(err) => {
|
|
289
|
+
if (err) reject(err);
|
|
290
|
+
// @ts-expect-error TS2794
|
|
291
|
+
else resolve();
|
|
292
|
+
},
|
|
274
293
|
),
|
|
275
|
-
(err) => {
|
|
276
|
-
if (err) reject(err);
|
|
277
|
-
else resolve();
|
|
278
|
-
},
|
|
279
|
-
),
|
|
280
294
|
);
|
|
281
295
|
}
|
|
282
|
-
} catch (err) {
|
|
296
|
+
} catch (err: any) {
|
|
283
297
|
throw new ThrowableDiagnostic({
|
|
284
298
|
diagnostic: errorToDiagnostic(err, {
|
|
285
299
|
origin: compressor.name,
|
|
@@ -300,11 +314,18 @@ async function runCompressor(
|
|
|
300
314
|
}
|
|
301
315
|
}
|
|
302
316
|
|
|
303
|
-
function replaceStream(hashRefToNameHash) {
|
|
317
|
+
function replaceStream(hashRefToNameHash: Map<string, string>) {
|
|
304
318
|
let boundaryStr = Buffer.alloc(0);
|
|
305
319
|
let replaced = Buffer.alloc(0);
|
|
306
320
|
return new Transform({
|
|
307
|
-
transform(
|
|
321
|
+
transform(
|
|
322
|
+
chunk: Buffer | string,
|
|
323
|
+
encoding: string,
|
|
324
|
+
cb: (
|
|
325
|
+
error?: Error | null | undefined,
|
|
326
|
+
data?: Buffer | string | null | undefined,
|
|
327
|
+
) => void,
|
|
328
|
+
) {
|
|
308
329
|
let str = Buffer.concat([boundaryStr, Buffer.from(chunk)]);
|
|
309
330
|
let lastMatchI = 0;
|
|
310
331
|
if (replaced.length < str.byteLength) {
|
|
@@ -345,18 +366,25 @@ function replaceStream(hashRefToNameHash) {
|
|
|
345
366
|
cb(null, strUpToBoundary);
|
|
346
367
|
},
|
|
347
368
|
|
|
348
|
-
flush(
|
|
369
|
+
flush(
|
|
370
|
+
cb: (
|
|
371
|
+
error?: Error | null | undefined,
|
|
372
|
+
data?: Buffer | string | null | undefined,
|
|
373
|
+
) => void,
|
|
374
|
+
) {
|
|
349
375
|
cb(null, boundaryStr);
|
|
350
376
|
},
|
|
351
377
|
});
|
|
352
378
|
}
|
|
353
379
|
|
|
354
|
-
|
|
380
|
+
// @ts-expect-error TS2503
|
|
381
|
+
function cloneStream(readable: stream.Readable | stream.Transform) {
|
|
355
382
|
let res = new Readable();
|
|
356
|
-
// $FlowFixMe
|
|
357
383
|
res._read = () => {};
|
|
384
|
+
// @ts-expect-error TS7006
|
|
358
385
|
readable.on('data', (chunk) => res.push(chunk));
|
|
359
386
|
readable.on('end', () => res.push(null));
|
|
387
|
+
// @ts-expect-error TS7006
|
|
360
388
|
readable.on('error', (err) => res.emit('error', err));
|
|
361
389
|
return res;
|
|
362
390
|
}
|
|
@@ -1,14 +1,18 @@
|
|
|
1
|
-
// @flow strict-local
|
|
2
|
-
|
|
3
1
|
import type {ContentKey} from '@atlaspack/graph';
|
|
4
2
|
import type {Async} from '@atlaspack/types';
|
|
5
3
|
import {getFeatureFlag} from '@atlaspack/feature-flags';
|
|
6
4
|
import type {SharedReference} from '@atlaspack/workers';
|
|
7
5
|
import type {StaticRunOpts} from '../RequestTracker';
|
|
8
6
|
import {requestTypes} from '../RequestTracker';
|
|
9
|
-
import
|
|
7
|
+
import {
|
|
8
|
+
BundleBehavior,
|
|
9
|
+
type PackagedBundleInfo,
|
|
10
|
+
type Bundle,
|
|
11
|
+
type AtlaspackOptions,
|
|
12
|
+
} from '../types';
|
|
10
13
|
import type BundleGraph from '../BundleGraph';
|
|
11
14
|
import type {BundleInfo} from '../PackagerRunner';
|
|
15
|
+
import {report} from '../ReporterRunner';
|
|
12
16
|
|
|
13
17
|
import {HASH_REF_PREFIX} from '../constants';
|
|
14
18
|
import {joinProjectPath} from '../projectPath';
|
|
@@ -16,27 +20,49 @@ import nullthrows from 'nullthrows';
|
|
|
16
20
|
import {hashString} from '@atlaspack/rust';
|
|
17
21
|
import {createPackageRequest} from './PackageRequest';
|
|
18
22
|
import createWriteBundleRequest from './WriteBundleRequest';
|
|
23
|
+
import {debugTools} from '@atlaspack/utils';
|
|
19
24
|
|
|
20
|
-
type WriteBundlesRequestInput = {
|
|
21
|
-
bundleGraph: BundleGraph
|
|
22
|
-
optionsRef: SharedReference
|
|
23
|
-
|
|
25
|
+
type WriteBundlesRequestInput = {
|
|
26
|
+
bundleGraph: BundleGraph;
|
|
27
|
+
optionsRef: SharedReference;
|
|
28
|
+
};
|
|
24
29
|
|
|
25
|
-
export type WriteBundlesRequestResult =
|
|
30
|
+
export type WriteBundlesRequestResult = {
|
|
31
|
+
bundleInfo: Map<string, PackagedBundleInfo>;
|
|
32
|
+
scopeHoistingStats?: {
|
|
33
|
+
totalAssets: number;
|
|
34
|
+
wrappedAssets: number;
|
|
35
|
+
};
|
|
36
|
+
};
|
|
26
37
|
|
|
27
|
-
type RunInput<TResult> = {
|
|
28
|
-
input: WriteBundlesRequestInput
|
|
29
|
-
|
|
30
|
-
|};
|
|
38
|
+
type RunInput<TResult> = {
|
|
39
|
+
input: WriteBundlesRequestInput;
|
|
40
|
+
} & StaticRunOpts<TResult>;
|
|
31
41
|
|
|
32
|
-
export type WriteBundlesRequest = {
|
|
33
|
-
id: ContentKey
|
|
34
|
-
|
|
42
|
+
export type WriteBundlesRequest = {
|
|
43
|
+
id: ContentKey;
|
|
44
|
+
readonly type: typeof requestTypes.write_bundles_request;
|
|
35
45
|
run: (
|
|
36
|
-
RunInput<WriteBundlesRequestResult>,
|
|
37
|
-
) => Async<WriteBundlesRequestResult
|
|
38
|
-
input: WriteBundlesRequestInput
|
|
39
|
-
|
|
46
|
+
arg1: RunInput<WriteBundlesRequestResult>,
|
|
47
|
+
) => Async<WriteBundlesRequestResult>;
|
|
48
|
+
input: WriteBundlesRequestInput;
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
function reportPackagingProgress(
|
|
52
|
+
completeBundles: number,
|
|
53
|
+
totalBundles: number,
|
|
54
|
+
) {
|
|
55
|
+
if (!getFeatureFlag('cliProgressReportingImprovements')) {
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
report({
|
|
60
|
+
type: 'buildProgress',
|
|
61
|
+
phase: 'packagingAndOptimizing',
|
|
62
|
+
totalBundles,
|
|
63
|
+
completeBundles,
|
|
64
|
+
});
|
|
65
|
+
}
|
|
40
66
|
|
|
41
67
|
/**
|
|
42
68
|
* Packages, optimizes, and writes all bundles to the dist directory.
|
|
@@ -52,17 +78,22 @@ export default function createWriteBundlesRequest(
|
|
|
52
78
|
};
|
|
53
79
|
}
|
|
54
80
|
|
|
55
|
-
async function run({
|
|
81
|
+
async function run({
|
|
82
|
+
input,
|
|
83
|
+
api,
|
|
84
|
+
farm,
|
|
85
|
+
options,
|
|
86
|
+
}: RunInput<WriteBundlesRequestResult>) {
|
|
56
87
|
let {bundleGraph, optionsRef} = input;
|
|
57
88
|
let {ref, dispose} = await farm.createSharedReference(bundleGraph);
|
|
58
89
|
|
|
59
90
|
api.invalidateOnOptionChange('shouldContentHash');
|
|
60
91
|
|
|
61
92
|
let res = new Map();
|
|
62
|
-
let bundleInfoMap: {
|
|
63
|
-
[string]: BundleInfo
|
|
64
|
-
|
|
65
|
-
let writeEarlyPromises = {};
|
|
93
|
+
let bundleInfoMap: {
|
|
94
|
+
[key: string]: BundleInfo;
|
|
95
|
+
} = {};
|
|
96
|
+
let writeEarlyPromises: Record<string, Promise<PackagedBundleInfo>> = {};
|
|
66
97
|
let hashRefToNameHash = new Map();
|
|
67
98
|
|
|
68
99
|
// Include inline bundles so that non-inline bundles referenced from inline bundles are written to
|
|
@@ -71,7 +102,11 @@ async function run({input, api, farm, options}) {
|
|
|
71
102
|
includeInline: getFeatureFlag('inlineBundlesSourceMapFixes'),
|
|
72
103
|
});
|
|
73
104
|
const bundles = allBundles
|
|
74
|
-
.filter(
|
|
105
|
+
.filter(
|
|
106
|
+
(bundle) =>
|
|
107
|
+
bundle.bundleBehavior !== BundleBehavior.inline &&
|
|
108
|
+
bundle.bundleBehavior !== BundleBehavior.inlineIsolated,
|
|
109
|
+
)
|
|
75
110
|
.filter((bundle) => {
|
|
76
111
|
// Do not package and write placeholder bundles to disk. We just
|
|
77
112
|
// need to update the name so other bundles can reference it.
|
|
@@ -84,6 +119,7 @@ async function run({input, api, farm, options}) {
|
|
|
84
119
|
).replace(bundle.hashReference, hash);
|
|
85
120
|
res.set(bundle.id, {
|
|
86
121
|
filePath: joinProjectPath(bundle.target.distDir, name),
|
|
122
|
+
bundleId: bundle.id,
|
|
87
123
|
type: bundle.type, // FIXME: this is wrong if the packager changes the type...
|
|
88
124
|
stats: {
|
|
89
125
|
time: 0,
|
|
@@ -96,14 +132,19 @@ async function run({input, api, farm, options}) {
|
|
|
96
132
|
return true;
|
|
97
133
|
});
|
|
98
134
|
|
|
135
|
+
let cachedBundles = new Set(
|
|
136
|
+
bundles.filter((b) => api.canSkipSubrequest(bundleGraph.getHash(b))),
|
|
137
|
+
);
|
|
138
|
+
|
|
99
139
|
// Package on the main thread if there is only one bundle to package.
|
|
100
140
|
// This avoids the cost of serializing the bundle graph for single file change builds.
|
|
101
141
|
let useMainThread =
|
|
102
|
-
bundles.length === 1 ||
|
|
103
|
-
bundles.filter((b) => !api.canSkipSubrequest(bundleGraph.getHash(b)))
|
|
104
|
-
.length === 1;
|
|
142
|
+
bundles.length === 1 || bundles.length - cachedBundles.size <= 1;
|
|
105
143
|
|
|
106
144
|
try {
|
|
145
|
+
let completeBundles = cachedBundles.size;
|
|
146
|
+
reportPackagingProgress(completeBundles, bundles.length);
|
|
147
|
+
|
|
107
148
|
await Promise.all(
|
|
108
149
|
bundles.map(async (bundle) => {
|
|
109
150
|
let request = createPackageRequest({
|
|
@@ -116,6 +157,11 @@ async function run({input, api, farm, options}) {
|
|
|
116
157
|
|
|
117
158
|
let info = await api.runRequest(request);
|
|
118
159
|
|
|
160
|
+
if (!cachedBundles.has(bundle)) {
|
|
161
|
+
completeBundles++;
|
|
162
|
+
reportPackagingProgress(completeBundles, bundles.length);
|
|
163
|
+
}
|
|
164
|
+
|
|
119
165
|
if (!useMainThread) {
|
|
120
166
|
// Force a refresh of the cache to avoid a race condition
|
|
121
167
|
// between threaded reads and writes that can result in an LMDB cache miss:
|
|
@@ -167,18 +213,42 @@ async function run({input, api, farm, options}) {
|
|
|
167
213
|
}),
|
|
168
214
|
);
|
|
169
215
|
|
|
170
|
-
|
|
171
|
-
|
|
216
|
+
let result: WriteBundlesRequestResult = {bundleInfo: res};
|
|
217
|
+
|
|
218
|
+
if (debugTools['scope-hoisting-stats']) {
|
|
219
|
+
// Aggregate scope hoisting stats from all bundles
|
|
220
|
+
let aggregatedScopeHoistingStats = {
|
|
221
|
+
totalAssets: 0,
|
|
222
|
+
wrappedAssets: 0,
|
|
223
|
+
};
|
|
224
|
+
|
|
225
|
+
for (let bundle of bundles) {
|
|
226
|
+
let bundleInfo = bundleInfoMap[bundle.id];
|
|
227
|
+
if (bundleInfo?.scopeHoistingStats) {
|
|
228
|
+
aggregatedScopeHoistingStats.totalAssets +=
|
|
229
|
+
bundleInfo.scopeHoistingStats.totalAssets;
|
|
230
|
+
aggregatedScopeHoistingStats.wrappedAssets +=
|
|
231
|
+
bundleInfo.scopeHoistingStats.wrappedAssets;
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
result.scopeHoistingStats = aggregatedScopeHoistingStats;
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
api.storeResult(result);
|
|
239
|
+
return result;
|
|
172
240
|
} finally {
|
|
173
241
|
await dispose();
|
|
174
242
|
}
|
|
175
243
|
}
|
|
176
244
|
|
|
177
245
|
function assignComplexNameHashes(
|
|
178
|
-
hashRefToNameHash,
|
|
179
|
-
bundles
|
|
180
|
-
bundleInfoMap
|
|
181
|
-
|
|
246
|
+
hashRefToNameHash: Map<string, string>,
|
|
247
|
+
bundles: Array<Bundle>,
|
|
248
|
+
bundleInfoMap: {
|
|
249
|
+
[key: string]: BundleInfo;
|
|
250
|
+
},
|
|
251
|
+
options: AtlaspackOptions,
|
|
182
252
|
) {
|
|
183
253
|
for (let bundle of bundles) {
|
|
184
254
|
if (hashRefToNameHash.get(bundle.hashReference) != null) {
|
|
@@ -198,9 +268,11 @@ function assignComplexNameHashes(
|
|
|
198
268
|
}
|
|
199
269
|
|
|
200
270
|
function getBundlesIncludedInHash(
|
|
201
|
-
bundleId,
|
|
202
|
-
bundleInfoMap
|
|
203
|
-
|
|
271
|
+
bundleId: ContentKey | string,
|
|
272
|
+
bundleInfoMap: {
|
|
273
|
+
[key: string]: BundleInfo;
|
|
274
|
+
},
|
|
275
|
+
included = new Set<string>(),
|
|
204
276
|
) {
|
|
205
277
|
included.add(bundleId);
|
|
206
278
|
for (let hashRef of bundleInfoMap[bundleId]?.hashReferences ?? []) {
|
|
@@ -1,15 +1,12 @@
|
|
|
1
1
|
/* eslint-disable no-console */
|
|
2
|
-
// @
|
|
3
|
-
|
|
4
|
-
// $FlowFixMe
|
|
2
|
+
// @ts-expect-error missing types
|
|
5
3
|
import deepClone from 'rfdc/default';
|
|
6
|
-
// $FlowFixMe
|
|
7
4
|
import {diff} from 'jest-diff';
|
|
8
5
|
import AssetGraph from '../AssetGraph';
|
|
9
6
|
import type {AssetGraphNode} from '../types';
|
|
10
|
-
import {
|
|
7
|
+
import {toProjectPath} from '../projectPath';
|
|
11
8
|
|
|
12
|
-
function filterNode(node) {
|
|
9
|
+
function filterNode(node: any) {
|
|
13
10
|
let clone = deepClone(node);
|
|
14
11
|
|
|
15
12
|
// Clean up anything you don't want to see in the diff
|
|
@@ -35,24 +32,26 @@ function filterNode(node) {
|
|
|
35
32
|
return clone;
|
|
36
33
|
}
|
|
37
34
|
|
|
35
|
+
// @ts-expect-error missing return type
|
|
38
36
|
function compactDeep(
|
|
39
|
-
obj:
|
|
37
|
+
obj: unknown,
|
|
40
38
|
ignoredPatterns: Array<string> = [],
|
|
41
39
|
currentPath: string = '$',
|
|
42
40
|
) {
|
|
43
41
|
if (obj instanceof Map) {
|
|
44
|
-
const copy = {};
|
|
45
|
-
Array.from(obj.entries()).forEach(([k, v]) => {
|
|
42
|
+
const copy: Record<string, any> = {};
|
|
43
|
+
Array.from(obj.entries()).forEach(([k, v]: [any, any]) => {
|
|
46
44
|
if (v != null) {
|
|
47
45
|
copy[k] = compactDeep(v, ignoredPatterns, `${currentPath}.${k}`);
|
|
48
46
|
}
|
|
49
47
|
});
|
|
50
48
|
return copy;
|
|
51
49
|
} else if (Array.isArray(obj)) {
|
|
50
|
+
// @ts-expect-error implicit any
|
|
52
51
|
return obj.map((v) => compactDeep(v, ignoredPatterns, `${currentPath}[]`));
|
|
53
52
|
} else if (typeof obj === 'object') {
|
|
54
|
-
const copy = {};
|
|
55
|
-
Object.entries(obj ?? {}).forEach(([key, value]) => {
|
|
53
|
+
const copy: Record<string, any> = {};
|
|
54
|
+
Object.entries(obj ?? {}).forEach(([key, value]: [any, any]) => {
|
|
56
55
|
const path = `${currentPath}.${key}`;
|
|
57
56
|
if (ignoredPatterns.some((pattern) => path.includes(pattern))) {
|
|
58
57
|
return;
|
|
@@ -72,21 +71,26 @@ function compactDeep(
|
|
|
72
71
|
}
|
|
73
72
|
}
|
|
74
73
|
|
|
75
|
-
function assetGraphDiff(
|
|
76
|
-
|
|
77
|
-
|
|
74
|
+
function assetGraphDiff(
|
|
75
|
+
jsAssetGraph: AssetGraph,
|
|
76
|
+
rustAssetGraph: AssetGraph,
|
|
77
|
+
projectRoot: string,
|
|
78
|
+
) {
|
|
79
|
+
const getNodes = (graph: any) => {
|
|
80
|
+
let nodes: Record<string, any> = {};
|
|
78
81
|
|
|
82
|
+
// @ts-expect-error implicit any
|
|
79
83
|
graph.traverse((nodeId) => {
|
|
80
84
|
let node: AssetGraphNode | null = graph.getNode(nodeId) ?? null;
|
|
81
85
|
if (!node) return;
|
|
82
86
|
|
|
83
87
|
if (node.type === 'dependency') {
|
|
84
|
-
let sourcePath = node.value.sourcePath
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
] = filterNode(node);
|
|
88
|
+
let sourcePath = node.value.sourcePath
|
|
89
|
+
? toProjectPath(projectRoot, node.value.sourcePath)
|
|
90
|
+
: toProjectPath(projectRoot, 'entry');
|
|
91
|
+
nodes[`dep:${sourcePath}:${node.value.specifier}`] = filterNode(node);
|
|
88
92
|
} else if (node.type === 'asset') {
|
|
89
|
-
nodes[`asset:${
|
|
93
|
+
nodes[`asset:${toProjectPath(projectRoot, node.value.filePath)}`] =
|
|
90
94
|
filterNode(node);
|
|
91
95
|
}
|
|
92
96
|
});
|
|
@@ -98,8 +102,8 @@ function assetGraphDiff(jsAssetGraph: AssetGraph, rustAssetGraph: AssetGraph) {
|
|
|
98
102
|
const rustNodes = getNodes(rustAssetGraph);
|
|
99
103
|
|
|
100
104
|
const all = new Set([...Object.keys(jsNodes), ...Object.keys(rustNodes)]);
|
|
101
|
-
const missing = [];
|
|
102
|
-
const extra = [];
|
|
105
|
+
const missing: Array<any | string> = [];
|
|
106
|
+
const extra: Array<any | string> = [];
|
|
103
107
|
|
|
104
108
|
for (const key of all.keys()) {
|
|
105
109
|
if (process.env.NATIVE_COMPARE !== 'true') {
|