summaryrefslogtreecommitdiff
path: root/op_crates/url/lib.rs
diff options
context:
space:
mode:
Diffstat (limited to 'op_crates/url/lib.rs')
-rw-r--r--op_crates/url/lib.rs33
1 files changed, 24 insertions, 9 deletions
diff --git a/op_crates/url/lib.rs b/op_crates/url/lib.rs
index 04663e411..49e34c47d 100644
--- a/op_crates/url/lib.rs
+++ b/op_crates/url/lib.rs
@@ -4,16 +4,39 @@ use deno_core::error::generic_error;
use deno_core::error::type_error;
use deno_core::error::uri_error;
use deno_core::error::AnyError;
+use deno_core::include_js_files;
+use deno_core::op_sync;
use deno_core::url::form_urlencoded;
use deno_core::url::quirks;
use deno_core::url::Url;
-use deno_core::JsRuntime;
+use deno_core::Extension;
use deno_core::ZeroCopyBuf;
use serde::Deserialize;
use serde::Serialize;
use std::panic::catch_unwind;
use std::path::PathBuf;
+pub fn init() -> Extension {
+ Extension::with_ops(
+ include_js_files!(
+ prefix "deno:op_crates/url",
+ "00_url.js",
+ ),
+ vec![
+ ("op_url_parse", op_sync(op_url_parse)),
+ (
+ "op_url_parse_search_params",
+ op_sync(op_url_parse_search_params),
+ ),
+ (
+ "op_url_stringify_search_params",
+ op_sync(op_url_stringify_search_params),
+ ),
+ ],
+ None,
+ )
+}
+
#[derive(Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct UrlParseArgs {
@@ -146,14 +169,6 @@ pub fn op_url_stringify_search_params(
Ok(search)
}
-/// Load and execute the javascript code.
-pub fn init(isolate: &mut JsRuntime) {
- let files = vec![("deno:op_crates/url/00_url.js", include_str!("00_url.js"))];
- for (url, source_code) in files {
- isolate.execute(url, source_code).unwrap();
- }
-}
-
pub fn get_declaration() -> PathBuf {
PathBuf::from(env!("CARGO_MANIFEST_DIR")).join("lib.deno_url.d.ts")
}