macro_rules! source_builder_methods {
($ty:ty) => {
impl $ty {
pub fn root(mut self, root: impl Into<std::path::PathBuf>) -> Self {
self.roots.push(root.into());
self
}
pub fn roots<I, P>(mut self, roots: I) -> Self
where
I: IntoIterator<Item = P>,
P: Into<std::path::PathBuf>,
{
self.roots.extend(roots.into_iter().map(Into::into));
self
}
pub fn typescript(mut self, on: bool) -> Self {
self.processors.typescript = on;
self
}
pub fn scss(mut self, on: bool) -> Self {
self.processors.scss = on;
self
}
pub fn tera(mut self, on: bool) -> Self {
self.processors.tera = on;
self
}
pub fn skip_duplicates(mut self, on: bool) -> Self {
self.processors.skip_duplicates = on;
self
}
pub fn decorators(mut self, decorators: crate::Decorators) -> Self {
self.processors.ts_decorators = decorators;
self
}
pub fn symlinks(mut self, mode: crate::SymlinkMode) -> Self {
self.processors.symlinks = mode;
self
}
pub fn scss_load_path(mut self, path: impl Into<std::path::PathBuf>) -> Self {
self.processors.extra_scss_load_paths.push(path.into());
self
}
pub fn scss_load_paths<I, P>(mut self, paths: I) -> Self
where
I: IntoIterator<Item = P>,
P: Into<std::path::PathBuf>,
{
self.processors
.extra_scss_load_paths
.extend(paths.into_iter().map(Into::into));
self
}
pub fn reject_preset(mut self, presets: crate::reject::Presets) -> Self {
self.processors.reject = presets.into();
self
}
pub fn reject(mut self, pattern: impl AsRef<str>) -> Self {
self.processors.reject.add(pattern);
self
}
}
};
}
pub(crate) use source_builder_methods;