turbopack_test_utils/
noop_asset_context.rs1use anyhow::Result;
2use turbo_rcstr::{RcStr, rcstr};
3use turbo_tasks::{ResolvedVc, Vc};
4use turbo_tasks_fs::{FileSystemPath, glob::Glob};
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 _reference_type: ReferenceType,
36 ) -> Result<Vc<ResolveOptions>> {
37 Ok(ResolveOptions::default().cell())
38 }
39
40 #[turbo_tasks::function]
41 async fn resolve_asset(
42 self: Vc<Self>,
43 _origin_path: FileSystemPath,
44 _request: Vc<Request>,
45 _resolve_options: Vc<ResolveOptions>,
46 _reference_type: ReferenceType,
47 ) -> Result<Vc<ModuleResolveResult>> {
48 Ok(*ModuleResolveResult::unresolvable())
49 }
50
51 #[turbo_tasks::function]
52 async fn process_resolve_result(
53 self: Vc<Self>,
54 _result: Vc<ResolveResult>,
55 _reference_type: ReferenceType,
56 ) -> Result<Vc<ModuleResolveResult>> {
57 Ok(*ModuleResolveResult::unresolvable())
58 }
59
60 #[turbo_tasks::function]
61 async fn process(
62 self: Vc<Self>,
63 _asset: ResolvedVc<Box<dyn Source>>,
64 _reference_type: ReferenceType,
65 ) -> Result<Vc<ProcessResult>> {
66 Ok(ProcessResult::Ignore.cell())
67 }
68
69 #[turbo_tasks::function]
70 async fn with_transition(
71 self: Vc<Self>,
72 _transition: RcStr,
73 ) -> Result<Vc<Box<dyn AssetContext>>> {
74 Ok(Vc::upcast(self))
75 }
76
77 #[turbo_tasks::function]
78 async fn side_effect_free_packages(&self) -> Result<Vc<Glob>> {
79 Ok(Glob::new(rcstr!(""), Default::default()))
80 }
81}