turbopack_test_utils/
noop_asset_context.rs1use anyhow::Result;
2use turbo_rcstr::RcStr;
3use turbo_tasks::{ResolvedVc, Vc};
4use turbo_tasks_fs::FileSystemPath;
5use turbopack_core::{
6 compile_time_info::CompileTimeInfo,
7 context::{AssetContext, ProcessResult},
8 ident::Layer,
9 reference_type::ReferenceType,
10 resolve::{ModuleResolveResult, ResolveResult, options::ResolveOptions, parse::Request},
11 source::Source,
12};
13
14#[turbo_tasks::value(shared)]
15pub struct NoopAssetContext {
16 pub compile_time_info: ResolvedVc<CompileTimeInfo>,
17 pub layer: Layer,
18}
19
20#[turbo_tasks::value_impl]
21impl AssetContext for NoopAssetContext {
22 #[turbo_tasks::function]
23 fn compile_time_info(&self) -> Vc<CompileTimeInfo> {
24 *self.compile_time_info
25 }
26
27 fn layer(&self) -> Layer {
28 self.layer.clone()
29 }
30
31 #[turbo_tasks::function]
32 async fn resolve_options(
33 self: Vc<Self>,
34 _origin_path: FileSystemPath,
35 ) -> Result<Vc<ResolveOptions>> {
36 Ok(ResolveOptions::default().cell())
37 }
38
39 #[turbo_tasks::function]
40 async fn resolve_asset(
41 self: Vc<Self>,
42 _origin_path: FileSystemPath,
43 _request: Vc<Request>,
44 _resolve_options: Vc<ResolveOptions>,
45 _reference_type: ReferenceType,
46 ) -> Result<Vc<ModuleResolveResult>> {
47 Ok(*ModuleResolveResult::unresolvable())
48 }
49
50 #[turbo_tasks::function]
51 async fn process_resolve_result(
52 self: Vc<Self>,
53 _result: Vc<ResolveResult>,
54 _reference_type: ReferenceType,
55 ) -> Result<Vc<ModuleResolveResult>> {
56 Ok(*ModuleResolveResult::unresolvable())
57 }
58
59 #[turbo_tasks::function]
60 async fn process(
61 self: Vc<Self>,
62 _asset: ResolvedVc<Box<dyn Source>>,
63 _reference_type: ReferenceType,
64 ) -> Result<Vc<ProcessResult>> {
65 Ok(ProcessResult::Ignore.cell())
66 }
67
68 #[turbo_tasks::function]
69 async fn with_transition(
70 self: Vc<Self>,
71 _transition: RcStr,
72 ) -> Result<Vc<Box<dyn AssetContext>>> {
73 Ok(Vc::upcast(self))
74 }
75}