Skip to content

Commit 570e044

Browse files
committed
Allow using generated assets
1 parent 348208d commit 570e044

5 files changed

Lines changed: 494 additions & 83 deletions

File tree

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
[build]
2+
rustdocflags = ['--cfg', 'skip_out_tests']

packages/manganis/manganis-macro/assets/manganis_macro.dat renamed to packages/manganis/manganis-macro/out/generated-asset.txt

File renamed without changes.

packages/manganis/manganis-macro/src/asset.rs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
use crate::{linker::generate_link_section, resolve_path, AssetParseError};
1+
use crate::{linker::generate_link_section, AssetParseError, PathResolution, PathResolver};
22
use macro_string::MacroString;
33
use proc_macro2::TokenStream as TokenStream2;
44
use quote::{quote, ToTokens};
@@ -44,8 +44,9 @@ impl Parse for AssetParser {
4444
// But we need to decide the hint first before parsing the options
4545
fn parse(input: ParseStream) -> syn::Result<Self> {
4646
// And then parse the options
47+
let resolution = input.call(PathResolution::parse)?;
4748
let (MacroString(src), path_expr) = input.call(crate::parse_with_tokens)?;
48-
let asset = resolve_path(&src, path_expr.span());
49+
let asset = PathResolver::new(resolution, &src, &path_expr.span()).resolve();
4950
let _comma = input.parse::<Token![,]>();
5051
let options = input.parse()?;
5152

@@ -133,7 +134,7 @@ impl AssetParser {
133134
let asset_tokens = self.expand_asset_tokens(asset);
134135
quote! { ::core::option::Option::Some(#asset_tokens) }
135136
}
136-
Err(AssetParseError::AssetDoesntExist { .. }) => {
137+
Err(AssetParseError::DoesNotExist { .. }) => {
137138
quote! { ::core::option::Option::<manganis::Asset>::None }
138139
}
139140
Err(err) => self.error_tokens(err),

packages/manganis/manganis-macro/src/css_module.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
use crate::{asset::AssetParser, resolve_path};
1+
use crate::{asset::AssetParser, PathResolution, PathResolver};
22
use macro_string::MacroString;
33
use manganis_core::{create_module_hash, get_class_mappings};
44
use proc_macro2::{Span, TokenStream};
@@ -17,8 +17,9 @@ pub(crate) struct CssModuleAttribute {
1717
impl Parse for CssModuleAttribute {
1818
fn parse(input: ParseStream) -> syn::Result<Self> {
1919
// Asset path "/path.css"
20+
let resolution = input.call(PathResolution::parse)?;
2021
let (MacroString(src), path_expr) = input.call(crate::parse_with_tokens)?;
21-
let asset = resolve_path(&src, path_expr.span());
22+
let asset = PathResolver::new(resolution, &src, &path_expr.span()).resolve();
2223

2324
let _comma = input.parse::<Comma>();
2425

0 commit comments

Comments
 (0)