MCPcopy Create free account
hub / github.com/Noumena-Network/code / parse_options

Function parse_options

native/openai-compat-ws-v2-napi/src/lib.rs:137–174  ·  view source on GitHub ↗
(options_json: Option<String>)

Source from the content-addressed store, hash-verified

135}
136
137fn parse_options(options_json: Option<String>) -> Result<WsOptions> {
138 let Some(options_json) = options_json else {
139 return Ok(WsOptions::default());
140 };
141 if options_json.trim().is_empty() {
142 return Ok(WsOptions::default());
143 }
144 let parsed: Value = serde_json::from_str(&options_json)
145 .map_err(|err| napi_error(format!("invalid websocket options json: {err}")))?;
146 let Some(object) = parsed.as_object() else {
147 return Err(napi_error("websocket options json must be an object"));
148 };
149 let options = Value::Object(object.clone());
150 let ping_interval = duration_from_options_ms(
151 &options,
152 "pingIntervalMs",
153 "ping_interval_ms",
154 DEFAULT_PING_INTERVAL,
155 );
156 let ping_timeout = duration_from_options_ms(
157 &options,
158 "pingTimeoutMs",
159 "ping_timeout_ms",
160 DEFAULT_PING_TIMEOUT,
161 )
162 .max(ping_interval.saturating_mul(2));
163 let read_timeout = duration_from_options_ms(
164 &options,
165 "readTimeoutMs",
166 "read_timeout_ms",
167 DEFAULT_READ_TIMEOUT,
168 );
169 Ok(WsOptions {
170 ping_interval,
171 ping_timeout,
172 read_timeout,
173 })
174}
175
176async fn request_ws_command(
177 session: &Session,

Callers 1

ws_v2_connectFunction · 0.85

Calls 3

napi_errorFunction · 0.85
duration_from_options_msFunction · 0.85
maxMethod · 0.80

Tested by

no test coverage detected