pub struct Config { /* private fields */ }
Expand description
Configuration for JavaScript.
Implementations§
source§impl Config
impl Config
sourcepub fn with_module_path<M>(self, module_path: M) -> Selfwhere
M: Into<RelativePathBuf>,
pub fn with_module_path<M>(self, module_path: M) -> Selfwhere
M: Into<RelativePathBuf>,
Configure the path to the current module being renderer.
This setting will determine what path imports are renderer relative
towards. So importing a module from "foo/bar.js"
, and setting this to
"foo/baz.js"
will cause the import to be rendered relatively as
"../bar.js"
.
Examples
use genco::prelude::*;
use genco::fmt;
let foo1 = js::import(js::Module::Path("foo/bar.js".into()), "Foo1");
let foo2 = js::import(js::Module::Path("foo/bar.js".into()), "Foo2");
let react = js::import("react", "React").into_default();
let toks: js::Tokens = quote! {
$foo1
$foo2
$react
};
let mut w = fmt::VecWriter::new();
let config = js::Config::default().with_module_path("foo/baz.js");
let fmt = fmt::Config::from_lang::<JavaScript>();
toks.format_file(&mut w.as_formatter(&fmt), &config)?;
assert_eq!(
vec![
"import {Foo1, Foo2} from \"../bar.js\";",
"import React from \"react\";",
"",
"Foo1",
"Foo2",
"React"
],
w.into_vec()
);
Trait Implementations§
Auto Trait Implementations§
impl RefUnwindSafe for Config
impl Send for Config
impl Sync for Config
impl Unpin for Config
impl UnwindSafe for Config
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more