mirror of
https://github.com/denoland/deno.git
synced 2025-08-03 18:38:33 +00:00
refactor(cli): Integrate standalone mode cert handling into Flags
(#17419)
The way the standalone mode handles the `--cert` flag is different to all other modes. This is because `--cert` takes a path to the certificate file, which is directly added to the root cert store; except for compile mode, where its byte contents are stored in the standalone metadata, and they are added to the root cert store after the `ProcState` is created. This change instead changes `Flags::ca_file` (an `Option<String>`) into `Flags::ca_data`, which can represent a `String` file path or a `Vec<u8>` with the certificate contents. That way, standalone mode can create a `ProcState` whose root cert store alreay contains the certificate. This change also adds a tests for certificates in standalone mode, since there weren't any before. This refactor will help with implementing web workers in standalone mode in the future.
This commit is contained in:
parent
1a792f8805
commit
69ec45eac7
7 changed files with 93 additions and 49 deletions
|
@ -1,6 +1,7 @@
|
|||
// Copyright 2018-2023 the Deno authors. All rights reserved. MIT license.
|
||||
|
||||
use crate::args::resolve_no_prompt;
|
||||
use crate::args::CaData;
|
||||
use crate::args::ConfigFlag;
|
||||
use crate::args::Flags;
|
||||
use crate::args::InstallFlags;
|
||||
|
@ -325,7 +326,7 @@ fn resolve_shim_data(
|
|||
executable_args.push("--location".to_string());
|
||||
executable_args.push(url.to_string());
|
||||
}
|
||||
if let Some(ca_file) = &flags.ca_file {
|
||||
if let Some(CaData::File(ca_file)) = &flags.ca_data {
|
||||
executable_args.push("--cert".to_string());
|
||||
executable_args.push(ca_file.to_owned())
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue