@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,190 @@
|
|
|
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.default = createWriteBundlesRequest;
|
|
7
|
+
const feature_flags_1 = require("@atlaspack/feature-flags");
|
|
8
|
+
const RequestTracker_1 = require("../RequestTracker");
|
|
9
|
+
const types_1 = require("../types");
|
|
10
|
+
const ReporterRunner_1 = require("../ReporterRunner");
|
|
11
|
+
const constants_1 = require("../constants");
|
|
12
|
+
const projectPath_1 = require("../projectPath");
|
|
13
|
+
const nullthrows_1 = __importDefault(require("nullthrows"));
|
|
14
|
+
const rust_1 = require("@atlaspack/rust");
|
|
15
|
+
const PackageRequest_1 = require("./PackageRequest");
|
|
16
|
+
const WriteBundleRequest_1 = __importDefault(require("./WriteBundleRequest"));
|
|
17
|
+
const utils_1 = require("@atlaspack/utils");
|
|
18
|
+
/** Length of the hash suffix in output filenames (e.g. .runtime.13dc01ac.js). */
|
|
19
|
+
const NAME_HASH_DISPLAY_LEN = 8;
|
|
20
|
+
/** Use at most NAME_HASH_DISPLAY_LEN chars for the name hash so filenames stay short. */
|
|
21
|
+
function nameHashForFilename(hash) {
|
|
22
|
+
return hash.length <= NAME_HASH_DISPLAY_LEN
|
|
23
|
+
? hash
|
|
24
|
+
: hash.slice(-NAME_HASH_DISPLAY_LEN);
|
|
25
|
+
}
|
|
26
|
+
function reportPackagingProgress(completeBundles, totalBundles) {
|
|
27
|
+
if (!(0, feature_flags_1.getFeatureFlag)('cliProgressReportingImprovements')) {
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
(0, ReporterRunner_1.report)({
|
|
31
|
+
type: 'buildProgress',
|
|
32
|
+
phase: 'packagingAndOptimizing',
|
|
33
|
+
totalBundles,
|
|
34
|
+
completeBundles,
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Packages, optimizes, and writes all bundles to the dist directory.
|
|
39
|
+
*/
|
|
40
|
+
function createWriteBundlesRequest(input) {
|
|
41
|
+
return {
|
|
42
|
+
type: RequestTracker_1.requestTypes.write_bundles_request,
|
|
43
|
+
id: 'write_bundles:' + input.bundleGraph.getBundleGraphHash(),
|
|
44
|
+
run,
|
|
45
|
+
input,
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
async function run({ input, api, farm, options, }) {
|
|
49
|
+
let { bundleGraph, optionsRef } = input;
|
|
50
|
+
let { ref, dispose } = await farm.createSharedReference(bundleGraph);
|
|
51
|
+
api.invalidateOnOptionChange('shouldContentHash');
|
|
52
|
+
let res = new Map();
|
|
53
|
+
let bundleInfoMap = {};
|
|
54
|
+
let writeEarlyPromises = {};
|
|
55
|
+
let hashRefToNameHash = new Map();
|
|
56
|
+
// Include inline bundles so that non-inline bundles referenced from inline bundles are written to
|
|
57
|
+
// separate files. This ensures that source maps are written and work.
|
|
58
|
+
const allBundles = bundleGraph.getBundles({
|
|
59
|
+
includeInline: (0, feature_flags_1.getFeatureFlag)('inlineBundlesSourceMapFixes'),
|
|
60
|
+
});
|
|
61
|
+
const bundles = allBundles
|
|
62
|
+
.filter((bundle) => bundle.bundleBehavior !== types_1.BundleBehavior.inline &&
|
|
63
|
+
bundle.bundleBehavior !== types_1.BundleBehavior.inlineIsolated)
|
|
64
|
+
.filter((bundle) => {
|
|
65
|
+
// Do not package and write placeholder bundles to disk. We just
|
|
66
|
+
// need to update the name so other bundles can reference it.
|
|
67
|
+
if (bundle.isPlaceholder) {
|
|
68
|
+
const nameHash = nameHashForFilename(bundle.id);
|
|
69
|
+
hashRefToNameHash.set(bundle.hashReference, nameHash);
|
|
70
|
+
let name = (0, nullthrows_1.default)(bundle.name, `Expected ${bundle.type} bundle to have a name`).replace(bundle.hashReference, nameHash);
|
|
71
|
+
res.set(bundle.id, {
|
|
72
|
+
filePath: (0, projectPath_1.joinProjectPath)(bundle.target.distDir, name),
|
|
73
|
+
bundleId: bundle.id,
|
|
74
|
+
type: bundle.type, // FIXME: this is wrong if the packager changes the type...
|
|
75
|
+
stats: {
|
|
76
|
+
time: 0,
|
|
77
|
+
size: 0,
|
|
78
|
+
},
|
|
79
|
+
});
|
|
80
|
+
return false;
|
|
81
|
+
}
|
|
82
|
+
return true;
|
|
83
|
+
});
|
|
84
|
+
let cachedBundles = new Set(bundles.filter((b) => api.canSkipSubrequest(bundleGraph.getHash(b))));
|
|
85
|
+
// Package on the main thread if there is only one bundle to package.
|
|
86
|
+
// This avoids the cost of serializing the bundle graph for single file change builds.
|
|
87
|
+
let useMainThread = bundles.length === 1 || bundles.length - cachedBundles.size <= 1;
|
|
88
|
+
try {
|
|
89
|
+
let completeBundles = cachedBundles.size;
|
|
90
|
+
reportPackagingProgress(completeBundles, bundles.length);
|
|
91
|
+
await Promise.all(bundles.map(async (bundle) => {
|
|
92
|
+
let request = (0, PackageRequest_1.createPackageRequest)({
|
|
93
|
+
bundle,
|
|
94
|
+
bundleGraph,
|
|
95
|
+
bundleGraphReference: ref,
|
|
96
|
+
optionsRef,
|
|
97
|
+
useMainThread,
|
|
98
|
+
});
|
|
99
|
+
let info = await api.runRequest(request);
|
|
100
|
+
if (!cachedBundles.has(bundle)) {
|
|
101
|
+
completeBundles++;
|
|
102
|
+
reportPackagingProgress(completeBundles, bundles.length);
|
|
103
|
+
}
|
|
104
|
+
if (!useMainThread) {
|
|
105
|
+
// Force a refresh of the cache to avoid a race condition
|
|
106
|
+
// between threaded reads and writes that can result in an LMDB cache miss:
|
|
107
|
+
// 1. The main thread has read some value from cache, necessitating a read transaction.
|
|
108
|
+
// 2. Concurrently, Thread A finishes a packaging request.
|
|
109
|
+
// 3. Subsequently, the main thread is tasked with this request, but fails because the read transaction is stale.
|
|
110
|
+
// This only occurs if the reading thread has a transaction that was created before the writing thread committed,
|
|
111
|
+
// and the transaction is still live when the reading thread attempts to get the written value.
|
|
112
|
+
// See https://github.com/parcel-bundler/parcel/issues/9121
|
|
113
|
+
options.cache.refresh();
|
|
114
|
+
}
|
|
115
|
+
bundleInfoMap[bundle.id] = info;
|
|
116
|
+
if (!info.hashReferences.length) {
|
|
117
|
+
hashRefToNameHash.set(bundle.hashReference, nameHashForFilename(options.shouldContentHash ? info.hash : bundle.id));
|
|
118
|
+
let writeBundleRequest = (0, WriteBundleRequest_1.default)({
|
|
119
|
+
bundle,
|
|
120
|
+
info,
|
|
121
|
+
hashRefToNameHash,
|
|
122
|
+
bundleGraph,
|
|
123
|
+
});
|
|
124
|
+
let promise = api.runRequest(writeBundleRequest);
|
|
125
|
+
// If the promise rejects before we await it (below), we don't want to crash the build.
|
|
126
|
+
promise.catch(() => { });
|
|
127
|
+
writeEarlyPromises[bundle.id] = promise;
|
|
128
|
+
}
|
|
129
|
+
}));
|
|
130
|
+
assignComplexNameHashes(hashRefToNameHash, bundles, bundleInfoMap, options);
|
|
131
|
+
await Promise.all(bundles.map((bundle) => {
|
|
132
|
+
let promise = writeEarlyPromises[bundle.id] ??
|
|
133
|
+
api.runRequest((0, WriteBundleRequest_1.default)({
|
|
134
|
+
bundle,
|
|
135
|
+
info: bundleInfoMap[bundle.id],
|
|
136
|
+
hashRefToNameHash,
|
|
137
|
+
bundleGraph,
|
|
138
|
+
}));
|
|
139
|
+
return promise.then((r) => res.set(bundle.id, r));
|
|
140
|
+
}));
|
|
141
|
+
let result = { bundleInfo: res };
|
|
142
|
+
if (utils_1.debugTools['scope-hoisting-stats']) {
|
|
143
|
+
// Aggregate scope hoisting stats from all bundles
|
|
144
|
+
let aggregatedScopeHoistingStats = {
|
|
145
|
+
totalAssets: 0,
|
|
146
|
+
wrappedAssets: 0,
|
|
147
|
+
};
|
|
148
|
+
for (let bundle of bundles) {
|
|
149
|
+
let bundleInfo = bundleInfoMap[bundle.id];
|
|
150
|
+
if (bundleInfo?.scopeHoistingStats) {
|
|
151
|
+
aggregatedScopeHoistingStats.totalAssets +=
|
|
152
|
+
bundleInfo.scopeHoistingStats.totalAssets;
|
|
153
|
+
aggregatedScopeHoistingStats.wrappedAssets +=
|
|
154
|
+
bundleInfo.scopeHoistingStats.wrappedAssets;
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
result.scopeHoistingStats = aggregatedScopeHoistingStats;
|
|
158
|
+
}
|
|
159
|
+
api.storeResult(result);
|
|
160
|
+
return result;
|
|
161
|
+
}
|
|
162
|
+
finally {
|
|
163
|
+
await dispose();
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
function assignComplexNameHashes(hashRefToNameHash, bundles, bundleInfoMap, options) {
|
|
167
|
+
for (let bundle of bundles) {
|
|
168
|
+
if (hashRefToNameHash.get(bundle.hashReference) != null) {
|
|
169
|
+
continue;
|
|
170
|
+
}
|
|
171
|
+
hashRefToNameHash.set(bundle.hashReference, nameHashForFilename(options.shouldContentHash
|
|
172
|
+
? (0, rust_1.hashString)([...getBundlesIncludedInHash(bundle.id, bundleInfoMap)]
|
|
173
|
+
.map((bundleId) => bundleInfoMap[bundleId].hash)
|
|
174
|
+
.join(':'))
|
|
175
|
+
: bundle.id));
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
function getBundlesIncludedInHash(bundleId, bundleInfoMap, included = new Set()) {
|
|
179
|
+
included.add(bundleId);
|
|
180
|
+
for (let hashRef of bundleInfoMap[bundleId]?.hashReferences ?? []) {
|
|
181
|
+
let referencedId = getIdFromHashRef(hashRef);
|
|
182
|
+
if (!included.has(referencedId)) {
|
|
183
|
+
getBundlesIncludedInHash(referencedId, bundleInfoMap, included);
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
return included;
|
|
187
|
+
}
|
|
188
|
+
function getIdFromHashRef(hashRef) {
|
|
189
|
+
return hashRef.slice(constants_1.HASH_REF_PREFIX.length);
|
|
190
|
+
}
|
|
@@ -0,0 +1,128 @@
|
|
|
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
|
+
/* eslint-disable no-console */
|
|
7
|
+
// @ts-expect-error missing types
|
|
8
|
+
const default_1 = __importDefault(require("rfdc/default"));
|
|
9
|
+
const jest_diff_1 = require("jest-diff");
|
|
10
|
+
const projectPath_1 = require("../projectPath");
|
|
11
|
+
function filterNode(node) {
|
|
12
|
+
let clone = (0, default_1.default)(node);
|
|
13
|
+
// Clean up anything you don't want to see in the diff
|
|
14
|
+
// delete clone.id;
|
|
15
|
+
delete clone.value.id;
|
|
16
|
+
delete clone.value.meta.id;
|
|
17
|
+
delete clone.value.sourceAssetId;
|
|
18
|
+
delete clone.value.env.id;
|
|
19
|
+
delete clone.value.isEsm;
|
|
20
|
+
delete clone.value.shouldWrap;
|
|
21
|
+
delete clone.value.contentKey;
|
|
22
|
+
delete clone.value.placeholder;
|
|
23
|
+
delete clone.value.code;
|
|
24
|
+
delete clone.value.hasCjsExports;
|
|
25
|
+
delete clone.value.staticExports;
|
|
26
|
+
delete clone.value.isConstantModule;
|
|
27
|
+
delete clone.value.hasNodeReplacements;
|
|
28
|
+
delete clone.value.stats;
|
|
29
|
+
delete clone.value.astKey;
|
|
30
|
+
delete clone.value.astGenerator;
|
|
31
|
+
delete clone.value.dependencies;
|
|
32
|
+
return clone;
|
|
33
|
+
}
|
|
34
|
+
// @ts-expect-error missing return type
|
|
35
|
+
function compactDeep(obj, ignoredPatterns = [], currentPath = '$') {
|
|
36
|
+
if (obj instanceof Map) {
|
|
37
|
+
const copy = {};
|
|
38
|
+
Array.from(obj.entries()).forEach(([k, v]) => {
|
|
39
|
+
if (v != null) {
|
|
40
|
+
copy[k] = compactDeep(v, ignoredPatterns, `${currentPath}.${k}`);
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
return copy;
|
|
44
|
+
}
|
|
45
|
+
else if (Array.isArray(obj)) {
|
|
46
|
+
// @ts-expect-error implicit any
|
|
47
|
+
return obj.map((v) => compactDeep(v, ignoredPatterns, `${currentPath}[]`));
|
|
48
|
+
}
|
|
49
|
+
else if (typeof obj === 'object') {
|
|
50
|
+
const copy = {};
|
|
51
|
+
Object.entries(obj ?? {}).forEach(([key, value]) => {
|
|
52
|
+
const path = `${currentPath}.${key}`;
|
|
53
|
+
if (ignoredPatterns.some((pattern) => path.includes(pattern))) {
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
// Equivalent false == null
|
|
57
|
+
if (key === 'isWeak' && value === false) {
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
if (value != null) {
|
|
61
|
+
copy[key] = compactDeep(value, ignoredPatterns, path);
|
|
62
|
+
}
|
|
63
|
+
});
|
|
64
|
+
return copy;
|
|
65
|
+
}
|
|
66
|
+
else if (obj != null) {
|
|
67
|
+
return obj;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
function assetGraphDiff(jsAssetGraph, rustAssetGraph, projectRoot) {
|
|
71
|
+
const getNodes = (graph) => {
|
|
72
|
+
let nodes = {};
|
|
73
|
+
// @ts-expect-error implicit any
|
|
74
|
+
graph.traverse((nodeId) => {
|
|
75
|
+
let node = graph.getNode(nodeId) ?? null;
|
|
76
|
+
if (!node)
|
|
77
|
+
return;
|
|
78
|
+
if (node.type === 'dependency') {
|
|
79
|
+
let sourcePath = node.value.sourcePath
|
|
80
|
+
? (0, projectPath_1.toProjectPath)(projectRoot, node.value.sourcePath)
|
|
81
|
+
: (0, projectPath_1.toProjectPath)(projectRoot, 'entry');
|
|
82
|
+
nodes[`dep:${sourcePath}:${node.value.specifier}`] = filterNode(node);
|
|
83
|
+
}
|
|
84
|
+
else if (node.type === 'asset') {
|
|
85
|
+
nodes[`asset:${(0, projectPath_1.toProjectPath)(projectRoot, node.value.filePath)}`] =
|
|
86
|
+
filterNode(node);
|
|
87
|
+
}
|
|
88
|
+
});
|
|
89
|
+
return nodes;
|
|
90
|
+
};
|
|
91
|
+
const jsNodes = getNodes(jsAssetGraph);
|
|
92
|
+
const rustNodes = getNodes(rustAssetGraph);
|
|
93
|
+
const all = new Set([...Object.keys(jsNodes), ...Object.keys(rustNodes)]);
|
|
94
|
+
const missing = [];
|
|
95
|
+
const extra = [];
|
|
96
|
+
for (const key of all.keys()) {
|
|
97
|
+
if (process.env.NATIVE_COMPARE !== 'true') {
|
|
98
|
+
continue;
|
|
99
|
+
}
|
|
100
|
+
let jsNode = jsNodes[key];
|
|
101
|
+
let rustNode = rustNodes[key];
|
|
102
|
+
if (!rustNode) {
|
|
103
|
+
missing.push(key);
|
|
104
|
+
continue;
|
|
105
|
+
}
|
|
106
|
+
if (!jsNode) {
|
|
107
|
+
extra.push(key);
|
|
108
|
+
continue;
|
|
109
|
+
}
|
|
110
|
+
console.log(key);
|
|
111
|
+
const ignoredPatterns = [
|
|
112
|
+
// ignored because we don't copy the environment ID back from rust
|
|
113
|
+
// in the target value
|
|
114
|
+
'$.value.target.env.id',
|
|
115
|
+
// ignore asset.mapKey because we don't do persistence on rust yet
|
|
116
|
+
'$.value.mapKey',
|
|
117
|
+
// ignore this because it's just the output hash. We don't need to compute
|
|
118
|
+
// this yet
|
|
119
|
+
'$.value.outputHash',
|
|
120
|
+
// ignore correspondingRequest from all nodes
|
|
121
|
+
'$.correspondingRequest',
|
|
122
|
+
];
|
|
123
|
+
console.log((0, jest_diff_1.diff)(compactDeep(jsNode, ignoredPatterns), compactDeep(rustNode, ignoredPatterns)));
|
|
124
|
+
}
|
|
125
|
+
console.log('Missing', missing);
|
|
126
|
+
console.log('Extra', extra);
|
|
127
|
+
}
|
|
128
|
+
module.exports = assetGraphDiff;
|
|
@@ -0,0 +1,131 @@
|
|
|
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.assetGraphToDot = assetGraphToDot;
|
|
7
|
+
exports.getDebugAssetGraphDotPath = getDebugAssetGraphDotPath;
|
|
8
|
+
exports.getDebugAssetGraphDotOptions = getDebugAssetGraphDotOptions;
|
|
9
|
+
const path_1 = __importDefault(require("path"));
|
|
10
|
+
/** @description Renders AssetGraph into GraphViz Dot format */
|
|
11
|
+
function assetGraphToDot(assetGraph, { sort = false, style = true } = {}) {
|
|
12
|
+
const edges = [];
|
|
13
|
+
const nodeStyles = {};
|
|
14
|
+
assetGraph.traverse((nodeId) => {
|
|
15
|
+
let node = assetGraph.getNode(nodeId) ?? null;
|
|
16
|
+
if (!node)
|
|
17
|
+
return;
|
|
18
|
+
const fromIds = assetGraph.getNodeIdsConnectedTo(nodeId);
|
|
19
|
+
for (const fromId of fromIds) {
|
|
20
|
+
let fromNode = assetGraph.getNode(fromId) ?? null;
|
|
21
|
+
if (!fromNode)
|
|
22
|
+
throw new Error('No Node');
|
|
23
|
+
const edgeStyle = getEdgeStyle(node);
|
|
24
|
+
const nodeStyle = getNodeStyle(node);
|
|
25
|
+
let entry = `"${getNodeName(fromNode)}" -> "${getNodeName(node)}"`;
|
|
26
|
+
if (edgeStyle) {
|
|
27
|
+
entry += ` [${edgeStyle}]`;
|
|
28
|
+
}
|
|
29
|
+
if (nodeStyle) {
|
|
30
|
+
nodeStyles[getNodeName(node)] = nodeStyle;
|
|
31
|
+
}
|
|
32
|
+
edges.push(entry);
|
|
33
|
+
}
|
|
34
|
+
});
|
|
35
|
+
const nodeStylesList = Object.entries(nodeStyles);
|
|
36
|
+
if (sort) {
|
|
37
|
+
edges.sort();
|
|
38
|
+
nodeStylesList.sort();
|
|
39
|
+
}
|
|
40
|
+
let digraph = `digraph {\n\tnode [shape=rectangle]\n`;
|
|
41
|
+
if (style) {
|
|
42
|
+
digraph += nodeStylesList
|
|
43
|
+
.map(([node, style]) => `\t"${node}" [${style}]\n`)
|
|
44
|
+
.join('');
|
|
45
|
+
}
|
|
46
|
+
digraph += edges.map((v) => `\t${v}\n`).join('');
|
|
47
|
+
digraph += `}\n`;
|
|
48
|
+
return digraph;
|
|
49
|
+
}
|
|
50
|
+
function getDebugAssetGraphDotPath() {
|
|
51
|
+
let debugAssetGraphDot = process.env.DEBUG_ASSET_GRAPH_DOT;
|
|
52
|
+
if (debugAssetGraphDot === undefined || debugAssetGraphDot === '') {
|
|
53
|
+
return null;
|
|
54
|
+
}
|
|
55
|
+
if (!path_1.default.isAbsolute(debugAssetGraphDot)) {
|
|
56
|
+
debugAssetGraphDot = path_1.default.join(process.cwd(), debugAssetGraphDot);
|
|
57
|
+
}
|
|
58
|
+
return debugAssetGraphDot;
|
|
59
|
+
}
|
|
60
|
+
function getDebugAssetGraphDotOptions() {
|
|
61
|
+
const options = {};
|
|
62
|
+
let style = process.env.DEBUG_ASSET_GRAPH_DOT_STYLE;
|
|
63
|
+
if (style !== undefined) {
|
|
64
|
+
options.style = style === 'true';
|
|
65
|
+
}
|
|
66
|
+
let sort = process.env.DEBUG_ASSET_GRAPH_DOT_SORT;
|
|
67
|
+
if (sort !== undefined) {
|
|
68
|
+
options.sort = sort === 'true';
|
|
69
|
+
}
|
|
70
|
+
return options;
|
|
71
|
+
}
|
|
72
|
+
function fromCwd(input) {
|
|
73
|
+
return path_1.default.relative(process.cwd(), input);
|
|
74
|
+
}
|
|
75
|
+
function getNodeName(node) {
|
|
76
|
+
if (node.type === 'asset_group') {
|
|
77
|
+
// @ts-expect-error TS2345
|
|
78
|
+
return [`asset_group`, node.id, fromCwd(node.value.filePath)].join('\\n');
|
|
79
|
+
}
|
|
80
|
+
else if (node.type === 'asset') {
|
|
81
|
+
return [`asset`, node.id, fromCwd(node.value.filePath)].join('\\n');
|
|
82
|
+
}
|
|
83
|
+
else if (node.type === 'dependency') {
|
|
84
|
+
return [`dependency`, node.id, node.value.specifier].join('\\n');
|
|
85
|
+
}
|
|
86
|
+
else if (node.type === 'entry_specifier') {
|
|
87
|
+
return [`entry_specifier`, node.value].join('\\n');
|
|
88
|
+
}
|
|
89
|
+
else if (node.type === 'entry_file') {
|
|
90
|
+
return [`entry_file`, fromCwd(node.value.filePath)].join('\\n');
|
|
91
|
+
}
|
|
92
|
+
return 'ROOT';
|
|
93
|
+
}
|
|
94
|
+
function getEdgeStyle(node) {
|
|
95
|
+
if (node.type === 'asset_group') {
|
|
96
|
+
return ``;
|
|
97
|
+
}
|
|
98
|
+
else if (node.type === 'asset') {
|
|
99
|
+
return ``;
|
|
100
|
+
}
|
|
101
|
+
else if (node.type === 'dependency') {
|
|
102
|
+
if (node.value.priority === 2) {
|
|
103
|
+
return `style="dashed"`;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
else if (node.type === 'entry_specifier') {
|
|
107
|
+
return ``;
|
|
108
|
+
}
|
|
109
|
+
else if (node.type === 'entry_file') {
|
|
110
|
+
return ``;
|
|
111
|
+
}
|
|
112
|
+
return '';
|
|
113
|
+
}
|
|
114
|
+
function getNodeStyle(node) {
|
|
115
|
+
if (node.type === 'asset_group') {
|
|
116
|
+
return `fillcolor="#E8F5E9", style="filled"`;
|
|
117
|
+
}
|
|
118
|
+
else if (node.type === 'asset') {
|
|
119
|
+
return `fillcolor="#DCEDC8", style="filled"`;
|
|
120
|
+
}
|
|
121
|
+
else if (node.type === 'dependency') {
|
|
122
|
+
return `fillcolor="#BBDEFB", style="filled"`;
|
|
123
|
+
}
|
|
124
|
+
else if (node.type === 'entry_specifier') {
|
|
125
|
+
return `fillcolor="#FFF9C4", style="filled"`;
|
|
126
|
+
}
|
|
127
|
+
else if (node.type === 'entry_file') {
|
|
128
|
+
return `fillcolor="#FFE0B2", style="filled"`;
|
|
129
|
+
}
|
|
130
|
+
return '';
|
|
131
|
+
}
|