2025-01-01 04:12:39 +09:00
|
|
|
// Copyright 2018-2025 the Deno authors. MIT license.
|
2023-10-25 14:39:00 -04:00
|
|
|
|
|
|
|
use std::sync::Arc;
|
|
|
|
|
|
|
|
use deno_core::serde_json;
|
2024-09-30 09:33:32 -04:00
|
|
|
use deno_resolver::npm::ByonmNpmResolver;
|
|
|
|
use deno_resolver::npm::ByonmNpmResolverCreateOptions;
|
2024-09-27 12:35:37 -07:00
|
|
|
use deno_runtime::ops::process::NpmProcessStateProvider;
|
2023-10-25 14:39:00 -04:00
|
|
|
|
2024-12-31 12:13:39 -05:00
|
|
|
use crate::args::NpmProcessState;
|
|
|
|
use crate::args::NpmProcessStateKind;
|
|
|
|
use crate::sys::CliSys;
|
2023-10-25 14:39:00 -04:00
|
|
|
|
2024-09-30 09:33:32 -04:00
|
|
|
pub type CliByonmNpmResolverCreateOptions =
|
2024-12-31 11:29:07 -05:00
|
|
|
ByonmNpmResolverCreateOptions<CliSys>;
|
|
|
|
pub type CliByonmNpmResolver = ByonmNpmResolver<CliSys>;
|
2023-10-25 14:39:00 -04:00
|
|
|
|
|
|
|
#[derive(Debug)]
|
2025-01-14 10:01:05 -05:00
|
|
|
pub struct CliByonmNpmProcessStateProvider(pub Arc<CliByonmNpmResolver>);
|
2024-07-09 12:15:03 -04:00
|
|
|
|
2025-01-14 10:01:05 -05:00
|
|
|
impl NpmProcessStateProvider for CliByonmNpmProcessStateProvider {
|
2024-07-25 19:08:14 -04:00
|
|
|
fn get_npm_process_state(&self) -> String {
|
|
|
|
serde_json::to_string(&NpmProcessState {
|
|
|
|
kind: NpmProcessStateKind::Byonm,
|
|
|
|
local_node_modules_path: self
|
2024-09-30 09:33:32 -04:00
|
|
|
.0
|
2025-01-14 10:01:05 -05:00
|
|
|
.root_node_modules_path()
|
2024-07-25 19:08:14 -04:00
|
|
|
.map(|p| p.to_string_lossy().to_string()),
|
|
|
|
})
|
|
|
|
.unwrap()
|
|
|
|
}
|
|
|
|
}
|