mirror of
https://github.com/denoland/deno.git
synced 2025-09-30 22:21:15 +00:00
refactor: move WebSocket API to an op_crate (#9026)
This commit is contained in:
parent
1959aca2a9
commit
2e18fcebcc
20 changed files with 609 additions and 437 deletions
|
@ -23,6 +23,7 @@ path = "./bench/main.rs"
|
|||
deno_core = { path = "../core", version = "0.75.0" }
|
||||
deno_fetch = { path = "../op_crates/fetch", version = "0.18.0" }
|
||||
deno_web = { path = "../op_crates/web", version = "0.26.0" }
|
||||
deno_websocket = { path = "../op_crates/websocket", version = "0.1.0" }
|
||||
regex = "1.3.9"
|
||||
serde = { version = "1.0.116", features = ["derive"] }
|
||||
|
||||
|
@ -84,7 +85,6 @@ nix = "0.19.0"
|
|||
chrono = "0.4.15"
|
||||
os_pipe = "0.9.2"
|
||||
test_util = { path = "../test_util" }
|
||||
tokio-tungstenite = "0.11.0"
|
||||
tower-test = "0.3.0"
|
||||
|
||||
[target.'cfg(unix)'.dev-dependencies]
|
||||
|
|
|
@ -57,6 +57,7 @@ fn create_compiler_snapshot(
|
|||
let mut op_crate_libs = HashMap::new();
|
||||
op_crate_libs.insert("deno.web", deno_web::get_declaration());
|
||||
op_crate_libs.insert("deno.fetch", deno_fetch::get_declaration());
|
||||
op_crate_libs.insert("deno.websocket", deno_websocket::get_declaration());
|
||||
|
||||
// ensure we invalidate the build properly.
|
||||
for (_, path) in op_crate_libs.iter() {
|
||||
|
@ -245,6 +246,10 @@ fn main() {
|
|||
"cargo:rustc-env=DENO_FETCH_LIB_PATH={}",
|
||||
deno_fetch::get_declaration().display()
|
||||
);
|
||||
println!(
|
||||
"cargo:rustc-env=DENO_WEBSOCKET_LIB_PATH={}",
|
||||
deno_websocket::get_declaration().display()
|
||||
);
|
||||
|
||||
println!("cargo:rustc-env=TARGET={}", env::var("TARGET").unwrap());
|
||||
println!("cargo:rustc-env=PROFILE={}", env::var("PROFILE").unwrap());
|
||||
|
|
107
cli/dts/lib.deno.shared_globals.d.ts
vendored
107
cli/dts/lib.deno.shared_globals.d.ts
vendored
|
@ -7,6 +7,7 @@
|
|||
/// <reference lib="esnext" />
|
||||
/// <reference lib="deno.web" />
|
||||
/// <reference lib="deno.fetch" />
|
||||
/// <reference lib="deno.websocket" />
|
||||
|
||||
declare namespace WebAssembly {
|
||||
/**
|
||||
|
@ -852,109 +853,3 @@ interface ErrorConstructor {
|
|||
// TODO(nayeemrmn): Support `Error.prepareStackTrace()`. We currently use this
|
||||
// internally in a way that makes it unavailable for users.
|
||||
}
|
||||
|
||||
interface CloseEventInit extends EventInit {
|
||||
code?: number;
|
||||
reason?: string;
|
||||
wasClean?: boolean;
|
||||
}
|
||||
|
||||
declare class CloseEvent extends Event {
|
||||
constructor(type: string, eventInitDict?: CloseEventInit);
|
||||
/**
|
||||
* Returns the WebSocket connection close code provided by the server.
|
||||
*/
|
||||
readonly code: number;
|
||||
/**
|
||||
* Returns the WebSocket connection close reason provided by the server.
|
||||
*/
|
||||
readonly reason: string;
|
||||
/**
|
||||
* Returns true if the connection closed cleanly; false otherwise.
|
||||
*/
|
||||
readonly wasClean: boolean;
|
||||
}
|
||||
|
||||
interface WebSocketEventMap {
|
||||
close: CloseEvent;
|
||||
error: Event;
|
||||
message: MessageEvent;
|
||||
open: Event;
|
||||
}
|
||||
|
||||
/** Provides the API for creating and managing a WebSocket connection to a server, as well as for sending and receiving data on the connection. */
|
||||
declare class WebSocket extends EventTarget {
|
||||
constructor(url: string, protocols?: string | string[]);
|
||||
|
||||
static readonly CLOSED: number;
|
||||
static readonly CLOSING: number;
|
||||
static readonly CONNECTING: number;
|
||||
static readonly OPEN: number;
|
||||
|
||||
/**
|
||||
* Returns a string that indicates how binary data from the WebSocket object is exposed to scripts:
|
||||
*
|
||||
* Can be set, to change how binary data is returned. The default is "blob".
|
||||
*/
|
||||
binaryType: BinaryType;
|
||||
/**
|
||||
* Returns the number of bytes of application data (UTF-8 text and binary data) that have been queued using send() but not yet been transmitted to the network.
|
||||
*
|
||||
* If the WebSocket connection is closed, this attribute's value will only increase with each call to the send() method. (The number does not reset to zero once the connection closes.)
|
||||
*/
|
||||
readonly bufferedAmount: number;
|
||||
/**
|
||||
* Returns the extensions selected by the server, if any.
|
||||
*/
|
||||
readonly extensions: string;
|
||||
onclose: ((this: WebSocket, ev: CloseEvent) => any) | null;
|
||||
onerror: ((this: WebSocket, ev: Event | ErrorEvent) => any) | null;
|
||||
onmessage: ((this: WebSocket, ev: MessageEvent) => any) | null;
|
||||
onopen: ((this: WebSocket, ev: Event) => any) | null;
|
||||
/**
|
||||
* Returns the subprotocol selected by the server, if any. It can be used in conjunction with the array form of the constructor's second argument to perform subprotocol negotiation.
|
||||
*/
|
||||
readonly protocol: string;
|
||||
/**
|
||||
* Returns the state of the WebSocket object's connection. It can have the values described below.
|
||||
*/
|
||||
readonly readyState: number;
|
||||
/**
|
||||
* Returns the URL that was used to establish the WebSocket connection.
|
||||
*/
|
||||
readonly url: string;
|
||||
/**
|
||||
* Closes the WebSocket connection, optionally using code as the the WebSocket connection close code and reason as the the WebSocket connection close reason.
|
||||
*/
|
||||
close(code?: number, reason?: string): void;
|
||||
/**
|
||||
* Transmits data using the WebSocket connection. data can be a string, a Blob, an ArrayBuffer, or an ArrayBufferView.
|
||||
*/
|
||||
send(data: string | ArrayBufferLike | Blob | ArrayBufferView): void;
|
||||
readonly CLOSED: number;
|
||||
readonly CLOSING: number;
|
||||
readonly CONNECTING: number;
|
||||
readonly OPEN: number;
|
||||
addEventListener<K extends keyof WebSocketEventMap>(
|
||||
type: K,
|
||||
listener: (this: WebSocket, ev: WebSocketEventMap[K]) => any,
|
||||
options?: boolean | AddEventListenerOptions,
|
||||
): void;
|
||||
addEventListener(
|
||||
type: string,
|
||||
listener: EventListenerOrEventListenerObject,
|
||||
options?: boolean | AddEventListenerOptions,
|
||||
): void;
|
||||
removeEventListener<K extends keyof WebSocketEventMap>(
|
||||
type: K,
|
||||
listener: (this: WebSocket, ev: WebSocketEventMap[K]) => any,
|
||||
options?: boolean | EventListenerOptions,
|
||||
): void;
|
||||
removeEventListener(
|
||||
type: string,
|
||||
listener: EventListenerOrEventListenerObject,
|
||||
options?: boolean | EventListenerOptions,
|
||||
): void;
|
||||
}
|
||||
|
||||
type BinaryType = "arraybuffer" | "blob";
|
||||
|
|
|
@ -275,10 +275,11 @@ fn print_cache_info(
|
|||
|
||||
fn get_types(unstable: bool) -> String {
|
||||
let mut types = format!(
|
||||
"{}\n{}\n{}\n{}\n{}",
|
||||
"{}\n{}\n{}\n{}\n{}\n{}",
|
||||
crate::tsc::DENO_NS_LIB,
|
||||
crate::tsc::DENO_WEB_LIB,
|
||||
crate::tsc::DENO_FETCH_LIB,
|
||||
crate::tsc::DENO_WEBSOCKET_LIB,
|
||||
crate::tsc::SHARED_GLOBALS_LIB,
|
||||
crate::tsc::WINDOW_LIB,
|
||||
);
|
||||
|
|
|
@ -4,6 +4,7 @@ use deno_core::futures::prelude::*;
|
|||
use deno_core::serde_json;
|
||||
use deno_core::url;
|
||||
use deno_runtime::deno_fetch::reqwest;
|
||||
use deno_runtime::deno_websocket::tokio_tungstenite;
|
||||
use std::io::{BufRead, Write};
|
||||
use std::path::Path;
|
||||
use std::path::PathBuf;
|
||||
|
|
|
@ -30,6 +30,8 @@ use std::sync::Mutex;
|
|||
pub static DENO_NS_LIB: &str = include_str!("dts/lib.deno.ns.d.ts");
|
||||
pub static DENO_WEB_LIB: &str = include_str!(env!("DENO_WEB_LIB_PATH"));
|
||||
pub static DENO_FETCH_LIB: &str = include_str!(env!("DENO_FETCH_LIB_PATH"));
|
||||
pub static DENO_WEBSOCKET_LIB: &str =
|
||||
include_str!(env!("DENO_WEBSOCKET_LIB_PATH"));
|
||||
pub static SHARED_GLOBALS_LIB: &str =
|
||||
include_str!("dts/lib.deno.shared_globals.d.ts");
|
||||
pub static WINDOW_LIB: &str = include_str!("dts/lib.deno.window.d.ts");
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue