@atlaspack/core 2.16.2-canary.48 → 2.16.2-canary.481
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 +1324 -0
- package/dist/AssetGraph.js +523 -0
- package/dist/Atlaspack.js +701 -0
- package/dist/AtlaspackConfig.js +324 -0
- package/dist/AtlaspackConfig.schema.js +117 -0
- package/dist/BundleGraph.js +1906 -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 +470 -0
- package/dist/ReporterRunner.js +151 -0
- package/dist/RequestTracker.js +1297 -0
- package/dist/SymbolPropagation.js +624 -0
- package/dist/TargetDescriptor.schema.js +146 -0
- package/dist/Transformation.js +514 -0
- package/dist/UncommittedAsset.js +310 -0
- package/dist/Validation.js +196 -0
- package/dist/applyRuntimes.js +384 -0
- package/dist/assetUtils.js +169 -0
- package/dist/atlaspack-v3/AtlaspackV3.js +83 -0
- package/dist/atlaspack-v3/NapiWorkerPool.js +114 -0
- package/dist/atlaspack-v3/fs.js +53 -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 +98 -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 +24 -0
- package/dist/atlaspack-v3/worker/compat/mutable-asset.js +152 -0
- package/dist/atlaspack-v3/worker/compat/plugin-config.js +64 -0
- package/dist/atlaspack-v3/worker/compat/plugin-options.js +137 -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/side-effect-detector.js +243 -0
- package/dist/atlaspack-v3/worker/worker.js +398 -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 +371 -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 +430 -0
- package/dist/requests/AssetGraphRequestRust.js +471 -0
- package/dist/requests/AssetRequest.js +130 -0
- package/dist/requests/AtlaspackBuildRequest.js +98 -0
- package/dist/requests/AtlaspackConfigRequest.js +493 -0
- package/dist/requests/BundleGraphRequest.js +381 -0
- package/dist/requests/BundleGraphRequestRust.js +324 -0
- package/dist/requests/BundleGraphRequestUtils.js +262 -0
- package/dist/requests/ConfigRequest.js +246 -0
- package/dist/requests/DevDepRequest.js +204 -0
- package/dist/requests/EntryRequest.js +314 -0
- package/dist/requests/PackageRequest.js +89 -0
- package/dist/requests/PathRequest.js +349 -0
- package/dist/requests/TargetRequest.js +1316 -0
- package/dist/requests/ValidationRequest.js +49 -0
- package/dist/requests/WriteBundleRequest.js +522 -0
- package/dist/requests/WriteBundlesRequest.js +190 -0
- package/dist/requests/asset-graph-diff.js +128 -0
- package/dist/requests/asset-graph-dot.js +131 -0
- package/dist/resolveOptions.js +267 -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 +53 -15
- package/lib/Atlaspack.js +140 -56
- package/lib/AtlaspackConfig.js +17 -6
- package/lib/AtlaspackConfig.schema.js +16 -5
- package/lib/BundleGraph.js +390 -43
- package/lib/CommittedAsset.js +8 -2
- package/lib/Dependency.js +9 -3
- package/lib/Environment.js +16 -10
- package/lib/EnvironmentManager.js +143 -0
- package/lib/IdentifierRegistry.js +2 -4
- package/lib/InternalConfig.js +3 -2
- package/lib/PackagerRunner.js +46 -82
- package/lib/ReporterRunner.js +8 -12
- package/lib/RequestTracker.js +191 -152
- package/lib/SymbolPropagation.js +52 -29
- package/lib/TargetDescriptor.schema.js +10 -1
- package/lib/Transformation.js +68 -19
- package/lib/UncommittedAsset.js +17 -24
- package/lib/Validation.js +20 -5
- package/lib/applyRuntimes.js +98 -7
- package/lib/assetUtils.js +16 -6
- package/lib/atlaspack-v3/AtlaspackV3.js +58 -15
- package/lib/atlaspack-v3/NapiWorkerPool.js +63 -2
- package/lib/atlaspack-v3/fs.js +4 -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 +31 -25
- package/lib/atlaspack-v3/worker/compat/dependency.js +4 -1
- package/lib/atlaspack-v3/worker/compat/environment.js +10 -7
- package/lib/atlaspack-v3/worker/compat/index.js +0 -11
- package/lib/atlaspack-v3/worker/compat/mutable-asset.js +16 -11
- package/lib/atlaspack-v3/worker/compat/plugin-config.js +14 -35
- package/lib/atlaspack-v3/worker/compat/plugin-options.js +16 -2
- 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/side-effect-detector.js +214 -0
- package/lib/atlaspack-v3/worker/worker.js +231 -79
- package/lib/constants.js +0 -1
- package/lib/dumpGraphToGraphViz.js +72 -17
- package/lib/index.js +46 -3
- package/lib/loadAtlaspackPlugin.js +2 -3
- package/lib/loadDotEnv.js +5 -2
- package/lib/projectPath.js +6 -1
- package/lib/public/Asset.js +22 -12
- package/lib/public/Bundle.js +16 -18
- package/lib/public/BundleGraph.js +27 -25
- package/lib/public/BundleGroup.js +5 -6
- package/lib/public/Config.js +118 -18
- package/lib/public/Dependency.js +9 -7
- package/lib/public/Environment.js +13 -8
- package/lib/public/MutableBundleGraph.js +56 -15
- package/lib/public/PluginOptions.js +2 -2
- package/lib/public/Symbols.js +12 -12
- package/lib/public/Target.js +8 -7
- package/lib/registerCoreWithSerializer.js +7 -4
- package/lib/requests/AssetGraphRequest.js +61 -40
- package/lib/requests/AssetGraphRequestRust.js +314 -82
- package/lib/requests/AssetRequest.js +24 -7
- package/lib/requests/AtlaspackBuildRequest.js +53 -7
- package/lib/requests/AtlaspackConfigRequest.js +29 -19
- package/lib/requests/BundleGraphRequest.js +61 -130
- package/lib/requests/BundleGraphRequestRust.js +381 -0
- package/lib/requests/BundleGraphRequestUtils.js +280 -0
- package/lib/requests/ConfigRequest.js +55 -7
- package/lib/requests/DevDepRequest.js +32 -6
- package/lib/requests/EntryRequest.js +4 -3
- package/lib/requests/PackageRequest.js +56 -12
- package/lib/requests/PathRequest.js +26 -6
- package/lib/requests/TargetRequest.js +129 -60
- package/lib/requests/ValidationRequest.js +6 -2
- package/lib/requests/WriteBundleRequest.js +329 -20
- package/lib/requests/WriteBundlesRequest.js +64 -10
- package/lib/requests/asset-graph-diff.js +13 -8
- package/lib/requests/asset-graph-dot.js +2 -8
- package/lib/resolveOptions.js +37 -14
- package/lib/rustWorkerThreadDylibHack.js +0 -1
- package/lib/serializerCore.browser.js +1 -2
- package/lib/summarizeRequest.js +1 -1
- package/lib/types/AssetGraph.d.ts +55 -0
- package/lib/types/Atlaspack.d.ts +52 -0
- package/lib/types/AtlaspackConfig.d.ts +65 -0
- package/lib/types/AtlaspackConfig.schema.d.ts +53 -0
- package/lib/types/BundleGraph.d.ts +232 -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 +23 -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 +35 -0
- package/lib/types/atlaspack-v3/NapiWorkerPool.d.ts +13 -0
- package/lib/types/atlaspack-v3/fs.d.ts +13 -0
- package/lib/types/atlaspack-v3/index.d.ts +6 -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 +14 -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 -2
- package/lib/types/atlaspack-v3/worker/compat/mutable-asset.d.ts +49 -0
- package/lib/types/atlaspack-v3/worker/compat/plugin-config.d.ts +29 -0
- package/lib/types/atlaspack-v3/worker/compat/plugin-options.d.ts +23 -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/side-effect-detector.d.ts +76 -0
- package/lib/types/atlaspack-v3/worker/worker.d.ts +81 -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 +72 -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 +76 -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/BundleGraphRequestRust.d.ts +34 -0
- package/lib/types/requests/BundleGraphRequestUtils.d.ts +38 -0
- package/lib/types/requests/ConfigRequest.d.ts +67 -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 +80 -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 +496 -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 +18 -3
- package/lib/worker.js +32 -15
- package/package.json +26 -36
- package/src/{AssetGraph.js → AssetGraph.ts} +87 -51
- package/src/{Atlaspack.js → Atlaspack.ts} +181 -72
- package/src/{AtlaspackConfig.schema.js → AtlaspackConfig.schema.ts} +25 -19
- package/src/{AtlaspackConfig.js → AtlaspackConfig.ts} +78 -54
- package/src/{BundleGraph.js → BundleGraph.ts} +575 -145
- package/src/{CommittedAsset.js → CommittedAsset.ts} +15 -13
- 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} +114 -159
- package/src/{ReporterRunner.js → ReporterRunner.ts} +13 -18
- package/src/{RequestTracker.js → RequestTracker.ts} +444 -355
- package/src/{SymbolPropagation.js → SymbolPropagation.ts} +178 -61
- package/src/{TargetDescriptor.schema.js → TargetDescriptor.schema.ts} +10 -1
- package/src/{Transformation.js → Transformation.ts} +110 -65
- package/src/{UncommittedAsset.js → UncommittedAsset.ts} +45 -49
- package/src/{Validation.js → Validation.ts} +32 -17
- package/src/{applyRuntimes.js → applyRuntimes.ts} +135 -26
- package/src/{assetUtils.js → assetUtils.ts} +49 -36
- package/src/atlaspack-v3/AtlaspackV3.ts +183 -0
- package/src/atlaspack-v3/NapiWorkerPool.ts +129 -0
- package/src/atlaspack-v3/{fs.js → fs.ts} +8 -4
- package/src/atlaspack-v3/{index.js → index.ts} +3 -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.ts +102 -0
- package/src/atlaspack-v3/worker/compat/{dependency.js → dependency.ts} +13 -13
- package/src/atlaspack-v3/worker/compat/{environment.js → environment.ts} +13 -9
- package/src/atlaspack-v3/worker/compat/index.ts +8 -0
- package/src/atlaspack-v3/worker/compat/{mutable-asset.js → mutable-asset.ts} +21 -20
- package/src/atlaspack-v3/worker/compat/{plugin-config.js → plugin-config.ts} +25 -56
- package/src/atlaspack-v3/worker/compat/{plugin-options.js → plugin-options.ts} +19 -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/side-effect-detector.ts +298 -0
- package/src/atlaspack-v3/worker/worker.ts +548 -0
- 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} +41 -28
- package/src/public/{Bundle.js → Bundle.ts} +28 -29
- package/src/public/{BundleGraph.js → BundleGraph.ts} +103 -68
- 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} +117 -90
- package/src/requests/AssetGraphRequestRust.ts +557 -0
- package/src/requests/{AssetRequest.js → AssetRequest.ts} +24 -18
- package/src/requests/AtlaspackBuildRequest.ts +168 -0
- package/src/requests/{AtlaspackConfigRequest.js → AtlaspackConfigRequest.ts} +72 -58
- package/src/requests/{BundleGraphRequest.js → BundleGraphRequest.ts} +119 -199
- package/src/requests/BundleGraphRequestRust.ts +470 -0
- package/src/requests/BundleGraphRequestUtils.ts +323 -0
- package/src/requests/{ConfigRequest.js → ConfigRequest.ts} +110 -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} +52 -25
- package/src/requests/{PathRequest.js → PathRequest.ts} +47 -37
- package/src/requests/{TargetRequest.js → TargetRequest.ts} +265 -179
- package/src/requests/{ValidationRequest.js → ValidationRequest.ts} +18 -17
- package/src/requests/WriteBundleRequest.ts +734 -0
- package/src/requests/{WriteBundlesRequest.js → WriteBundlesRequest.ts} +134 -50
- 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} +57 -27
- 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 +651 -0
- package/src/{utils.js → utils.ts} +52 -21
- package/src/{worker.js → worker.ts} +50 -42
- package/test/{AssetGraph.test.js → AssetGraph.test.ts} +5 -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} +76 -16
- 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} +136 -58
- package/test/{SymbolPropagation.test.js → SymbolPropagation.test.ts} +124 -74
- package/test/{TargetRequest.test.js → TargetRequest.test.ts} +91 -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.ts +443 -0
- package/test/requests/{ConfigRequest.test.js → ConfigRequest.test.ts} +202 -13
- package/test/requests/{DevDepRequest.test.js → DevDepRequest.test.ts} +0 -2
- package/test/requests/WriteBundleRequest.test.ts +602 -0
- package/test/{test-utils.js → test-utils.ts} +3 -4
- package/test/{utils.test.js → utils.test.ts} +1 -3
- package/tsconfig.json +60 -0
- package/tsconfig.tsbuildinfo +1 -0
- package/index.d.ts +0 -30
- package/lib/atlaspack-v3/worker/compat/plugin-logger.js +0 -29
- package/src/atlaspack-v3/AtlaspackV3.js +0 -87
- package/src/atlaspack-v3/NapiWorkerPool.js +0 -53
- package/src/atlaspack-v3/jsCallable.js +0 -18
- package/src/atlaspack-v3/worker/compat/bitflags.js +0 -100
- package/src/atlaspack-v3/worker/compat/plugin-logger.js +0 -47
- package/src/atlaspack-v3/worker/worker.js +0 -369
- package/src/index.js +0 -13
- package/src/requests/AssetGraphRequestRust.js +0 -263
- package/src/requests/AtlaspackBuildRequest.js +0 -111
- package/src/requests/WriteBundleRequest.js +0 -369
- 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
- package/test/requests/AssetGraphRequestRust.test.js +0 -411
|
@@ -0,0 +1,246 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.loadPluginConfig = loadPluginConfig;
|
|
40
|
+
exports.loadPluginSetup = loadPluginSetup;
|
|
41
|
+
exports.getValueAtPath = getValueAtPath;
|
|
42
|
+
exports.getConfigKeyContentHash = getConfigKeyContentHash;
|
|
43
|
+
exports.runConfigRequest = runConfigRequest;
|
|
44
|
+
exports.getConfigHash = getConfigHash;
|
|
45
|
+
exports.getConfigRequests = getConfigRequests;
|
|
46
|
+
const utils_1 = require("@atlaspack/utils");
|
|
47
|
+
const build_cache_1 = require("@atlaspack/build-cache");
|
|
48
|
+
const logger_1 = require("@atlaspack/logger");
|
|
49
|
+
const PluginOptions_1 = __importDefault(require("../public/PluginOptions"));
|
|
50
|
+
const diagnostic_1 = __importStar(require("@atlaspack/diagnostic"));
|
|
51
|
+
const Config_1 = __importDefault(require("../public/Config"));
|
|
52
|
+
const utils_2 = require("../utils");
|
|
53
|
+
const assetUtils_1 = require("../assetUtils");
|
|
54
|
+
const rust_1 = require("@atlaspack/rust");
|
|
55
|
+
const profiler_1 = require("@atlaspack/profiler");
|
|
56
|
+
const RequestTracker_1 = require("../RequestTracker");
|
|
57
|
+
const projectPath_1 = require("../projectPath");
|
|
58
|
+
async function loadPluginConfig(loadedPlugin, config, options) {
|
|
59
|
+
let loadConfig = loadedPlugin.plugin.loadConfig;
|
|
60
|
+
if (!loadConfig) {
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
63
|
+
try {
|
|
64
|
+
config.result = await loadConfig({
|
|
65
|
+
config: new Config_1.default(config, options),
|
|
66
|
+
options: new PluginOptions_1.default((0, utils_2.optionsProxy)(options, (option) => {
|
|
67
|
+
config.invalidateOnOptionChange.add(option);
|
|
68
|
+
})),
|
|
69
|
+
logger: new logger_1.PluginLogger({ origin: loadedPlugin.name }),
|
|
70
|
+
tracer: new profiler_1.PluginTracer({
|
|
71
|
+
origin: loadedPlugin.name,
|
|
72
|
+
category: 'loadConfig',
|
|
73
|
+
}),
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
catch (e) {
|
|
77
|
+
throw new diagnostic_1.default({
|
|
78
|
+
diagnostic: (0, diagnostic_1.errorToDiagnostic)(e, {
|
|
79
|
+
origin: loadedPlugin.name,
|
|
80
|
+
}),
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
async function loadPluginSetup(pluginName, setup, config, options) {
|
|
85
|
+
try {
|
|
86
|
+
let result = await setup({
|
|
87
|
+
config: new Config_1.default(config, options),
|
|
88
|
+
options: new PluginOptions_1.default((0, utils_2.optionsProxy)(options, (option) => {
|
|
89
|
+
config.invalidateOnOptionChange.add(option);
|
|
90
|
+
})),
|
|
91
|
+
logger: new logger_1.PluginLogger({ origin: pluginName }),
|
|
92
|
+
tracer: new profiler_1.PluginTracer({
|
|
93
|
+
origin: pluginName,
|
|
94
|
+
category: 'setup',
|
|
95
|
+
}),
|
|
96
|
+
});
|
|
97
|
+
config.result = result.config;
|
|
98
|
+
}
|
|
99
|
+
catch (e) {
|
|
100
|
+
throw new diagnostic_1.default({
|
|
101
|
+
diagnostic: (0, diagnostic_1.errorToDiagnostic)(e, {
|
|
102
|
+
origin: pluginName,
|
|
103
|
+
}),
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Return value at a given key path within an object.
|
|
109
|
+
*
|
|
110
|
+
* @example
|
|
111
|
+
* const obj = { a: { b: { c: 'd' } } };
|
|
112
|
+
* getValueAtPath(obj, ['a', 'b', 'c']); // 'd'
|
|
113
|
+
* getValueAtPath(obj, ['a', 'b', 'd']); // undefined
|
|
114
|
+
* getValueAtPath(obj, ['a', 'b']); // { c: 'd' }
|
|
115
|
+
* getValueAtPath(obj, ['a', 'b', 'c', 'd']); // undefined
|
|
116
|
+
*/
|
|
117
|
+
function getValueAtPath(obj, key) {
|
|
118
|
+
let current = obj;
|
|
119
|
+
for (let part of key) {
|
|
120
|
+
if (current == null) {
|
|
121
|
+
return undefined;
|
|
122
|
+
}
|
|
123
|
+
current = current[part];
|
|
124
|
+
}
|
|
125
|
+
return current;
|
|
126
|
+
}
|
|
127
|
+
const configKeyCache = (0, build_cache_1.createBuildCache)();
|
|
128
|
+
async function getConfigKeyContentHash(filePath, configKey, options) {
|
|
129
|
+
let cacheKey = `${(0, projectPath_1.fromProjectPathRelative)(filePath)}:${JSON.stringify(configKey)}`;
|
|
130
|
+
let cachedValue = configKeyCache.get(cacheKey);
|
|
131
|
+
if (cachedValue) {
|
|
132
|
+
// @ts-expect-error TS2322
|
|
133
|
+
return cachedValue;
|
|
134
|
+
}
|
|
135
|
+
const conf = await (0, utils_1.readConfig)(options.inputFS, (0, projectPath_1.fromProjectPath)(options.projectRoot, filePath));
|
|
136
|
+
const value = getValueAtPath(conf?.config, configKey);
|
|
137
|
+
if (conf == null || value == null) {
|
|
138
|
+
// This can occur when a config key has been removed entirely during `respondToFSEvents`
|
|
139
|
+
return '';
|
|
140
|
+
}
|
|
141
|
+
const contentHash = typeof value === 'object'
|
|
142
|
+
? (0, utils_1.hashObject)(value)
|
|
143
|
+
: (0, rust_1.hashString)(JSON.stringify(value));
|
|
144
|
+
configKeyCache.set(cacheKey, contentHash);
|
|
145
|
+
return contentHash;
|
|
146
|
+
}
|
|
147
|
+
async function runConfigRequest(api, configRequest) {
|
|
148
|
+
let { invalidateOnFileChange, invalidateOnConfigKeyChange, invalidateOnFileCreate, invalidateOnEnvChange, invalidateOnOptionChange, invalidateOnStartup, invalidateOnBuild, } = configRequest;
|
|
149
|
+
// If there are no invalidations, then no need to create a node.
|
|
150
|
+
if (invalidateOnFileChange.size === 0 &&
|
|
151
|
+
invalidateOnConfigKeyChange.length === 0 &&
|
|
152
|
+
invalidateOnFileCreate.length === 0 &&
|
|
153
|
+
invalidateOnOptionChange.size === 0 &&
|
|
154
|
+
invalidateOnEnvChange.size === 0 &&
|
|
155
|
+
!invalidateOnStartup &&
|
|
156
|
+
!invalidateOnBuild) {
|
|
157
|
+
return;
|
|
158
|
+
}
|
|
159
|
+
await api.runRequest({
|
|
160
|
+
id: 'config_request:' + configRequest.id,
|
|
161
|
+
type: RequestTracker_1.requestTypes.config_request,
|
|
162
|
+
run: async ({ api, options }) => {
|
|
163
|
+
for (let filePath of invalidateOnFileChange) {
|
|
164
|
+
api.invalidateOnFileUpdate(filePath);
|
|
165
|
+
api.invalidateOnFileDelete(filePath);
|
|
166
|
+
}
|
|
167
|
+
for (let { filePath, configKey } of invalidateOnConfigKeyChange) {
|
|
168
|
+
let contentHash = await getConfigKeyContentHash(filePath, configKey, options);
|
|
169
|
+
api.invalidateOnConfigKeyChange(filePath, configKey, contentHash);
|
|
170
|
+
}
|
|
171
|
+
for (let invalidation of invalidateOnFileCreate) {
|
|
172
|
+
api.invalidateOnFileCreate(invalidation);
|
|
173
|
+
}
|
|
174
|
+
for (let env of invalidateOnEnvChange) {
|
|
175
|
+
api.invalidateOnEnvChange(env);
|
|
176
|
+
}
|
|
177
|
+
for (let option of invalidateOnOptionChange) {
|
|
178
|
+
api.invalidateOnOptionChange(option);
|
|
179
|
+
}
|
|
180
|
+
if (invalidateOnStartup) {
|
|
181
|
+
api.invalidateOnStartup();
|
|
182
|
+
}
|
|
183
|
+
if (invalidateOnBuild) {
|
|
184
|
+
api.invalidateOnBuild();
|
|
185
|
+
}
|
|
186
|
+
},
|
|
187
|
+
input: null,
|
|
188
|
+
});
|
|
189
|
+
}
|
|
190
|
+
async function getConfigHash(config, pluginName, options) {
|
|
191
|
+
if (config.result == null) {
|
|
192
|
+
return '';
|
|
193
|
+
}
|
|
194
|
+
let hash = new rust_1.Hash();
|
|
195
|
+
hash.writeString(config.id);
|
|
196
|
+
// If there is no result hash set by the transformer, default to hashing the included
|
|
197
|
+
// files if any, otherwise try to hash the config result itself.
|
|
198
|
+
if (config.cacheKey == null) {
|
|
199
|
+
if (config.invalidateOnFileChange.size > 0) {
|
|
200
|
+
hash.writeString(await (0, assetUtils_1.getInvalidationHash)([...config.invalidateOnFileChange].map((filePath) => ({
|
|
201
|
+
type: 'file',
|
|
202
|
+
filePath,
|
|
203
|
+
})), options));
|
|
204
|
+
}
|
|
205
|
+
else if (config.result != null) {
|
|
206
|
+
try {
|
|
207
|
+
hash.writeBuffer((0, build_cache_1.serializeRaw)(config.result));
|
|
208
|
+
}
|
|
209
|
+
catch (err) {
|
|
210
|
+
throw new diagnostic_1.default({
|
|
211
|
+
diagnostic: {
|
|
212
|
+
message: 'Config result is not hashable because it contains non-serializable objects. Please use config.setCacheKey to set the hash manually.',
|
|
213
|
+
origin: pluginName,
|
|
214
|
+
},
|
|
215
|
+
});
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
else {
|
|
220
|
+
hash.writeString(config.cacheKey ?? '');
|
|
221
|
+
}
|
|
222
|
+
return hash.finish();
|
|
223
|
+
}
|
|
224
|
+
function getConfigRequests(configs) {
|
|
225
|
+
return configs
|
|
226
|
+
.filter((config) => {
|
|
227
|
+
// No need to send to the graph if there are no invalidations.
|
|
228
|
+
return (config.invalidateOnFileChange.size > 0 ||
|
|
229
|
+
config.invalidateOnConfigKeyChange.length > 0 ||
|
|
230
|
+
config.invalidateOnFileCreate.length > 0 ||
|
|
231
|
+
config.invalidateOnEnvChange.size > 0 ||
|
|
232
|
+
config.invalidateOnOptionChange.size > 0 ||
|
|
233
|
+
config.invalidateOnStartup ||
|
|
234
|
+
config.invalidateOnBuild);
|
|
235
|
+
})
|
|
236
|
+
.map((config) => ({
|
|
237
|
+
id: config.id,
|
|
238
|
+
invalidateOnFileChange: config.invalidateOnFileChange,
|
|
239
|
+
invalidateOnConfigKeyChange: config.invalidateOnConfigKeyChange,
|
|
240
|
+
invalidateOnFileCreate: config.invalidateOnFileCreate,
|
|
241
|
+
invalidateOnEnvChange: config.invalidateOnEnvChange,
|
|
242
|
+
invalidateOnOptionChange: config.invalidateOnOptionChange,
|
|
243
|
+
invalidateOnStartup: config.invalidateOnStartup,
|
|
244
|
+
invalidateOnBuild: config.invalidateOnBuild,
|
|
245
|
+
}));
|
|
246
|
+
}
|
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.createDevDependency = createDevDependency;
|
|
7
|
+
exports.getDevDepRequests = getDevDepRequests;
|
|
8
|
+
exports.invalidateDevDeps = invalidateDevDeps;
|
|
9
|
+
exports.resolveDevDepRequestRef = resolveDevDepRequestRef;
|
|
10
|
+
exports.runDevDepRequest = runDevDepRequest;
|
|
11
|
+
exports.getWorkerDevDepRequests = getWorkerDevDepRequests;
|
|
12
|
+
const build_cache_1 = require("@atlaspack/build-cache");
|
|
13
|
+
const nullthrows_1 = __importDefault(require("nullthrows"));
|
|
14
|
+
const assetUtils_1 = require("../assetUtils");
|
|
15
|
+
const utils_1 = require("../utils");
|
|
16
|
+
const projectPath_1 = require("../projectPath");
|
|
17
|
+
const RequestTracker_1 = require("../RequestTracker");
|
|
18
|
+
// A cache of dev dep requests keyed by invalidations.
|
|
19
|
+
// If the package manager returns the same invalidation object, then
|
|
20
|
+
// we can reuse the dev dep request rather than recomputing the project
|
|
21
|
+
// paths and hashes.
|
|
22
|
+
const devDepRequestCache = new WeakMap();
|
|
23
|
+
async function createDevDependency(opts, requestDevDeps, options) {
|
|
24
|
+
let { specifier, resolveFrom, additionalInvalidations } = opts;
|
|
25
|
+
let key = `${specifier}:${(0, projectPath_1.fromProjectPathRelative)(resolveFrom)}`;
|
|
26
|
+
// If the request sent us a hash, we know the dev dep and all of its dependencies didn't change.
|
|
27
|
+
// Reuse the same hash in the response. No need to send back invalidations as the request won't
|
|
28
|
+
// be re-run anyway.
|
|
29
|
+
let hash = requestDevDeps.get(key);
|
|
30
|
+
if (hash != null) {
|
|
31
|
+
return {
|
|
32
|
+
type: 'ref',
|
|
33
|
+
specifier,
|
|
34
|
+
resolveFrom,
|
|
35
|
+
hash,
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
let resolveFromAbsolute = (0, projectPath_1.fromProjectPath)(options.projectRoot, resolveFrom);
|
|
39
|
+
// Ensure that the package manager has an entry for this resolution.
|
|
40
|
+
try {
|
|
41
|
+
await options.packageManager.resolve(specifier, resolveFromAbsolute);
|
|
42
|
+
}
|
|
43
|
+
catch (err) {
|
|
44
|
+
// ignore
|
|
45
|
+
}
|
|
46
|
+
let invalidations = options.packageManager.getInvalidations(specifier, resolveFromAbsolute);
|
|
47
|
+
let cached = devDepRequestCache.get(invalidations);
|
|
48
|
+
if (cached != null) {
|
|
49
|
+
return cached;
|
|
50
|
+
}
|
|
51
|
+
let invalidateOnFileChangeProject = [
|
|
52
|
+
...invalidations.invalidateOnFileChange,
|
|
53
|
+
].map((f) => (0, projectPath_1.toProjectPath)(options.projectRoot, f));
|
|
54
|
+
// It is possible for a transformer to have multiple different hashes due to
|
|
55
|
+
// different dependencies (e.g. conditional requires) so we must always
|
|
56
|
+
// recompute the hash and compare rather than only sending a transformer
|
|
57
|
+
// dev dependency once.
|
|
58
|
+
hash = await (0, assetUtils_1.getInvalidationHash)(invalidateOnFileChangeProject.map((f) => ({
|
|
59
|
+
type: 'file',
|
|
60
|
+
filePath: f,
|
|
61
|
+
})), options);
|
|
62
|
+
let devDepRequest = {
|
|
63
|
+
specifier,
|
|
64
|
+
resolveFrom,
|
|
65
|
+
hash,
|
|
66
|
+
invalidateOnFileCreate: invalidations.invalidateOnFileCreate.map((i) => (0, utils_1.invalidateOnFileCreateToInternal)(options.projectRoot, i)),
|
|
67
|
+
invalidateOnFileChange: new Set(invalidateOnFileChangeProject),
|
|
68
|
+
invalidateOnStartup: invalidations.invalidateOnStartup,
|
|
69
|
+
additionalInvalidations,
|
|
70
|
+
};
|
|
71
|
+
devDepRequestCache.set(invalidations, devDepRequest);
|
|
72
|
+
return devDepRequest;
|
|
73
|
+
}
|
|
74
|
+
async function getDevDepRequests(api) {
|
|
75
|
+
async function getPreviousDevDepRequests() {
|
|
76
|
+
const allDevDepRequests = await Promise.all(api
|
|
77
|
+
.getSubRequests()
|
|
78
|
+
.filter((req) => req.requestType === RequestTracker_1.requestTypes.dev_dep_request)
|
|
79
|
+
.map(async (req) => [
|
|
80
|
+
req.id,
|
|
81
|
+
await api.getRequestResult(req.id),
|
|
82
|
+
]));
|
|
83
|
+
const nonNullDevDepRequests = [];
|
|
84
|
+
for (const [id, result] of allDevDepRequests) {
|
|
85
|
+
if (result != null) {
|
|
86
|
+
nonNullDevDepRequests.push([id, result]);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
// @ts-expect-error TS2769
|
|
90
|
+
return new Map(nonNullDevDepRequests);
|
|
91
|
+
}
|
|
92
|
+
const previousDevDepRequests = await getPreviousDevDepRequests();
|
|
93
|
+
return {
|
|
94
|
+
devDeps: new Map([...previousDevDepRequests.entries()]
|
|
95
|
+
// @ts-expect-error TS2769
|
|
96
|
+
.filter(([id]) => api.canSkipSubrequest(id))
|
|
97
|
+
.map(([, req]) => [
|
|
98
|
+
`${req.specifier}:${(0, projectPath_1.fromProjectPathRelative)(req.resolveFrom)}`,
|
|
99
|
+
req.hash,
|
|
100
|
+
])),
|
|
101
|
+
invalidDevDeps: await Promise.all([...previousDevDepRequests.entries()]
|
|
102
|
+
// @ts-expect-error TS2769
|
|
103
|
+
.filter(([id]) => !api.canSkipSubrequest(id))
|
|
104
|
+
.flatMap(([, req]) => {
|
|
105
|
+
return [
|
|
106
|
+
{
|
|
107
|
+
specifier: req.specifier,
|
|
108
|
+
resolveFrom: req.resolveFrom,
|
|
109
|
+
},
|
|
110
|
+
// @ts-expect-error TS7006
|
|
111
|
+
...(req.additionalInvalidations ?? []).map((i) => ({
|
|
112
|
+
specifier: i.specifier,
|
|
113
|
+
resolveFrom: i.resolveFrom,
|
|
114
|
+
})),
|
|
115
|
+
];
|
|
116
|
+
})),
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
// Tracks dev deps that have been invalidated during this build
|
|
120
|
+
// so we don't invalidate the require cache more than once.
|
|
121
|
+
const invalidatedDevDeps = (0, build_cache_1.createBuildCache)();
|
|
122
|
+
function invalidateDevDeps(invalidDevDeps, options, config) {
|
|
123
|
+
for (let { specifier, resolveFrom } of invalidDevDeps) {
|
|
124
|
+
let key = `${specifier}:${(0, projectPath_1.fromProjectPathRelative)(resolveFrom)}`;
|
|
125
|
+
if (!invalidatedDevDeps.has(key)) {
|
|
126
|
+
config.invalidatePlugin(specifier);
|
|
127
|
+
options.packageManager.invalidate(specifier, (0, projectPath_1.fromProjectPath)(options.projectRoot, resolveFrom));
|
|
128
|
+
invalidatedDevDeps.set(key, true);
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
const devDepRequests = (0, build_cache_1.createBuildCache)();
|
|
133
|
+
function resolveDevDepRequestRef(devDepRequestRef) {
|
|
134
|
+
const devDepRequest =
|
|
135
|
+
// @ts-expect-error TS2339
|
|
136
|
+
devDepRequestRef.type === 'ref'
|
|
137
|
+
? devDepRequests.get(devDepRequestRef.hash)
|
|
138
|
+
: devDepRequestRef;
|
|
139
|
+
if (devDepRequest == null) {
|
|
140
|
+
throw new Error(`Worker send back a reference to a missing dev dep request.
|
|
141
|
+
|
|
142
|
+
This might happen due to internal in-memory build caches not being cleared
|
|
143
|
+
between builds or due a race condition.
|
|
144
|
+
${process.env.NODE_ENV === 'test'
|
|
145
|
+
? `If this is a unit test, call atlaspack.clearBuildCaches() between tests`
|
|
146
|
+
: ''}
|
|
147
|
+
|
|
148
|
+
This is a bug in Atlaspack.`);
|
|
149
|
+
}
|
|
150
|
+
// @ts-expect-error TS2339
|
|
151
|
+
if (devDepRequestRef.type !== 'ref') {
|
|
152
|
+
// @ts-expect-error TS2345
|
|
153
|
+
devDepRequests.set(devDepRequest.hash, devDepRequest);
|
|
154
|
+
}
|
|
155
|
+
// @ts-expect-error TS2322
|
|
156
|
+
return devDepRequest;
|
|
157
|
+
}
|
|
158
|
+
async function runDevDepRequest(api, devDepRequestRef) {
|
|
159
|
+
await api.runRequest({
|
|
160
|
+
id: 'dev_dep_request:' +
|
|
161
|
+
devDepRequestRef.specifier +
|
|
162
|
+
':' +
|
|
163
|
+
devDepRequestRef.hash,
|
|
164
|
+
type: RequestTracker_1.requestTypes.dev_dep_request,
|
|
165
|
+
// @ts-expect-error TS2322
|
|
166
|
+
run: ({ api }) => {
|
|
167
|
+
const devDepRequest = resolveDevDepRequestRef(devDepRequestRef);
|
|
168
|
+
for (let filePath of (0, nullthrows_1.default)(devDepRequest.invalidateOnFileChange, 'DevDepRequest missing invalidateOnFileChange')) {
|
|
169
|
+
api.invalidateOnFileUpdate(filePath);
|
|
170
|
+
api.invalidateOnFileDelete(filePath);
|
|
171
|
+
}
|
|
172
|
+
for (let invalidation of (0, nullthrows_1.default)(devDepRequest.invalidateOnFileCreate, 'DevDepRequest missing invalidateOnFileCreate')) {
|
|
173
|
+
api.invalidateOnFileCreate(invalidation);
|
|
174
|
+
}
|
|
175
|
+
if (devDepRequest.invalidateOnStartup) {
|
|
176
|
+
api.invalidateOnStartup();
|
|
177
|
+
}
|
|
178
|
+
api.storeResult({
|
|
179
|
+
specifier: devDepRequest.specifier,
|
|
180
|
+
resolveFrom: devDepRequest.resolveFrom,
|
|
181
|
+
hash: devDepRequest.hash,
|
|
182
|
+
additionalInvalidations: devDepRequest.additionalInvalidations,
|
|
183
|
+
});
|
|
184
|
+
},
|
|
185
|
+
input: null,
|
|
186
|
+
});
|
|
187
|
+
}
|
|
188
|
+
// A cache of plugin dependency hashes that we've already sent to the main thread.
|
|
189
|
+
// Automatically cleared before each build.
|
|
190
|
+
const pluginCache = (0, build_cache_1.createBuildCache)();
|
|
191
|
+
function getWorkerDevDepRequests(devDepRequests) {
|
|
192
|
+
return devDepRequests.map((devDepRequest) => {
|
|
193
|
+
// If we've already sent a matching transformer + hash to the main thread during this build,
|
|
194
|
+
// there's no need to repeat ourselves.
|
|
195
|
+
let { specifier, resolveFrom, hash } = devDepRequest;
|
|
196
|
+
if (hash === pluginCache.get(specifier)) {
|
|
197
|
+
return { type: 'ref', specifier, resolveFrom, hash };
|
|
198
|
+
}
|
|
199
|
+
else {
|
|
200
|
+
pluginCache.set(specifier, hash);
|
|
201
|
+
return devDepRequest;
|
|
202
|
+
}
|
|
203
|
+
});
|
|
204
|
+
}
|