introduce an Environment and track that for the graph and Assets (vercel/turbo#167)

This commit is contained in:
Tobias Koppers 2022-07-28 00:33:14 +02:00 committed by GitHub
parent 45b409393d
commit 52557b1c4d

View file

@ -12,19 +12,17 @@ use std::{
use anyhow::anyhow; use anyhow::anyhow;
use clap::Parser; use clap::Parser;
use turbo_tasks::{util::FormatDuration, TransientValue, TurboTasks}; use turbo_tasks::{util::FormatDuration, TransientValue, TurboTasks, Value};
use turbo_tasks_fs::{DiskFileSystemVc, FileSystemPathVc}; use turbo_tasks_fs::{DiskFileSystemVc, FileSystemPathVc};
use turbo_tasks_memory::{stats::Stats, viz, MemoryBackend}; use turbo_tasks_memory::{stats::Stats, viz, MemoryBackend};
use turbopack::{ use turbopack::{ecmascript::ModuleAssetVc as EcmascriptModuleAssetVc, ModuleAssetContextVc};
ecmascript::{target::CompileTargetVc, ModuleAssetVc as EcmascriptModuleAssetVc},
GraphOptionsVc, ModuleAssetContextVc,
};
use turbopack_core::{ use turbopack_core::{
chunk::{ chunk::{
dev::{DevChunkingContext, DevChunkingContextVc}, dev::{DevChunkingContext, DevChunkingContextVc},
ChunkGroupVc, ChunkableAssetVc, ChunkGroupVc, ChunkableAssetVc,
}, },
context::AssetContextVc, context::AssetContextVc,
environment::{BrowserEnvironment, EnvironmentIntention, EnvironmentVc, ExecutionEnvironment},
lazy::LazyAssetVc, lazy::LazyAssetVc,
source_asset::SourceAssetVc, source_asset::SourceAssetVc,
}; };
@ -83,7 +81,18 @@ async fn main() {
let source_asset = SourceAssetVc::new(FileSystemPathVc::new(fs, "src/index.js")).into(); let source_asset = SourceAssetVc::new(FileSystemPathVc::new(fs, "src/index.js")).into();
let context: AssetContextVc = ModuleAssetContextVc::new( let context: AssetContextVc = ModuleAssetContextVc::new(
root, root,
GraphOptionsVc::new(false, false, CompileTargetVc::current()), EnvironmentVc::new(
Value::new(ExecutionEnvironment::Browser(
BrowserEnvironment {
dom: true,
web_worker: false,
service_worker: false,
browser_version: 0,
}
.into(),
)),
Value::new(EnvironmentIntention::Client),
),
) )
.into(); .into();
let module = context.process(source_asset); let module = context.process(source_asset);