mirror of
https://codeberg.org/demostf/frontend.git
synced 2026-06-03 10:14:13 +02:00
swc updates
This commit is contained in:
parent
f6bab626ec
commit
c971fe6d79
9 changed files with 4737 additions and 4545 deletions
3333
Cargo.lock
generated
3333
Cargo.lock
generated
File diff suppressed because it is too large
Load diff
3014
build/Cargo.lock
generated
3014
build/Cargo.lock
generated
File diff suppressed because it is too large
Load diff
|
|
@ -12,6 +12,6 @@ name = "script"
|
|||
[dependencies]
|
||||
demostf-build-derive = {version = "0.1", path = "./derive"}
|
||||
demostf-build-bundlers = {version = "0.1", path = "./bundlers"}
|
||||
rand = "0.8.5"
|
||||
rand = "0.10.0"
|
||||
tracing-subscriber = "0.3.16"
|
||||
|
||||
|
|
|
|||
2992
build/bundlers/Cargo.lock
generated
2992
build/bundlers/Cargo.lock
generated
File diff suppressed because it is too large
Load diff
|
|
@ -7,23 +7,21 @@ edition = "2021"
|
|||
lightningcss = { version = "1.0.0-alpha.61", features = ["browserslist", "visitor"] }
|
||||
base64 = "0.21.0"
|
||||
urlencoding = "2.1.2"
|
||||
swc = "0.273.28"
|
||||
swc_config = "=0.1.14"
|
||||
swc_common = { version = "0.33", features = ["tty-emitter", "concurrent"] }
|
||||
swc_core = { version = "0.90" }
|
||||
swc_bundler = { version = "0.225.19" }
|
||||
swc_ecma_loader = { version = "0.45.28", features = ["node", "cache"] }
|
||||
swc_ecma_ast = { version = "0.112.8" }
|
||||
swc_atoms = { version = "0.6.7" }
|
||||
swc_ecma_parser = { version = "0.143.16", features = ["typescript"] }
|
||||
swc_ecma_codegen = { version = "0.148.18" }
|
||||
swc_ecma_transforms_base = { version = "0.137.21" }
|
||||
swc_ecma_transforms_typescript = { version = "0.188.19" }
|
||||
swc_ecma_visit = { version = "0.98.7" }
|
||||
swc_common = { version = "18.0.0", features = ["tty-emitter", "concurrent"] }
|
||||
swc_core = { version = "53.0.1" }
|
||||
swc_bundler = { version = "39.0.0" }
|
||||
swc_ecma_loader = { version = "18.0.0", features = ["node", "cache"] }
|
||||
swc_ecma_ast = { version = "19.0.0" }
|
||||
swc_atoms = { version = "9.0.0", features = [] }
|
||||
swc_ecma_parser = { version = "31.0.0", features = ["typescript"] }
|
||||
swc_ecma_codegen = { version = "21.0.0" }
|
||||
swc_ecma_transforms_base = { version = "34.0.0" }
|
||||
swc_ecma_transforms_typescript = { version = "37.0.0" }
|
||||
swc_ecma_visit = { version = "19.0.0" }
|
||||
anyhow = "1.0.70"
|
||||
jsx-dom-expressions = { version = "0.1", git = "https://github.com/icewind1991/swc-plugin-jsx-dom-expressions", branch = "fix-builtin-import" }
|
||||
#jsx-dom-expressions = { version = "0.1", git = "https://github.com/milomg/swc-plugin-jsx-dom-expressions" }
|
||||
#jsx-dom-expressions = { version = "0.1", path = "../../../../rust/swc-plugin-jsx-dom-expressions" }
|
||||
rand = "0.8.5"
|
||||
rand = "0.10.0"
|
||||
fnv = "1.0.7"
|
||||
|
||||
|
|
|
|||
|
|
@ -46,7 +46,7 @@ pub fn guess_mime(path: &str) -> &'static str {
|
|||
{
|
||||
return "text/javascript";
|
||||
}
|
||||
return "text/plain";
|
||||
"text/plain"
|
||||
}
|
||||
|
||||
fn inline_url(path: &str) -> String {
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ impl VisitMut for InlineVisitor {
|
|||
if callee.sym.as_ref() == "require" {
|
||||
if let Some(arg) = args.first() {
|
||||
if let Expr::Lit(Lit::Str(arg)) = arg.expr.as_ref() {
|
||||
let path = arg.value.to_string();
|
||||
let path = arg.value.to_string_lossy().into_owned();
|
||||
self.visit_require(expr, &path)
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ use jsx_dom_expressions::TransformVisitor;
|
|||
use std::collections::HashMap;
|
||||
use std::io::Write;
|
||||
use std::sync::Arc;
|
||||
use swc_atoms::js_word;
|
||||
use swc_atoms::Atom;
|
||||
use swc_bundler::{Bundler, Load, ModuleData, ModuleRecord};
|
||||
use swc_common::comments::NoopComments;
|
||||
use swc_common::sync::Lrc;
|
||||
|
|
@ -20,11 +20,11 @@ use swc_ecma_codegen::Emitter;
|
|||
use swc_ecma_loader::resolvers::lru::CachingResolver;
|
||||
use swc_ecma_loader::resolvers::node::NodeModulesResolver;
|
||||
use swc_ecma_loader::TargetEnv;
|
||||
use swc_ecma_parser::{parse_file_as_module, Syntax, TsConfig};
|
||||
use swc_ecma_parser::{parse_file_as_module, Syntax, TsSyntax};
|
||||
use swc_ecma_transforms_base::fixer::fixer;
|
||||
use swc_ecma_transforms_base::hygiene::hygiene;
|
||||
use swc_ecma_transforms_typescript::strip;
|
||||
use swc_ecma_visit::{as_folder, FoldWith};
|
||||
use swc_ecma_visit::visit_mut_pass;
|
||||
|
||||
pub fn bundle_script(script: &str) -> Vec<u8> {
|
||||
#[cfg(debug_assertions)]
|
||||
|
|
@ -95,7 +95,7 @@ impl swc_bundler::Hook for Hook {
|
|||
|
||||
Ok(vec![
|
||||
KeyValueProp {
|
||||
key: PropName::Ident(Ident::new(js_word!("url"), span)),
|
||||
key: PropName::Ident(IdentName::new(Atom::new("url"), span)),
|
||||
value: Box::new(Expr::Lit(Lit::Str(Str {
|
||||
span,
|
||||
raw: None,
|
||||
|
|
@ -103,7 +103,7 @@ impl swc_bundler::Hook for Hook {
|
|||
}))),
|
||||
},
|
||||
KeyValueProp {
|
||||
key: PropName::Ident(Ident::new(js_word!("main"), span)),
|
||||
key: PropName::Ident(IdentName::new(Atom::new("main"), span)),
|
||||
value: Box::new(if module_record.is_entry {
|
||||
Expr::Member(MemberExpr {
|
||||
span,
|
||||
|
|
@ -111,7 +111,7 @@ impl swc_bundler::Hook for Hook {
|
|||
span,
|
||||
kind: MetaPropKind::ImportMeta,
|
||||
})),
|
||||
prop: MemberProp::Ident(Ident::new(js_word!("main"), span)),
|
||||
prop: MemberProp::Ident(IdentName::new(Atom::new("main"), span)),
|
||||
})
|
||||
} else {
|
||||
Expr::Lit(Lit::Bool(Bool { span, value: false }))
|
||||
|
|
@ -134,9 +134,9 @@ impl Load for Loader {
|
|||
|
||||
let module = parse_file_as_module(
|
||||
&fm,
|
||||
Syntax::Typescript(TsConfig {
|
||||
Syntax::Typescript(TsSyntax {
|
||||
tsx: true,
|
||||
..TsConfig::default()
|
||||
..TsSyntax::default()
|
||||
}),
|
||||
EsVersion::Es5,
|
||||
None,
|
||||
|
|
@ -152,11 +152,12 @@ impl Load for Loader {
|
|||
let program = Program::Module(module);
|
||||
|
||||
let top_level_mark = Mark::new();
|
||||
let unresolved_mark = Mark::new();
|
||||
|
||||
let program = program
|
||||
.fold_with(&mut strip(top_level_mark))
|
||||
.fold_with(&mut as_folder(InlineVisitor {}))
|
||||
.fold_with(&mut as_folder(TransformVisitor::new(
|
||||
.apply(strip(unresolved_mark, top_level_mark))
|
||||
.apply(visit_mut_pass(InlineVisitor {}))
|
||||
.apply(visit_mut_pass(TransformVisitor::new(
|
||||
jsx_dom_expressions::config::Config {
|
||||
module_name: "solid-js/web".to_string(),
|
||||
built_ins: vec![
|
||||
|
|
@ -175,8 +176,8 @@ impl Load for Loader {
|
|||
},
|
||||
NoopComments,
|
||||
)))
|
||||
.fold_with(&mut hygiene())
|
||||
.fold_with(&mut fixer(None));
|
||||
.apply(hygiene())
|
||||
.apply(fixer(None));
|
||||
|
||||
let module = program.module().unwrap();
|
||||
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ pub use demostf_build_bundlers::bundle_raw;
|
|||
pub use demostf_build_bundlers::bundle_script;
|
||||
pub use demostf_build_bundlers::bundle_style;
|
||||
pub use demostf_build_derive::Asset;
|
||||
use rand::{distributions::Alphanumeric, Rng};
|
||||
use rand::{distr::Alphanumeric, RngExt};
|
||||
use std::borrow::Cow;
|
||||
|
||||
pub trait Asset {
|
||||
|
|
@ -15,7 +15,7 @@ pub trait Asset {
|
|||
}
|
||||
|
||||
pub fn random_cache_buster() -> String {
|
||||
rand::thread_rng()
|
||||
rand::rng()
|
||||
.sample_iter(&Alphanumeric)
|
||||
.take(8)
|
||||
.map(char::from)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue