Skip to content

Commit f678334

Browse files
committed
Replace dummy manifest with fake include_asset function
1 parent 743cca5 commit f678334

File tree

3 files changed

+41
-53
lines changed

3 files changed

+41
-53
lines changed

crates/spa/src/vite.rs

Lines changed: 0 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -47,48 +47,6 @@ pub struct Manifest {
4747
inner: HashMap<Utf8PathBuf, ManifestEntry>,
4848
}
4949

50-
impl Manifest {
51-
/// Produce a sample manifest for use in reproducible sample renders.
52-
#[must_use]
53-
#[allow(clippy::missing_panics_doc)]
54-
pub fn sample() -> Self {
55-
let mut inner = HashMap::new();
56-
57-
for name in &[
58-
"src/shared.css",
59-
"src/templates.css",
60-
"src/main.tsx",
61-
"src/swagger.ts",
62-
] {
63-
inner.insert(
64-
name.parse().unwrap(),
65-
ManifestEntry {
66-
name: None,
67-
names: None,
68-
src: None,
69-
// Construct a fake but slightly plausible dummy asset name.
70-
file: name
71-
.replace('/', "__")
72-
.replace('.', "-XXXXX.")
73-
.replace(".tsx", ".js")
74-
.replace(".ts", ".js")
75-
.parse()
76-
.unwrap(),
77-
css: None,
78-
assets: None,
79-
is_entry: None,
80-
is_dynamic_entry: None,
81-
imports: None,
82-
dynamic_imports: None,
83-
integrity: None,
84-
},
85-
);
86-
}
87-
88-
Manifest { inner }
89-
}
90-
}
91-
9250
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq, PartialOrd, Ord)]
9351
enum FileType {
9452
Script,

crates/templates/src/functions.rs

Lines changed: 36 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ use url::Url;
3030
pub fn register(
3131
env: &mut minijinja::Environment,
3232
url_builder: UrlBuilder,
33-
vite_manifest: ViteManifest,
33+
vite_manifest: Option<ViteManifest>,
3434
translator: Arc<Translator>,
3535
) {
3636
env.set_unknown_method_callback(minijinja_contrib::pycompat::unknown_method_callback);
@@ -43,13 +43,17 @@ pub fn register(
4343
env.add_filter("parse_user_agent", filter_parse_user_agent);
4444
env.add_function("add_params_to_url", function_add_params_to_url);
4545
env.add_function("counter", || Ok(Value::from_object(Counter::default())));
46-
env.add_global(
47-
"include_asset",
48-
Value::from_object(IncludeAsset {
49-
url_builder: url_builder.clone(),
50-
vite_manifest,
51-
}),
52-
);
46+
if let Some(vite_manifest) = vite_manifest {
47+
env.add_global(
48+
"include_asset",
49+
Value::from_object(IncludeAsset {
50+
url_builder: url_builder.clone(),
51+
vite_manifest,
52+
}),
53+
);
54+
} else {
55+
env.add_global("include_asset", Value::from_object(FakeIncludeAsset {}));
56+
}
5357
env.add_global(
5458
"translator",
5559
Value::from_object(TranslatorFunc { translator }),
@@ -456,6 +460,30 @@ impl Object for IncludeAsset {
456460
}
457461
}
458462

463+
struct FakeIncludeAsset {}
464+
465+
impl std::fmt::Debug for FakeIncludeAsset {
466+
fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
467+
f.debug_struct("FakeIncludeAsset").finish()
468+
}
469+
}
470+
471+
impl std::fmt::Display for FakeIncludeAsset {
472+
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
473+
f.write_str("fake_include_asset")
474+
}
475+
}
476+
477+
impl Object for FakeIncludeAsset {
478+
fn call(self: &Arc<Self>, _state: &State, args: &[Value]) -> Result<Value, Error> {
479+
let (path,): (&str,) = from_args(args)?;
480+
481+
Ok(Value::from_safe_string(format!(
482+
"<!--- include_asset {path} -->"
483+
)))
484+
}
485+
}
486+
459487
#[derive(Debug, Default)]
460488
struct Counter {
461489
count: AtomicUsize,

crates/templates/src/lib.rs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -206,10 +206,12 @@ impl Templates {
206206
.await
207207
.map_err(TemplateLoadingError::ViteManifestIO)?;
208208

209-
serde_json::from_slice::<ViteManifest>(&raw_vite_manifest)
210-
.map_err(TemplateLoadingError::ViteManifest)?
209+
Some(
210+
serde_json::from_slice::<ViteManifest>(&raw_vite_manifest)
211+
.map_err(TemplateLoadingError::ViteManifest)?,
212+
)
211213
} else {
212-
ViteManifest::sample()
214+
None
213215
};
214216

215217
// Parse it

0 commit comments

Comments
 (0)