Skip to content

Commit 97d8df7

Browse files
authored
Transform only page files (#9)
* Transform only pages * Replace path prefix with linux style
1 parent 90a54d4 commit 97d8df7

File tree

1 file changed

+20
-3
lines changed

1 file changed

+20
-3
lines changed

src/lib.rs

Lines changed: 20 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,12 @@
1-
use std::ops::IndexMut;
1+
use std::{
2+
ops::IndexMut,
3+
path::{Component, Path},
4+
};
25

36
use serde::Deserialize;
47
use swc_plugin::{
58
ast::*,
6-
metadata::TransformPluginProgramMetadata,
9+
metadata::{TransformPluginMetadataContextKind, TransformPluginProgramMetadata},
710
plugin_transform,
811
syntax_pos::DUMMY_SP,
912
utils::{prepend_stmt, take::Take, ExprFactory},
@@ -962,5 +965,19 @@ pub fn process_transform(program: Program, _metadata: TransformPluginProgramMeta
962965
let config = serde_json::from_str::<Config>(&_metadata.get_transform_plugin_config().unwrap())
963966
.expect("Failed to parse plugin config");
964967

965-
program.fold_with(&mut plugin(config))
968+
match _metadata.get_context(&TransformPluginMetadataContextKind::Filename) {
969+
Some(s) => {
970+
// check file is under 'pages' directory
971+
let is_page = Path::new(&s.replace('\\', "/")).components().any(|cmp| match cmp {
972+
Component::Normal(str) => str.to_str().unwrap_or_default() == "pages",
973+
_ => false,
974+
});
975+
976+
if is_page {
977+
return program.fold_with(&mut plugin(config));
978+
}
979+
program
980+
}
981+
None => program,
982+
}
966983
}

0 commit comments

Comments
 (0)