summaryrefslogtreecommitdiff
path: root/cli/npm/common.rs
diff options
context:
space:
mode:
Diffstat (limited to 'cli/npm/common.rs')
-rw-r--r--cli/npm/common.rs24
1 files changed, 24 insertions, 0 deletions
diff --git a/cli/npm/common.rs b/cli/npm/common.rs
index e40924838..bf45aa5b8 100644
--- a/cli/npm/common.rs
+++ b/cli/npm/common.rs
@@ -1,5 +1,8 @@
// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license.
+use deno_npm::npm_rc::RegistryConfig;
+use reqwest::header;
+
/// Gets the corresponding @types package for the provided package name.
pub fn types_package_name(package_name: &str) -> String {
debug_assert!(!package_name.starts_with("@types/"));
@@ -8,6 +11,27 @@ pub fn types_package_name(package_name: &str) -> String {
format!("@types/{}", package_name.replace('/', "__"))
}
+// TODO(bartlomieju): support more auth methods besides token and basic auth
+pub fn maybe_auth_header_for_npm_registry(
+ registry_config: &RegistryConfig,
+) -> Option<(header::HeaderName, header::HeaderValue)> {
+ if let Some(token) = registry_config.auth_token.as_ref() {
+ return Some((
+ header::AUTHORIZATION,
+ header::HeaderValue::from_str(&format!("Bearer {}", token)).unwrap(),
+ ));
+ }
+
+ if let Some(auth) = registry_config.auth.as_ref() {
+ return Some((
+ header::AUTHORIZATION,
+ header::HeaderValue::from_str(&format!("Basic {}", auth)).unwrap(),
+ ));
+ }
+
+ None
+}
+
#[cfg(test)]
mod test {
use super::types_package_name;