Loading pkgs/build-support/node/fetch-npm-deps/src/util.rs +13 −0 Original line number Diff line number Diff line Loading @@ -3,6 +3,7 @@ use isahc::{ config::{CaCertificate, Configurable, RedirectPolicy, SslOption}, Body, Request, RequestExt, }; use serde_json::{Map, Value}; use std::{env, path::Path}; use url::Url; Loading @@ -22,6 +23,18 @@ pub fn get_url(url: &Url) -> Result<Body, isahc::Error> { } } // Respect NIX_NPM_TOKENS environment variable, which should be a JSON mapping in the shape of: // `{ "registry.example.com": "example-registry-bearer-token", ... }` if let Some(host) = url.host_str() { if let Ok(npm_tokens) = env::var("NIX_NPM_TOKENS") { if let Ok(tokens) = serde_json::from_str::<Map<String, Value>>(&npm_tokens) { if let Some(token) = tokens.get(host).and_then(|val| val.as_str()) { request = request.header("Authorization", format!("Bearer {token}")); } } } } Ok(request.body(())?.send()?.into_body()) } Loading Loading
pkgs/build-support/node/fetch-npm-deps/src/util.rs +13 −0 Original line number Diff line number Diff line Loading @@ -3,6 +3,7 @@ use isahc::{ config::{CaCertificate, Configurable, RedirectPolicy, SslOption}, Body, Request, RequestExt, }; use serde_json::{Map, Value}; use std::{env, path::Path}; use url::Url; Loading @@ -22,6 +23,18 @@ pub fn get_url(url: &Url) -> Result<Body, isahc::Error> { } } // Respect NIX_NPM_TOKENS environment variable, which should be a JSON mapping in the shape of: // `{ "registry.example.com": "example-registry-bearer-token", ... }` if let Some(host) = url.host_str() { if let Ok(npm_tokens) = env::var("NIX_NPM_TOKENS") { if let Ok(tokens) = serde_json::from_str::<Map<String, Value>>(&npm_tokens) { if let Some(token) = tokens.get(host).and_then(|val| val.as_str()) { request = request.header("Authorization", format!("Bearer {token}")); } } } } Ok(request.body(())?.send()?.into_body()) } Loading