mirror of
https://github.com/denoland/deno.git
synced 2024-11-24 15:19:26 -05:00
upgrade: deno_doc, deno_lint, dprint, swc (#8292)
This commit is contained in:
parent
b244766f9d
commit
6743383d2e
8 changed files with 95 additions and 68 deletions
40
Cargo.lock
generated
40
Cargo.lock
generated
|
@ -484,9 +484,9 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "deno_doc"
|
||||
version = "0.1.14"
|
||||
version = "0.1.15"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "0259b3a74f4551823029c6e711093840b0cc1fa774b1d6be49643af65ba5c5f9"
|
||||
checksum = "d3a0eed03221f7502d8d5febebf1fa45a30e5596602a16edfc3c91048876e1dd"
|
||||
dependencies = [
|
||||
"futures",
|
||||
"lazy_static",
|
||||
|
@ -510,10 +510,11 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "deno_lint"
|
||||
version = "0.2.7"
|
||||
version = "0.2.9"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "1e8194edfcd2612361b7149f8d79aef5688f1463d76f8b613b517f4537a27ff9"
|
||||
checksum = "db3365f8888bbffc7b9b65268bebf4ba6fdaaf808d5a7a06fffe51786b37869a"
|
||||
dependencies = [
|
||||
"derive_more",
|
||||
"log",
|
||||
"once_cell",
|
||||
"regex",
|
||||
|
@ -534,6 +535,17 @@ dependencies = [
|
|||
"serde",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "derive_more"
|
||||
version = "0.99.11"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "41cb0e6161ad61ed084a36ba71fbba9e3ac5aee3606fb607fe08da6acbcf3d8c"
|
||||
dependencies = [
|
||||
"proc-macro2 1.0.21",
|
||||
"quote 1.0.7",
|
||||
"syn 1.0.41",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "digest"
|
||||
version = "0.8.1"
|
||||
|
@ -592,9 +604,9 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "dprint-plugin-typescript"
|
||||
version = "0.32.7"
|
||||
version = "0.32.8"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "dca4da0cbd145118f667eee6daa2eb90c2667ca25b0905dba6a7fa1d8ede6530"
|
||||
checksum = "9971ede7622499e842d0e0f6c24992da34815c1438f26d832b603d1fe9589b46"
|
||||
dependencies = [
|
||||
"dprint-core",
|
||||
"serde",
|
||||
|
@ -2271,9 +2283,9 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "swc_bundler"
|
||||
version = "0.14.1"
|
||||
version = "0.16.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "4637a8e92ffe50c39f7aac648f97181bba83206537b998a32b13fac553a6be60"
|
||||
checksum = "b2033b99b209c5978f2bc04931073fe18f676c5b95b12bb6a9ec3b618569d806"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"crc",
|
||||
|
@ -2297,9 +2309,9 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "swc_common"
|
||||
version = "0.10.4"
|
||||
version = "0.10.5"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "b2b9362f9d864172dd964c4a213bbf52e48f5b9fcaf3456441da4b279dd41463"
|
||||
checksum = "1dd78e25ecc138a4667f5e5ea4d1a1c35d424477882b549d4fc011062eecd50e"
|
||||
dependencies = [
|
||||
"ast_node",
|
||||
"cfg-if",
|
||||
|
@ -2407,9 +2419,9 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "swc_ecma_transforms"
|
||||
version = "0.29.1"
|
||||
version = "0.29.3"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "6ee08c5add657ead50136456ae60c0a018d796cc8f1566eb428edc48a061e545"
|
||||
checksum = "0958bbaa69e01a45a2268c398a8814014a029c0b4eaecd42f2545fcd642314e8"
|
||||
dependencies = [
|
||||
"Inflector",
|
||||
"arrayvec",
|
||||
|
@ -2482,9 +2494,9 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "swc_ecmascript"
|
||||
version = "0.13.1"
|
||||
version = "0.13.3"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "41561a31d6b9fb46c6d7ea3ab4bc1e851d0321d18ae038cd7bbe3ea3f4155e3b"
|
||||
checksum = "f11d30e16321db6eb94b38ec3dd701bc4e7bd5e146aa49451b049817a250b0f1"
|
||||
dependencies = [
|
||||
"swc_ecma_ast",
|
||||
"swc_ecma_codegen",
|
||||
|
|
|
@ -32,8 +32,8 @@ winapi = "0.3.9"
|
|||
|
||||
[dependencies]
|
||||
deno_core = { path = "../core", version = "0.66.0" }
|
||||
deno_doc = "0.1.14"
|
||||
deno_lint = "0.2.7"
|
||||
deno_doc = "0.1.15"
|
||||
deno_lint = "0.2.9"
|
||||
deno_web = { path = "../op_crates/web", version = "0.17.0" }
|
||||
deno_fetch = { path = "../op_crates/fetch", version = "0.9.0" }
|
||||
|
||||
|
@ -45,7 +45,7 @@ clap = "2.33.3"
|
|||
dissimilar = "1.0.2"
|
||||
dlopen = "0.1.8"
|
||||
encoding_rs = "0.8.24"
|
||||
dprint-plugin-typescript = "0.32.7"
|
||||
dprint-plugin-typescript = "0.32.8"
|
||||
filetime = "0.2.12"
|
||||
http = "0.2.1"
|
||||
indexmap = "1.6.0"
|
||||
|
@ -63,9 +63,9 @@ rustyline-derive = "0.3.1"
|
|||
serde = { version = "1.0.116", features = ["derive"] }
|
||||
sys-info = "0.7.0"
|
||||
sourcemap = "6.0.1"
|
||||
swc_bundler = "=0.14.1"
|
||||
swc_common = { version = "=0.10.4", features = ["sourcemap"] }
|
||||
swc_ecmascript = { version = "=0.13.1", features = ["codegen", "dep_graph", "parser", "react", "transforms", "visit"] }
|
||||
swc_bundler = "=0.16.1"
|
||||
swc_common = { version = "=0.10.5", features = ["sourcemap"] }
|
||||
swc_ecmascript = { version = "=0.13.3", features = ["codegen", "dep_graph", "parser", "react", "transforms", "visit"] }
|
||||
tempfile = "3.1.0"
|
||||
termcolor = "1.1.0"
|
||||
tokio = { version = "0.2.22", features = ["full"] }
|
||||
|
|
41
cli/ast.rs
41
cli/ast.rs
|
@ -482,23 +482,50 @@ pub fn transpile_module(
|
|||
pub struct BundleHook;
|
||||
|
||||
impl swc_bundler::Hook for BundleHook {
|
||||
fn get_import_meta_url(
|
||||
fn get_import_meta_props(
|
||||
&self,
|
||||
span: swc_common::Span,
|
||||
file: &swc_common::FileName,
|
||||
) -> Result<Option<swc_ecmascript::ast::Expr>, AnyError> {
|
||||
module_record: &swc_bundler::ModuleRecord,
|
||||
) -> Result<Vec<swc_ecmascript::ast::KeyValueProp>, AnyError> {
|
||||
use swc_ecmascript::ast;
|
||||
|
||||
// we use custom file names, and swc "wraps" these in `<` and `>` so, we
|
||||
// want to strip those back out.
|
||||
let mut value = file.to_string();
|
||||
let mut value = module_record.file_name.to_string();
|
||||
value.pop();
|
||||
value.remove(0);
|
||||
Ok(Some(swc_ecmascript::ast::Expr::Lit(
|
||||
swc_ecmascript::ast::Lit::Str(swc_ecmascript::ast::Str {
|
||||
|
||||
Ok(vec![
|
||||
ast::KeyValueProp {
|
||||
key: ast::PropName::Ident(ast::Ident::new("url".into(), span)),
|
||||
value: Box::new(ast::Expr::Lit(ast::Lit::Str(ast::Str {
|
||||
span,
|
||||
value: value.into(),
|
||||
has_escape: false,
|
||||
}))),
|
||||
},
|
||||
ast::KeyValueProp {
|
||||
key: ast::PropName::Ident(ast::Ident::new("main".into(), span)),
|
||||
value: Box::new(if module_record.is_entry {
|
||||
ast::Expr::Member(ast::MemberExpr {
|
||||
span,
|
||||
obj: ast::ExprOrSuper::Expr(Box::new(ast::Expr::MetaProp(
|
||||
ast::MetaPropExpr {
|
||||
meta: ast::Ident::new("import".into(), span),
|
||||
prop: ast::Ident::new("meta".into(), span),
|
||||
},
|
||||
))),
|
||||
prop: Box::new(ast::Expr::Ident(ast::Ident::new(
|
||||
"main".into(),
|
||||
span,
|
||||
))),
|
||||
computed: false,
|
||||
})
|
||||
} else {
|
||||
ast::Expr::Lit(ast::Lit::Bool(ast::Bool { span, value: false }))
|
||||
}),
|
||||
)))
|
||||
},
|
||||
])
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1024,9 +1024,6 @@ rule name:
|
|||
|
||||
Names of rules to ignore must be specified after ignore comment.
|
||||
|
||||
ESLint ignore comments are also supported:
|
||||
// eslint-disable-next-line @typescrit-eslint/no-explicit-any no-empty
|
||||
|
||||
Ignore linting a file by adding an ignore comment at the top of the file:
|
||||
// deno-lint-ignore-file
|
||||
",
|
||||
|
|
19
cli/lint.rs
19
cli/lint.rs
|
@ -15,7 +15,6 @@ use crate::media_type::MediaType;
|
|||
use deno_core::error::{generic_error, AnyError, JsStackFrame};
|
||||
use deno_core::serde_json;
|
||||
use deno_lint::diagnostic::LintDiagnostic;
|
||||
use deno_lint::linter::FileType;
|
||||
use deno_lint::linter::Linter;
|
||||
use deno_lint::linter::LinterBuilder;
|
||||
use deno_lint::rules;
|
||||
|
@ -116,11 +115,8 @@ pub fn print_rules_list() {
|
|||
|
||||
fn create_linter(syntax: Syntax, rules: Vec<Box<dyn LintRule>>) -> Linter {
|
||||
LinterBuilder::default()
|
||||
.ignore_file_directives(vec!["deno-lint-ignore-file"])
|
||||
.ignore_diagnostic_directives(vec![
|
||||
"deno-lint-ignore",
|
||||
"eslint-disable-next-line",
|
||||
])
|
||||
.ignore_file_directive("deno-lint-ignore-file")
|
||||
.ignore_diagnostic_directive("deno-lint-ignore")
|
||||
.lint_unused_ignore_directives(true)
|
||||
// TODO(bartlomieju): switch to true
|
||||
.lint_unknown_rules(false)
|
||||
|
@ -140,8 +136,7 @@ fn lint_file(
|
|||
let lint_rules = rules::get_recommended_rules();
|
||||
let mut linter = create_linter(syntax, lint_rules);
|
||||
|
||||
let file_diagnostics =
|
||||
linter.lint(file_name, source_code.clone(), FileType::Module)?;
|
||||
let (_, file_diagnostics) = linter.lint(file_name, source_code.clone())?;
|
||||
|
||||
Ok((file_diagnostics, source_code))
|
||||
}
|
||||
|
@ -167,14 +162,10 @@ fn lint_stdin(json: bool) -> Result<(), AnyError> {
|
|||
let mut has_error = false;
|
||||
let pseudo_file_name = "_stdin.ts";
|
||||
match linter
|
||||
.lint(
|
||||
pseudo_file_name.to_string(),
|
||||
source.clone(),
|
||||
FileType::Module,
|
||||
)
|
||||
.lint(pseudo_file_name.to_string(), source.clone())
|
||||
.map_err(|e| e.into())
|
||||
{
|
||||
Ok(diagnostics) => {
|
||||
Ok((_, diagnostics)) => {
|
||||
for d in diagnostics {
|
||||
has_error = true;
|
||||
reporter.visit_diagnostic(&d, source.split('\n').collect());
|
||||
|
|
|
@ -145,8 +145,7 @@ impl swc_bundler::Load for BundleLoader<'_> {
|
|||
fn load(
|
||||
&self,
|
||||
file: &swc_common::FileName,
|
||||
) -> Result<(Rc<swc_common::SourceFile>, swc_ecmascript::ast::Module), AnyError>
|
||||
{
|
||||
) -> Result<swc_bundler::ModuleData, AnyError> {
|
||||
match file {
|
||||
swc_common::FileName::Custom(filename) => {
|
||||
let specifier = ModuleSpecifier::resolve_url_or_path(filename)
|
||||
|
@ -156,14 +155,19 @@ impl swc_bundler::Load for BundleLoader<'_> {
|
|||
.graph
|
||||
.get_media_type(&specifier)
|
||||
.context("Looking up media type during bundling.")?;
|
||||
transpile_module(
|
||||
let (source_file, module) = transpile_module(
|
||||
filename,
|
||||
&src,
|
||||
&media_type,
|
||||
self.emit_options,
|
||||
self.globals,
|
||||
self.cm.clone(),
|
||||
)
|
||||
)?;
|
||||
Ok(swc_bundler::ModuleData {
|
||||
fm: source_file,
|
||||
module,
|
||||
helpers: Default::default(),
|
||||
})
|
||||
} else {
|
||||
Err(
|
||||
GraphError::MissingDependency(specifier, "<bundle>".to_string())
|
||||
|
|
|
@ -1,2 +1,12 @@
|
|||
console.log(false, "file:///tests/subdir/f.ts");
|
||||
console.log(import.meta.main, "file:///tests/fixture06.ts");
|
||||
const importMeta = {
|
||||
url: "file:///tests/fixture06.ts",
|
||||
main: import.meta.main
|
||||
};
|
||||
const importMeta1 = {
|
||||
url: "file:///tests/subdir/f.ts",
|
||||
main: false
|
||||
};
|
||||
const isMain = importMeta1.main;
|
||||
const modUrl = importMeta1.url;
|
||||
console.log(isMain, modUrl);
|
||||
console.log(importMeta.main, importMeta.url);
|
||||
|
|
|
@ -145,17 +145,3 @@ function bar(a: any) {
|
|||
// ...
|
||||
}
|
||||
```
|
||||
|
||||
To provide some compatibility with ESLint `deno lint` also supports
|
||||
`// eslint-disable-next-line` directive. Just like with `// deno-lint-ignore`,
|
||||
it's required to specify the ignored rule name:
|
||||
|
||||
```ts
|
||||
// eslint-disable-next-line no-empty
|
||||
while (true) {}
|
||||
|
||||
// deno-lint-ignore no-explicit-any
|
||||
function bar(a: any) {
|
||||
// ...
|
||||
}
|
||||
```
|
||||
|
|
Loading…
Reference in a new issue