mirror of
https://github.com/MercuryWorkshop/scramjet.git
synced 2025-05-17 08:00:02 -04:00
clippy
This commit is contained in:
parent
695310fce9
commit
544134f800
3 changed files with 26 additions and 44 deletions
|
@ -1,11 +1,7 @@
|
||||||
pub mod rewrite;
|
pub mod rewrite;
|
||||||
|
|
||||||
use std::{
|
use std::{panic, str::FromStr};
|
||||||
panic,
|
|
||||||
str::{from_utf8, FromStr},
|
|
||||||
};
|
|
||||||
|
|
||||||
use js_sys::Uint8Array;
|
|
||||||
use rewrite::rewrite;
|
use rewrite::rewrite;
|
||||||
use url::Url;
|
use url::Url;
|
||||||
use wasm_bindgen::prelude::*;
|
use wasm_bindgen::prelude::*;
|
||||||
|
|
|
@ -5,16 +5,6 @@ use std::{
|
||||||
str::{from_utf8, FromStr},
|
str::{from_utf8, FromStr},
|
||||||
};
|
};
|
||||||
|
|
||||||
use oxc_allocator::Allocator;
|
|
||||||
use oxc_ast::{
|
|
||||||
ast::{AssignmentTarget, Class, Function, IdentifierReference, MemberExpression, TSImportType},
|
|
||||||
visit::walk,
|
|
||||||
Visit,
|
|
||||||
};
|
|
||||||
use oxc_parser::Parser;
|
|
||||||
use oxc_span::{SourceType, Span};
|
|
||||||
use oxc_syntax::scope::ScopeFlags;
|
|
||||||
|
|
||||||
pub mod rewrite;
|
pub mod rewrite;
|
||||||
|
|
||||||
use rewrite::rewrite;
|
use rewrite::rewrite;
|
||||||
|
@ -40,7 +30,6 @@ fn main() -> std::io::Result<()> {
|
||||||
.as_slice()
|
.as_slice()
|
||||||
)
|
)
|
||||||
.unwrap()
|
.unwrap()
|
||||||
.to_string()
|
|
||||||
);
|
);
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
|
|
|
@ -1,15 +1,12 @@
|
||||||
use oxc_allocator::Allocator;
|
use oxc_allocator::Allocator;
|
||||||
use oxc_ast::{
|
use oxc_ast::{
|
||||||
ast::{
|
ast::{AssignmentTarget, Expression, IdentifierReference, ObjectPropertyKind},
|
||||||
AssignmentTarget, Class, Expression, Function, IdentifierReference, MemberExpression,
|
|
||||||
ObjectExpression, ObjectProperty, ObjectPropertyKind, TSImportType,
|
|
||||||
},
|
|
||||||
visit::walk,
|
visit::walk,
|
||||||
Visit,
|
Visit,
|
||||||
};
|
};
|
||||||
use oxc_parser::Parser;
|
use oxc_parser::Parser;
|
||||||
use oxc_span::{SourceType, Span};
|
use oxc_span::{SourceType, Span};
|
||||||
use oxc_syntax::{operator::AssignmentOperator, scope::ScopeFlags};
|
use oxc_syntax::operator::AssignmentOperator;
|
||||||
use url::Url;
|
use url::Url;
|
||||||
use urlencoding::encode;
|
use urlencoding::encode;
|
||||||
|
|
||||||
|
@ -42,7 +39,7 @@ impl Rewriter {
|
||||||
|
|
||||||
let urlencoded = encode(url.as_str());
|
let urlencoded = encode(url.as_str());
|
||||||
|
|
||||||
return format!("\"/scramjet/{}\"", urlencoded);
|
format!("\"/scramjet/{}\"", urlencoded)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -102,17 +99,16 @@ impl<'a> Visit<'a> for Rewriter {
|
||||||
|
|
||||||
fn visit_object_expression(&mut self, it: &oxc_ast::ast::ObjectExpression<'a>) {
|
fn visit_object_expression(&mut self, it: &oxc_ast::ast::ObjectExpression<'a>) {
|
||||||
for prop in &it.properties {
|
for prop in &it.properties {
|
||||||
|
#[allow(clippy::single_match)]
|
||||||
match prop {
|
match prop {
|
||||||
ObjectPropertyKind::ObjectProperty(p) => match &p.value {
|
ObjectPropertyKind::ObjectProperty(p) => match &p.value {
|
||||||
Expression::Identifier(s) => {
|
Expression::Identifier(s) => {
|
||||||
if UNSAFE_GLOBALS.contains(&s.name.to_string().as_str()) {
|
if UNSAFE_GLOBALS.contains(&s.name.to_string().as_str()) && p.shorthand {
|
||||||
if p.shorthand {
|
self.jschanges.push(JsChange::GenericChange {
|
||||||
self.jschanges.push(JsChange::GenericChange {
|
span: s.span,
|
||||||
span: s.span,
|
text: format!("{}: (globalThis.$s({}))", s.name, s.name),
|
||||||
text: format!("{}: (globalThis.$s({}))", s.name, s.name),
|
});
|
||||||
});
|
return;
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
_ => {}
|
_ => {}
|
||||||
|
@ -125,6 +121,7 @@ impl<'a> Visit<'a> for Rewriter {
|
||||||
}
|
}
|
||||||
|
|
||||||
fn visit_assignment_expression(&mut self, it: &oxc_ast::ast::AssignmentExpression<'a>) {
|
fn visit_assignment_expression(&mut self, it: &oxc_ast::ast::AssignmentExpression<'a>) {
|
||||||
|
#[allow(clippy::single_match)]
|
||||||
match &it.left {
|
match &it.left {
|
||||||
AssignmentTarget::AssignmentTargetIdentifier(s) => {
|
AssignmentTarget::AssignmentTargetIdentifier(s) => {
|
||||||
if ["location"].contains(&s.name.to_string().as_str()) {
|
if ["location"].contains(&s.name.to_string().as_str()) {
|
||||||
|
@ -210,7 +207,7 @@ const UNSAFE_GLOBALS: [&str; 8] = [
|
||||||
pub fn rewrite(js: &str, url: Url) -> Vec<u8> {
|
pub fn rewrite(js: &str, url: Url) -> Vec<u8> {
|
||||||
let allocator = Allocator::default();
|
let allocator = Allocator::default();
|
||||||
let source_type = SourceType::default();
|
let source_type = SourceType::default();
|
||||||
let ret = Parser::new(&allocator, &js, source_type).parse();
|
let ret = Parser::new(&allocator, js, source_type).parse();
|
||||||
|
|
||||||
for error in ret.errors {
|
for error in ret.errors {
|
||||||
let cloned = js.to_string();
|
let cloned = js.to_string();
|
||||||
|
@ -232,22 +229,22 @@ pub fn rewrite(js: &str, url: Url) -> Vec<u8> {
|
||||||
// sorrt changse
|
// sorrt changse
|
||||||
ast_pass.jschanges.sort_by(|a, b| {
|
ast_pass.jschanges.sort_by(|a, b| {
|
||||||
let a = match a {
|
let a = match a {
|
||||||
JsChange::GenericChange { span, text } => span.start,
|
JsChange::GenericChange { span, text: _ } => span.start,
|
||||||
JsChange::Assignment {
|
JsChange::Assignment {
|
||||||
name,
|
name: _,
|
||||||
entirespan,
|
entirespan,
|
||||||
rhsspan,
|
rhsspan: _,
|
||||||
op,
|
op: _,
|
||||||
} => entirespan.start,
|
} => entirespan.start,
|
||||||
_ => 0,
|
_ => 0,
|
||||||
};
|
};
|
||||||
let b = match b {
|
let b = match b {
|
||||||
JsChange::GenericChange { span, text } => span.start,
|
JsChange::GenericChange { span, text: _ } => span.start,
|
||||||
JsChange::Assignment {
|
JsChange::Assignment {
|
||||||
name,
|
name: _,
|
||||||
entirespan,
|
entirespan,
|
||||||
rhsspan,
|
rhsspan: _,
|
||||||
op,
|
op: _,
|
||||||
} => entirespan.start,
|
} => entirespan.start,
|
||||||
_ => 0,
|
_ => 0,
|
||||||
};
|
};
|
||||||
|
@ -265,8 +262,8 @@ pub fn rewrite(js: &str, url: Url) -> Vec<u8> {
|
||||||
JsChange::Assignment {
|
JsChange::Assignment {
|
||||||
name,
|
name,
|
||||||
entirespan,
|
entirespan,
|
||||||
rhsspan,
|
rhsspan: _,
|
||||||
op,
|
op: _,
|
||||||
} => difference += entirespan.size() as i32 + name.len() as i32 + 10,
|
} => difference += entirespan.size() as i32 + name.len() as i32 + 10,
|
||||||
_ => {}
|
_ => {}
|
||||||
}
|
}
|
||||||
|
@ -282,7 +279,7 @@ pub fn rewrite(js: &str, url: Url) -> Vec<u8> {
|
||||||
let start = span.start as usize;
|
let start = span.start as usize;
|
||||||
let end = span.end as usize;
|
let end = span.end as usize;
|
||||||
|
|
||||||
buffer.extend_from_slice(unsafe { js.slice_unchecked(offset, start) }.as_bytes());
|
buffer.extend_from_slice(unsafe { js.get_unchecked(offset..start) }.as_bytes());
|
||||||
|
|
||||||
buffer.extend_from_slice(text.as_bytes());
|
buffer.extend_from_slice(text.as_bytes());
|
||||||
offset = end;
|
offset = end;
|
||||||
|
@ -294,7 +291,7 @@ pub fn rewrite(js: &str, url: Url) -> Vec<u8> {
|
||||||
op,
|
op,
|
||||||
} => {
|
} => {
|
||||||
let start = entirespan.start as usize;
|
let start = entirespan.start as usize;
|
||||||
buffer.extend_from_slice(&js[offset..start].as_bytes());
|
buffer.extend_from_slice(js[offset..start].as_bytes());
|
||||||
|
|
||||||
let opstr = match op {
|
let opstr = match op {
|
||||||
AssignmentOperator::Assign => "=",
|
AssignmentOperator::Assign => "=",
|
||||||
|
@ -333,5 +330,5 @@ pub fn rewrite(js: &str, url: Url) -> Vec<u8> {
|
||||||
}
|
}
|
||||||
buffer.extend_from_slice(js[offset..].as_bytes());
|
buffer.extend_from_slice(js[offset..].as_bytes());
|
||||||
|
|
||||||
return buffer;
|
buffer
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue