From b9b03869489213fa9b24d7416afe9e3e27c81ce7 Mon Sep 17 00:00:00 2001 From: David Sherret Date: Sun, 6 Aug 2023 21:56:56 -0400 Subject: [PATCH] feat(unstable): rename `deno_modules` to `vendor` (#20065) Renames the unstable `deno_modules` directory and corresponding settings to `vendor` after feedback. Also causes the vendoring of the `node_modules` directory which can be disabled via `--node-modules-dir=false` or `"nodeModulesDir": false`. --- cli/args/config_file.rs | 18 +++++----- cli/args/flags.rs | 42 ++++++++++------------- cli/args/mod.rs | 35 +++++++++---------- cli/cache/http_cache/local.rs | 2 +- cli/factory.rs | 2 +- cli/lsp/config.rs | 14 +++++--- cli/lsp/documents.rs | 6 ++-- cli/lsp/language_server.rs | 2 +- cli/schemas/config-file.v1.json | 6 ++-- cli/tests/integration/lsp_tests.rs | 14 ++++---- cli/tests/integration/npm_tests.rs | 16 ++++++++- cli/tests/integration/run_tests.rs | 55 +++++++++++++++--------------- cli/tools/coverage/mod.rs | 2 +- cli/tools/fmt.rs | 2 +- cli/tools/lint.rs | 2 +- cli/util/fs.rs | 24 ++++++------- 16 files changed, 127 insertions(+), 115 deletions(-) diff --git a/cli/args/config_file.rs b/cli/args/config_file.rs index bbbc60e4d4..6b3f96cd3d 100644 --- a/cli/args/config_file.rs +++ b/cli/args/config_file.rs @@ -673,7 +673,7 @@ pub struct ConfigFileJson { pub lock: Option, pub exclude: Option, pub node_modules_dir: Option, - pub deno_modules_dir: Option, + pub vendor: Option, } #[derive(Clone, Debug)] @@ -855,16 +855,16 @@ impl ConfigFile { self.json.import_map.clone() } - pub fn node_modules_dir(&self) -> Option { + pub fn node_modules_dir_flag(&self) -> Option { self.json.node_modules_dir } - pub fn deno_modules_dir(&self) -> Option { - self.json.deno_modules_dir + pub fn vendor_dir_flag(&self) -> Option { + self.json.vendor } - pub fn deno_modules_dir_path(&self) -> Option { - if self.json.deno_modules_dir == Some(true) { + pub fn vendor_dir_path(&self) -> Option { + if self.json.vendor == Some(true) { Some( self .specifier @@ -872,7 +872,7 @@ impl ConfigFile { .unwrap() .parent() .unwrap() - .join("deno_modules"), + .join("vendor"), ) } else { None @@ -903,8 +903,8 @@ impl ConfigFile { Vec::new() }; - if self.deno_modules_dir() == Some(true) { - exclude.push("deno_modules".to_string()); + if self.vendor_dir_flag() == Some(true) { + exclude.push("vendor".to_string()); } let raw_files_config = SerializedFilesConfig { diff --git a/cli/args/flags.rs b/cli/args/flags.rs index 790a9d83fc..fdfb65f629 100644 --- a/cli/args/flags.rs +++ b/cli/args/flags.rs @@ -389,7 +389,7 @@ pub struct Flags { pub type_check_mode: TypeCheckMode, pub config_flag: ConfigFlag, pub node_modules_dir: Option, - pub deno_modules_dir: Option, + pub vendor: Option, pub enable_testing_features: bool, pub ext: Option, pub ignore: Vec, @@ -1560,7 +1560,7 @@ TypeScript compiler cache: Subdirectory containing TS compiler output.", .arg(config_arg()) .arg(import_map_arg()) .arg(node_modules_dir_arg()) - .arg(deno_modules_dir_arg()) + .arg(vendor_arg()) .arg( Arg::new("json") .long("json") @@ -2107,7 +2107,7 @@ Remote modules and multiple modules may also be specified: .arg(import_map_arg()) .arg(lock_arg()) .arg(node_modules_dir_arg()) - .arg(deno_modules_dir_arg()) + .arg(vendor_arg()) .arg(reload_arg()) .arg(ca_file_arg())) } @@ -2122,7 +2122,7 @@ fn compile_args_without_check_args(app: Command) -> Command { .arg(no_remote_arg()) .arg(no_npm_arg()) .arg(node_modules_dir_arg()) - .arg(deno_modules_dir_arg()) + .arg(vendor_arg()) .arg(config_arg()) .arg(no_config_arg()) .arg(reload_arg()) @@ -2846,14 +2846,14 @@ fn node_modules_dir_arg() -> Arg { .help("Enables or disables the use of a local node_modules folder for npm packages") } -fn deno_modules_dir_arg() -> Arg { - Arg::new("deno-modules-dir") - .long("deno-modules-dir") +fn vendor_arg() -> Arg { + Arg::new("vendor") + .long("vendor") .num_args(0..=1) .value_parser(value_parser!(bool)) .default_missing_value("true") .require_equals(true) - .help("UNSTABLE: Enables or disables the use of a local deno_modules folder for remote modules") + .help("UNSTABLE: Enables or disables the use of a local vendor folder for remote modules and node_modules folder for npm packages") } fn unsafely_ignore_certificate_errors_arg() -> Arg { @@ -3143,7 +3143,7 @@ fn info_parse(flags: &mut Flags, matches: &mut ArgMatches) { import_map_arg_parse(flags, matches); location_arg_parse(flags, matches); ca_file_arg_parse(flags, matches); - node_and_deno_modules_dir_arg_parse(flags, matches); + node_modules_and_vendor_dir_arg_parse(flags, matches); lock_arg_parse(flags, matches); no_lock_arg_parse(flags, matches); no_remote_arg_parse(flags, matches); @@ -3420,7 +3420,7 @@ fn vendor_parse(flags: &mut Flags, matches: &mut ArgMatches) { config_args_parse(flags, matches); import_map_arg_parse(flags, matches); lock_arg_parse(flags, matches); - node_and_deno_modules_dir_arg_parse(flags, matches); + node_modules_and_vendor_dir_arg_parse(flags, matches); reload_arg_parse(flags, matches); flags.subcommand = DenoSubcommand::Vendor(VendorFlags { @@ -3446,7 +3446,7 @@ fn compile_args_without_check_parse( import_map_arg_parse(flags, matches); no_remote_arg_parse(flags, matches); no_npm_arg_parse(flags, matches); - node_and_deno_modules_dir_arg_parse(flags, matches); + node_modules_and_vendor_dir_arg_parse(flags, matches); config_args_parse(flags, matches); reload_arg_parse(flags, matches); lock_args_parse(flags, matches); @@ -3739,12 +3739,12 @@ fn no_npm_arg_parse(flags: &mut Flags, matches: &mut ArgMatches) { } } -fn node_and_deno_modules_dir_arg_parse( +fn node_modules_and_vendor_dir_arg_parse( flags: &mut Flags, matches: &mut ArgMatches, ) { flags.node_modules_dir = matches.remove_one::("node-modules-dir"); - flags.deno_modules_dir = matches.remove_one::("deno-modules-dir"); + flags.vendor = matches.remove_one::("vendor"); } fn reload_arg_validate(urlstr: &str) -> Result { @@ -6315,9 +6315,8 @@ mod tests { } #[test] - fn deno_modules_dir() { - let r = - flags_from_vec(svec!["deno", "run", "--deno-modules-dir", "script.ts"]); + fn vendor_flag() { + let r = flags_from_vec(svec!["deno", "run", "--vendor", "script.ts"]); assert_eq!( r.unwrap(), Flags { @@ -6325,17 +6324,12 @@ mod tests { script: "script.ts".to_string(), watch: Default::default(), }), - deno_modules_dir: Some(true), + vendor: Some(true), ..Flags::default() } ); - let r = flags_from_vec(svec![ - "deno", - "run", - "--deno-modules-dir=false", - "script.ts" - ]); + let r = flags_from_vec(svec!["deno", "run", "--vendor=false", "script.ts"]); assert_eq!( r.unwrap(), Flags { @@ -6343,7 +6337,7 @@ mod tests { script: "script.ts".to_string(), watch: Default::default(), }), - deno_modules_dir: Some(false), + vendor: Some(false), ..Flags::default() } ); diff --git a/cli/args/mod.rs b/cli/args/mod.rs index 7b3b0aa832..31a09216f3 100644 --- a/cli/args/mod.rs +++ b/cli/args/mod.rs @@ -541,7 +541,7 @@ pub struct CliOptions { flags: Flags, initial_cwd: PathBuf, maybe_node_modules_folder: Option, - maybe_deno_modules_folder: Option, + maybe_vendor_folder: Option, maybe_config_file: Option, maybe_package_json: Option, maybe_lockfile: Option>>, @@ -577,11 +577,8 @@ impl CliOptions { maybe_package_json.as_ref(), ) .with_context(|| "Resolving node_modules folder.")?; - let maybe_deno_modules_folder = resolve_deno_modules_folder( - &initial_cwd, - &flags, - maybe_config_file.as_ref(), - ); + let maybe_vendor_folder = + resolve_vendor_folder(&initial_cwd, &flags, maybe_config_file.as_ref()); Ok(Self { flags, @@ -590,7 +587,7 @@ impl CliOptions { maybe_lockfile, maybe_package_json, maybe_node_modules_folder, - maybe_deno_modules_folder, + maybe_vendor_folder, overrides: Default::default(), }) } @@ -863,7 +860,7 @@ impl CliOptions { self .maybe_config_file .as_ref() - .and_then(|c| c.node_modules_dir()) + .and_then(|c| c.node_modules_dir_flag()) }) } @@ -874,8 +871,8 @@ impl CliOptions { .map(|path| ModuleSpecifier::from_directory_path(path).unwrap()) } - pub fn deno_modules_dir_path(&self) -> Option<&PathBuf> { - self.maybe_deno_modules_folder.as_ref() + pub fn vendor_dir_path(&self) -> Option<&PathBuf> { + self.maybe_vendor_folder.as_ref() } pub fn resolve_root_cert_store_provider( @@ -1188,7 +1185,9 @@ fn resolve_node_modules_folder( ) -> Result, AnyError> { let use_node_modules_dir = flags .node_modules_dir - .or_else(|| maybe_config_file.and_then(|c| c.node_modules_dir())); + .or_else(|| maybe_config_file.and_then(|c| c.node_modules_dir_flag())) + .or(flags.vendor) + .or_else(|| maybe_config_file.and_then(|c| c.vendor_dir_flag())); let path = if use_node_modules_dir == Some(false) { return Ok(None); } else if let Some(state) = &*NPM_PROCESS_STATE { @@ -1209,28 +1208,28 @@ fn resolve_node_modules_folder( Ok(Some(canonicalize_path_maybe_not_exists(&path)?)) } -fn resolve_deno_modules_folder( +fn resolve_vendor_folder( cwd: &Path, flags: &Flags, maybe_config_file: Option<&ConfigFile>, ) -> Option { - let use_deno_modules_dir = flags - .deno_modules_dir - .or_else(|| maybe_config_file.and_then(|c| c.deno_modules_dir())) + let use_vendor_dir = flags + .vendor + .or_else(|| maybe_config_file.and_then(|c| c.vendor_dir_flag())) .unwrap_or(false); // Unlike the node_modules directory, there is no need to canonicalize // this directory because it's just used as a cache and the resolved // specifier is not based on the canonicalized path (unlike the modules // in the node_modules folder). - if !use_deno_modules_dir { + if !use_vendor_dir { None } else if let Some(config_path) = maybe_config_file .as_ref() .and_then(|c| c.specifier.to_file_path().ok()) { - Some(config_path.parent().unwrap().join("deno_modules")) + Some(config_path.parent().unwrap().join("vendor")) } else { - Some(cwd.join("deno_modules")) + Some(cwd.join("vendor")) } } diff --git a/cli/cache/http_cache/local.rs b/cli/cache/http_cache/local.rs index e7077800c8..04883b3ba8 100644 --- a/cli/cache/http_cache/local.rs +++ b/cli/cache/http_cache/local.rs @@ -28,7 +28,7 @@ use super::CachedUrlMetadata; use super::HttpCache; use super::HttpCacheItemKey; -/// A deno_modules http cache for the lsp that provides functionality +/// A vendor/ folder http cache for the lsp that provides functionality /// for doing a reverse mapping. #[derive(Debug)] pub struct LocalLspHttpCache { diff --git a/cli/factory.rs b/cli/factory.rs index f786115532..e9a50aadaf 100644 --- a/cli/factory.rs +++ b/cli/factory.rs @@ -248,7 +248,7 @@ impl CliFactory { pub fn http_cache(&self) -> Result<&Arc, AnyError> { self.services.http_cache.get_or_try_init(|| { let global_cache = self.global_http_cache()?.clone(); - match self.options.deno_modules_dir_path() { + match self.options.vendor_dir_path() { Some(local_path) => { let local_cache = LocalHttpCache::new(local_path.clone(), global_cache); diff --git a/cli/lsp/config.rs b/cli/lsp/config.rs index b84f63edc1..13bfdd75de 100644 --- a/cli/lsp/config.rs +++ b/cli/lsp/config.rs @@ -475,10 +475,8 @@ impl Config { .and_then(|p| p.maybe_node_modules_dir.as_ref()) } - pub fn maybe_deno_modules_dir_path(&self) -> Option { - self - .maybe_config_file() - .and_then(|c| c.deno_modules_dir_path()) + pub fn maybe_vendor_dir_path(&self) -> Option { + self.maybe_config_file().and_then(|c| c.vendor_dir_path()) } pub fn maybe_config_file(&self) -> Option<&ConfigFile> { @@ -816,7 +814,13 @@ fn resolve_node_modules_dir(config_file: &ConfigFile) -> Option { // `nodeModulesDir: true` setting in the deno.json file. This is to // reduce the chance of modifying someone's node_modules directory // without them having asked us to do so. - if config_file.node_modules_dir() != Some(true) { + let explicitly_disabled = config_file.node_modules_dir_flag() == Some(false); + if explicitly_disabled { + return None; + } + let enabled = config_file.node_modules_dir_flag() == Some(true) + || config_file.vendor_dir_flag() == Some(true); + if !enabled { return None; } if config_file.specifier.scheme() != "file" { diff --git a/cli/lsp/documents.rs b/cli/lsp/documents.rs index dbaecb95c0..7fdce99234 100644 --- a/cli/lsp/documents.rs +++ b/cli/lsp/documents.rs @@ -1184,7 +1184,7 @@ impl Documents { document_preload_limit: usize, maybe_import_map: Option<&import_map::ImportMap>, maybe_jsx_config: Option<&JsxImportSourceConfig>, - maybe_deno_modules_dir: Option, + maybe_vendor_dir: Option, maybe_package_json_deps: Option<&PackageJsonDeps>, ) -> u64 { let mut hasher = FastInsecureHasher::default(); @@ -1199,7 +1199,7 @@ impl Documents { hasher.write_str(&import_map.to_json()); hasher.write_str(import_map.base_url().as_str()); } - hasher.write_hashable(maybe_deno_modules_dir); + hasher.write_hashable(maybe_vendor_dir); hasher.write_hashable(maybe_jsx_config); if let Some(package_json_deps) = &maybe_package_json_deps { // We need to ensure the hashing is deterministic so explicitly type @@ -1234,7 +1234,7 @@ impl Documents { options.document_preload_limit, options.maybe_import_map.as_deref(), maybe_jsx_config.as_ref(), - options.maybe_config_file.and_then(|c| c.deno_modules_dir()), + options.maybe_config_file.and_then(|c| c.vendor_dir_flag()), maybe_package_json_deps.as_ref(), ); let deps_provider = diff --git a/cli/lsp/language_server.rs b/cli/lsp/language_server.rs index 06fefcaeb1..7a13e23967 100644 --- a/cli/lsp/language_server.rs +++ b/cli/lsp/language_server.rs @@ -906,7 +906,7 @@ impl Inner { // update the cache path let global_cache = Arc::new(GlobalHttpCache::new(dir.deps_folder_path())); let maybe_local_cache = - self.config.maybe_deno_modules_dir_path().map(|local_path| { + self.config.maybe_vendor_dir_path().map(|local_path| { Arc::new(LocalLspHttpCache::new(local_path, global_cache.clone())) }); let cache: Arc = maybe_local_cache diff --git a/cli/schemas/config-file.v1.json b/cli/schemas/config-file.v1.json index 97633d113a..4b60482e3c 100644 --- a/cli/schemas/config-file.v1.json +++ b/cli/schemas/config-file.v1.json @@ -429,11 +429,11 @@ } }, "nodeModulesDir": { - "description": "Enables or disables the use of a local node_modules folder for npm packages. Alternatively, use the `--node-modules-dir` or `--node-modules-dir=false` flag. Requires Deno 1.34 or later.", + "description": "Enables or disables the use of a local node_modules folder for npm packages. Alternatively, use the `--node-modules-dir` flag or override the config via `--node-modules-dir=false`. Requires Deno 1.34 or later.", "type": "boolean" }, - "denoModulesDir": { - "description": "UNSTABLE: Enables or disables the use of a local deno_modules folder as a local cache for remote modules. Alternatively, use the `--deno-modules-dir` or `--deno-modules-dir=false` flag. Requires Deno 1.36 or later.", + "vendor": { + "description": "UNSTABLE: Enables or disables the use of a local vendor folder as a local cache for remote modules and node_modules folder for npm packages. Alternatively, use the `--vendor` flag or override the config via `--vendor=false`. Requires Deno 1.36.1 or later.", "type": "boolean" }, "tasks": { diff --git a/cli/tests/integration/lsp_tests.rs b/cli/tests/integration/lsp_tests.rs index 28591d6312..d540c5f379 100644 --- a/cli/tests/integration/lsp_tests.rs +++ b/cli/tests/integration/lsp_tests.rs @@ -8768,7 +8768,7 @@ fn lsp_node_modules_dir() { } #[test] -fn lsp_deno_modules_dir() { +fn lsp_vendor_dir() { let context = TestContextBuilder::new() .use_http_server() .use_temp_cwd() @@ -8804,11 +8804,11 @@ fn lsp_deno_modules_dir() { cache(&mut client); - assert!(!temp_dir.path().join("deno_modules").exists()); + assert!(!temp_dir.path().join("vendor").exists()); temp_dir.write( temp_dir.path().join("deno.json"), - "{ \"denoModulesDir\": true, \"lock\": false }\n", + "{ \"vendor\": true, \"lock\": false }\n", ); let refresh_config = |client: &mut LspClient| { client.write_notification( @@ -8852,10 +8852,10 @@ fn lsp_deno_modules_dir() { // no caching necessary because it was already cached. It should exist now assert!(temp_dir .path() - .join("deno_modules/http_localhost_4545/subdir/mod1.ts") + .join("vendor/http_localhost_4545/subdir/mod1.ts") .exists()); - // the declaration should be found in the deno_modules directory + // the declaration should be found in the vendor directory let res = client.write_request( "textDocument/references", json!({ @@ -8869,7 +8869,7 @@ fn lsp_deno_modules_dir() { }), ); - // ensure that it's using the deno_modules directory + // ensure that it's using the vendor directory let references = res.as_array().unwrap(); assert_eq!(references.len(), 2, "references: {:#?}", references); let uri = references[1] @@ -8881,7 +8881,7 @@ fn lsp_deno_modules_dir() { .unwrap(); let file_path = temp_dir .path() - .join("deno_modules/http_localhost_4545/subdir/mod1.ts"); + .join("vendor/http_localhost_4545/subdir/mod1.ts"); let remote_file_uri = file_path.uri_file(); assert_eq!(uri, remote_file_uri.as_str()); diff --git a/cli/tests/integration/npm_tests.rs b/cli/tests/integration/npm_tests.rs index 34b6add266..c44335efc7 100644 --- a/cli/tests/integration/npm_tests.rs +++ b/cli/tests/integration/npm_tests.rs @@ -2023,8 +2023,14 @@ pub fn node_modules_dir_config_file() { let deno_cache_cmd = test_context.new_command().args("cache --quiet main.ts"); deno_cache_cmd.run(); - assert!(node_modules_dir.exists()); + + // now try adding a vendor flag, it should exist + rm_node_modules(); + temp_dir.write("deno.json", r#"{ "vendor": true }"#); + deno_cache_cmd.run(); + assert!(node_modules_dir.exists()); + rm_node_modules(); temp_dir.write("deno.json", r#"{ "nodeModulesDir": false }"#); @@ -2040,6 +2046,14 @@ pub fn node_modules_dir_config_file() { .args("cache --quiet --node-modules-dir main.ts") .run(); assert!(node_modules_dir.exists()); + + // should override the `--vendor` flag + rm_node_modules(); + test_context + .new_command() + .args("cache --quiet --node-modules-dir=false --vendor main.ts") + .run(); + assert!(!node_modules_dir.exists()); } #[test] diff --git a/cli/tests/integration/run_tests.rs b/cli/tests/integration/run_tests.rs index 25046253e0..ce837a2a4d 100644 --- a/cli/tests/integration/run_tests.rs +++ b/cli/tests/integration/run_tests.rs @@ -102,8 +102,9 @@ itest!(_017_import_redirect_check { output: "run/017_import_redirect.ts.out", }); -itest!(_017_import_redirect_deno_modules_dir { - args: "run --quiet --reload --deno-modules-dir --check $TESTDATA/run/017_import_redirect.ts", +itest!(_017_import_redirect_vendor_dir { + args: + "run --quiet --reload --vendor --check $TESTDATA/run/017_import_redirect.ts", output: "run/017_import_redirect.ts.out", temp_cwd: true, }); @@ -163,9 +164,9 @@ itest!(_027_redirect_typescript { http_server: true, }); -itest!(_027_redirect_typescript_deno_modules_dir { +itest!(_027_redirect_typescript_vendor_dir { args: - "run --quiet --reload --deno-modules-dir $TESTDATA/run/027_redirect_typescript.ts", + "run --quiet --reload --vendor $TESTDATA/run/027_redirect_typescript.ts", output: "run/027_redirect_typescript.ts.out", http_server: true, temp_cwd: true, @@ -201,9 +202,9 @@ itest!(_033_import_map_remote { http_server: true, }); -itest!(_033_import_map_deno_modules_dir_remote { +itest!(_033_import_map_vendor_dir_remote { args: - "run --quiet --reload --import-map=http://127.0.0.1:4545/import_maps/import_map_remote.json --deno-modules-dir --unstable $TESTDATA/import_maps/test_remote.ts", + "run --quiet --reload --import-map=http://127.0.0.1:4545/import_maps/import_map_remote.json --vendor --unstable $TESTDATA/import_maps/test_remote.ts", output: "run/033_import_map_remote.out", http_server: true, temp_cwd: true, @@ -1706,8 +1707,8 @@ itest!(jsx_import_source_pragma_with_config_no_check { http_server: true, }); -itest!(jsx_import_source_pragma_with_config_deno_modules_dir { - args: "run --reload --config jsx/deno-jsx.jsonc --no-lock --deno-modules-dir $TESTDATA/run/jsx_import_source_pragma.tsx", +itest!(jsx_import_source_pragma_with_config_vendor_dir { + args: "run --reload --config jsx/deno-jsx.jsonc --no-lock --vendor $TESTDATA/run/jsx_import_source_pragma.tsx", output: "run/jsx_import_source.out", http_server: true, temp_cwd: true, @@ -1767,9 +1768,9 @@ itest!(reference_types_error { exit_code: 1, }); -itest!(reference_types_error_deno_modules_dir { +itest!(reference_types_error_vendor_dir { args: - "run --config run/checkjs.tsconfig.json --check --deno-modules-dir $TESTDATA/run/reference_types_error.js", + "run --config run/checkjs.tsconfig.json --check --vendor $TESTDATA/run/reference_types_error.js", output: "run/reference_types_error.js.out", exit_code: 1, }); @@ -4494,16 +4495,16 @@ itest!(extension_dynamic_import { }); #[test] -pub fn deno_modules_dir_config_file() { +pub fn vendor_dir_config_file() { let test_context = TestContextBuilder::new() .use_http_server() .use_temp_cwd() .build(); let temp_dir = test_context.temp_dir(); - let deno_modules_dir = temp_dir.path().join("deno_modules"); - let rm_deno_modules = || std::fs::remove_dir_all(&deno_modules_dir).unwrap(); + let vendor_dir = temp_dir.path().join("vendor"); + let rm_vendor_dir = || std::fs::remove_dir_all(&vendor_dir).unwrap(); - temp_dir.write("deno.json", r#"{ "denoModulesDir": true }"#); + temp_dir.write("deno.json", r#"{ "vendor": true }"#); temp_dir.write( "main.ts", r#"import { returnsHi } from 'http://localhost:4545/subdir/mod1.ts'; @@ -4513,25 +4514,25 @@ console.log(returnsHi());"#, let deno_run_cmd = test_context.new_command().args("run --quiet main.ts"); deno_run_cmd.run().assert_matches_text("Hi\n"); - assert!(deno_modules_dir.exists()); - rm_deno_modules(); - temp_dir.write("deno.json", r#"{ "denoModulesDir": false }"#); + assert!(vendor_dir.exists()); + rm_vendor_dir(); + temp_dir.write("deno.json", r#"{ "vendor": false }"#); deno_run_cmd.run().assert_matches_text("Hi\n"); - assert!(!deno_modules_dir.exists()); + assert!(!vendor_dir.exists()); test_context .new_command() - .args("cache --quiet --deno-modules-dir main.ts") + .args("cache --quiet --vendor main.ts") .run(); - assert!(deno_modules_dir.exists()); - rm_deno_modules(); + assert!(vendor_dir.exists()); + rm_vendor_dir(); - temp_dir.write("deno.json", r#"{ "denoModulesDir": true }"#); + temp_dir.write("deno.json", r#"{ "vendor": true }"#); let cache_command = test_context.new_command().args("cache --quiet main.ts"); cache_command.run(); - assert!(deno_modules_dir.exists()); - let mod1_file = deno_modules_dir + assert!(vendor_dir.exists()); + let mod1_file = vendor_dir .join("http_localhost_4545") .join("subdir") .join("mod1.ts"); @@ -4563,20 +4564,20 @@ console.log(returnsHi());"#, .run() .skip_output_check(); assert_eq!( - deno_modules_dir.join("manifest.json").read_json_value(), + vendor_dir.join("manifest.json").read_json_value(), json!({ "folders": { "http://localhost:4545/subdir/CAPITALS/": "http_localhost_4545/subdir/#capitals_c75d7" } }) ); - deno_modules_dir + vendor_dir .join("http_localhost_4545/subdir/#capitals_c75d7/hello_there.ts") .write("console.log('hello there');"); test_context .new_command() // todo(dsherret): seems wrong that we don't auto-discover the config file to get the vendor directory for this - .args("run --deno-modules-dir http://localhost:4545/subdir/CAPITALS/hello_there.ts") + .args("run --vendor http://localhost:4545/subdir/CAPITALS/hello_there.ts") .run() .assert_matches_text("hello there\n"); } diff --git a/cli/tools/coverage/mod.rs b/cli/tools/coverage/mod.rs index 4e49053d29..c77f869b2b 100644 --- a/cli/tools/coverage/mod.rs +++ b/cli/tools/coverage/mod.rs @@ -571,7 +571,7 @@ fn collect_coverages( }) .ignore_git_folder() .ignore_node_modules() - .ignore_deno_modules() + .ignore_vendor_folder() .add_ignore_paths(&files.ignore) .collect_files(&files.include)?; diff --git a/cli/tools/fmt.rs b/cli/tools/fmt.rs index e7fdf24f77..fc1df3281a 100644 --- a/cli/tools/fmt.rs +++ b/cli/tools/fmt.rs @@ -151,7 +151,7 @@ fn collect_fmt_files(files: &FilesConfig) -> Result, AnyError> { FileCollector::new(is_supported_ext_fmt) .ignore_git_folder() .ignore_node_modules() - .ignore_deno_modules() + .ignore_vendor_folder() .add_ignore_paths(&files.exclude) .collect_files(&files.include) } diff --git a/cli/tools/lint.rs b/cli/tools/lint.rs index a1aca28036..e1830fb92c 100644 --- a/cli/tools/lint.rs +++ b/cli/tools/lint.rs @@ -198,7 +198,7 @@ fn collect_lint_files(files: &FilesConfig) -> Result, AnyError> { FileCollector::new(is_supported_ext) .ignore_git_folder() .ignore_node_modules() - .ignore_deno_modules() + .ignore_vendor_folder() .add_ignore_paths(&files.exclude) .collect_files(&files.include) } diff --git a/cli/util/fs.rs b/cli/util/fs.rs index 6c1f304d6d..ff5ed85535 100644 --- a/cli/util/fs.rs +++ b/cli/util/fs.rs @@ -200,7 +200,7 @@ pub struct FileCollector bool> { file_filter: TFilter, ignore_git_folder: bool, ignore_node_modules: bool, - ignore_deno_modules: bool, + ignore_vendor_folder: bool, } impl bool> FileCollector { @@ -210,7 +210,7 @@ impl bool> FileCollector { file_filter, ignore_git_folder: false, ignore_node_modules: false, - ignore_deno_modules: false, + ignore_vendor_folder: false, } } @@ -227,8 +227,8 @@ impl bool> FileCollector { self } - pub fn ignore_deno_modules(mut self) -> Self { - self.ignore_deno_modules = true; + pub fn ignore_vendor_folder(mut self) -> Self { + self.ignore_vendor_folder = true; self } @@ -272,7 +272,7 @@ impl bool> FileCollector { let dir_name = dir_name.to_string_lossy().to_lowercase(); let is_ignored_file = match dir_name.as_str() { "node_modules" => self.ignore_node_modules, - "deno_modules" => self.ignore_deno_modules, + "vendor" => self.ignore_vendor_folder, ".git" => self.ignore_git_folder, _ => false, }; @@ -309,7 +309,7 @@ pub fn collect_specifiers( .add_ignore_paths(&files.exclude) .ignore_git_folder() .ignore_node_modules() - .ignore_deno_modules(); + .ignore_vendor_folder(); let root_path = current_dir()?; let include_files = if files.include.is_empty() { @@ -728,12 +728,12 @@ mod tests { // ├── a.ts // ├── b.js // ├── child - // | ├── deno_modules - // | | └── deno_modules.js // | ├── git // | | └── git.js // | ├── node_modules // | | └── node_modules.js + // | ├── vendor + // | | └── vendor.js // │ ├── e.mjs // │ ├── f.mjsx // │ ├── .foo.TS @@ -758,8 +758,8 @@ mod tests { t.write("dir.ts/child/node_modules/node_modules.js", ""); t.create_dir_all("dir.ts/child/.git"); t.write("dir.ts/child/.git/git.js", ""); - t.create_dir_all("dir.ts/child/deno_modules"); - t.write("dir.ts/child/deno_modules/deno_modules.js", ""); + t.create_dir_all("dir.ts/child/vendor"); + t.write("dir.ts/child/vendor/vendor.js", ""); let ignore_dir_path = root_dir_path.join("ignore"); let ignore_dir_files = ["g.d.ts", ".gitignore"]; @@ -784,11 +784,11 @@ mod tests { "b.js", "c.tsx", "d.jsx", - "deno_modules.js", "e.mjs", "f.mjsx", "git.js", "node_modules.js", + "vendor.js", ]; let mut file_names = result .into_iter() @@ -801,7 +801,7 @@ mod tests { let file_collector = file_collector .ignore_git_folder() .ignore_node_modules() - .ignore_deno_modules(); + .ignore_vendor_folder(); let result = file_collector .collect_files(&[root_dir_path.to_path_buf()]) .unwrap();