diff --git a/cli/build.rs b/cli/build.rs index edc524bbc4..a54bf962c7 100644 --- a/cli/build.rs +++ b/cli/build.rs @@ -8,6 +8,7 @@ use deno_core::serde_json::json; use deno_core::serde_json::Value; use deno_core::JsRuntime; use deno_core::RuntimeOptions; +use deno_runtime::deno_crypto; use deno_runtime::deno_fetch; use deno_runtime::deno_web; use deno_runtime::deno_websocket; @@ -62,6 +63,7 @@ fn create_compiler_snapshot( 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()); + op_crate_libs.insert("deno.crypto", deno_crypto::get_declaration()); // ensure we invalidate the build properly. for (_, path) in op_crate_libs.iter() { @@ -262,6 +264,10 @@ fn main() { "cargo:rustc-env=DENO_WEBSOCKET_LIB_PATH={}", deno_websocket::get_declaration().display() ); + println!( + "cargo:rustc-env=DENO_CRYPTO_LIB_PATH={}", + deno_crypto::get_declaration().display() + ); println!("cargo:rustc-env=TARGET={}", env::var("TARGET").unwrap()); println!("cargo:rustc-env=PROFILE={}", env::var("PROFILE").unwrap()); diff --git a/cli/dts/lib.deno.shared_globals.d.ts b/cli/dts/lib.deno.shared_globals.d.ts index 9cfe45cfa7..4332b757b1 100644 --- a/cli/dts/lib.deno.shared_globals.d.ts +++ b/cli/dts/lib.deno.shared_globals.d.ts @@ -8,6 +8,7 @@ /// /// /// +/// declare namespace WebAssembly { /** @@ -343,8 +344,6 @@ interface VoidFunction { */ declare function queueMicrotask(func: VoidFunction): void; -declare var crypto: Crypto; - /** Registers an event listener in the global scope, which will be called * synchronously whenever the event `type` is dispatched. * @@ -416,26 +415,6 @@ declare interface Console { declare var console: Console; -declare interface Crypto { - readonly subtle: null; - getRandomValues< - T extends - | Int8Array - | Int16Array - | Int32Array - | Uint8Array - | Uint16Array - | Uint32Array - | Uint8ClampedArray - | Float32Array - | Float64Array - | DataView - | null, - >( - array: T, - ): T; -} - interface MessageEventInit extends EventInit { data?: T; origin?: string; diff --git a/op_crates/crypto/lib.deno_crypto.d.ts b/op_crates/crypto/lib.deno_crypto.d.ts new file mode 100644 index 0000000000..a00757e719 --- /dev/null +++ b/op_crates/crypto/lib.deno_crypto.d.ts @@ -0,0 +1,26 @@ +// Copyright 2018-2021 the Deno authors. All rights reserved. MIT license. + +/// +/// + +declare var crypto: Crypto; + +declare interface Crypto { + readonly subtle: null; + getRandomValues< + T extends + | Int8Array + | Int16Array + | Int32Array + | Uint8Array + | Uint16Array + | Uint32Array + | Uint8ClampedArray + | Float32Array + | Float64Array + | DataView + | null, + >( + array: T, + ): T; +} diff --git a/op_crates/crypto/lib.rs b/op_crates/crypto/lib.rs index 61290080d2..b8fe3fefb5 100644 --- a/op_crates/crypto/lib.rs +++ b/op_crates/crypto/lib.rs @@ -11,6 +11,7 @@ use deno_core::ZeroCopyBuf; use rand::rngs::StdRng; use rand::thread_rng; use rand::Rng; +use std::path::PathBuf; pub use rand; // Re-export rand @@ -41,3 +42,7 @@ pub fn op_crypto_get_random_values( Ok(json!({})) } + +pub fn get_declaration() -> PathBuf { + PathBuf::from(env!("CARGO_MANIFEST_DIR")).join("lib.deno_crypto.d.ts") +}