mirror of
https://github.com/MercuryWorkshop/scramjet.git
synced 2025-05-17 16:10:02 -04:00
export declarations (untested)
This commit is contained in:
parent
cd892e3cb1
commit
eba3e759fd
1 changed files with 32 additions and 5 deletions
|
@ -35,6 +35,15 @@ struct Rewriter {
|
|||
jschanges: Vec<JsChange>,
|
||||
base: Url,
|
||||
}
|
||||
impl Rewriter {
|
||||
fn rewrite_url(&mut self, url: String) -> String {
|
||||
let url = self.base.join(&url).unwrap();
|
||||
|
||||
let urlencoded = encode(url.as_str());
|
||||
|
||||
return format!("\"/scramjet/{}\"", urlencoded);
|
||||
}
|
||||
}
|
||||
|
||||
impl<'a> Visit<'a> for Rewriter {
|
||||
fn visit_identifier_reference(&mut self, it: &IdentifierReference<'a>) {
|
||||
|
@ -54,13 +63,10 @@ impl<'a> Visit<'a> for Rewriter {
|
|||
|
||||
fn visit_import_declaration(&mut self, it: &oxc_ast::ast::ImportDeclaration<'a>) {
|
||||
let name = it.source.value.to_string();
|
||||
let url = self.base.join(&name).unwrap();
|
||||
|
||||
let urlencoded = encode(url.as_str());
|
||||
|
||||
let text = self.rewrite_url(name);
|
||||
self.jschanges.push(JsChange::GenericChange {
|
||||
span: it.source.span,
|
||||
text: format!("\"/scramjet/{}\"", urlencoded),
|
||||
text,
|
||||
});
|
||||
walk::walk_import_declaration(self, it);
|
||||
}
|
||||
|
@ -72,6 +78,27 @@ impl<'a> Visit<'a> for Rewriter {
|
|||
walk::walk_import_expression(self, it);
|
||||
}
|
||||
|
||||
fn visit_export_all_declaration(&mut self, it: &oxc_ast::ast::ExportAllDeclaration<'a>) {
|
||||
let name = it.source.value.to_string();
|
||||
let text = self.rewrite_url(name);
|
||||
self.jschanges.push(JsChange::GenericChange {
|
||||
span: it.source.span,
|
||||
text,
|
||||
});
|
||||
}
|
||||
|
||||
fn visit_export_named_declaration(&mut self, it: &oxc_ast::ast::ExportNamedDeclaration<'a>) {
|
||||
if let Some(source) = &it.source {
|
||||
let name = source.value.to_string();
|
||||
let text = self.rewrite_url(name);
|
||||
self.jschanges.push(JsChange::GenericChange {
|
||||
span: source.span,
|
||||
text,
|
||||
});
|
||||
}
|
||||
walk::walk_export_named_declaration(self, it);
|
||||
}
|
||||
|
||||
fn visit_object_expression(&mut self, it: &oxc_ast::ast::ObjectExpression<'a>) {
|
||||
for prop in &it.properties {
|
||||
match prop {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue