// Do not edit. This file is generated.
// MoonBit type: URL
// Specifications: FileAPI.idl, url.idl
///|
/// [URL](https://developer.mozilla.org/en-US/docs/Web/API/URL)
#external
pub type URL
///|
pub impl TJsValue for URL with to_js(self : URL) -> JsValue = "%identity"
///|
pub impl FromJsAny for URL with from_js_any(value : JsAny) -> URL = "%identity"
///|
/// Unchecked downcast — no runtime type check is performed.
/// Prefer `try_into()` for checked downcasts.
#deprecated("Use unsafe_into or try_into instead")
pub fn[T : TURL] URL::into(self : URL) -> T = "%identity"
///|
/// Unchecked downcast — no runtime type check is performed.
/// WARNING: If the underlying JS value is not of type T, this will silently
/// produce a value with incorrect type, leading to undefined behavior.
pub fn[T : TURL] URL::unsafe_into(self : URL) -> T = "%identity"
///|
pub impl HasConstructor for URL with constructor_name() {
"URL"
}
///|
/// Checked downcast — returns None if the JS value is not an instance of T.
pub fn[T : TURL + HasConstructor] URL::try_into(self : URL) -> T? {
if js_instanceof(TJsValue::to_js(self), T::constructor_name()) {
Some(self.unsafe_into())
} else {
None
}
}
///|
pub impl TURL for URL
///|
pub fn URL::new(url : String, base? : String) -> URL {
url_new_ffi(TJsValue::to_js(url), opt_to_js(base))
}
///|
pub(open) trait TURLCreateObjectURLObj: TJsValue {}
///|
pub impl TURLCreateObjectURLObj for Blob
///|
pub impl TURLCreateObjectURLObj for MediaSource
///|
/// [URL](https://developer.mozilla.org/en-US/docs/Web/API/URL) interface.
pub trait TURL: TJsValue {
href(self : Self) -> String = _
set_href(self : Self, href : String) -> Unit = _
origin(self : Self) -> String = _
protocol(self : Self) -> String = _
set_protocol(self : Self, protocol : String) -> Unit = _
username(self : Self) -> String = _
set_username(self : Self, username : String) -> Unit = _
password(self : Self) -> String = _
set_password(self : Self, password : String) -> Unit = _
host(self : Self) -> String = _
set_host(self : Self, host : String) -> Unit = _
hostname(self : Self) -> String = _
set_hostname(self : Self, hostname : String) -> Unit = _
port(self : Self) -> String = _
set_port(self : Self, port : String) -> Unit = _
pathname(self : Self) -> String = _
set_pathname(self : Self, pathname : String) -> Unit = _
search(self : Self) -> String = _
set_search(self : Self, search : String) -> Unit = _
search_params(self : Self) -> URLSearchParams = _
hash(self : Self) -> String = _
set_hash(self : Self, hash : String) -> Unit = _
to_json(self : Self) -> String = _
}
///|
/// [URL.parse](https://developer.mozilla.org/en-US/docs/Web/API/URL/parse)
pub fn URL::parse_opt(url : String, base? : String) -> URL? {
url_parse_ffi(TJsValue::to_js(url), opt_to_js(base)).to_option()
}
///|
/// [URL.canParse](https://developer.mozilla.org/en-US/docs/Web/API/URL/canParse)
pub fn URL::can_parse(url : String, base? : String) -> Bool {
url_can_parse_ffi(TJsValue::to_js(url), opt_to_js(base))
}
///|
/// [URL.href](https://developer.mozilla.org/en-US/docs/Web/API/URL/href)
impl TURL with href(self : Self) -> String {
url_href_ffi(TJsValue::to_js(self))
}
///|
/// [URL.href](https://developer.mozilla.org/en-US/docs/Web/API/URL/href)
impl TURL with set_href(self : Self, href : String) -> Unit {
url_set_href_ffi(TJsValue::to_js(self), TJsValue::to_js(href))
}
///|
/// [URL.origin](https://developer.mozilla.org/en-US/docs/Web/API/URL/origin)
impl TURL with origin(self : Self) -> String {
url_origin_ffi(TJsValue::to_js(self))
}
///|
/// [URL.protocol](https://developer.mozilla.org/en-US/docs/Web/API/URL/protocol)
impl TURL with protocol(self : Self) -> String {
url_protocol_ffi(TJsValue::to_js(self))
}
///|
/// [URL.protocol](https://developer.mozilla.org/en-US/docs/Web/API/URL/protocol)
impl TURL with set_protocol(self : Self, protocol : String) -> Unit {
url_set_protocol_ffi(TJsValue::to_js(self), TJsValue::to_js(protocol))
}
///|
/// [URL.username](https://developer.mozilla.org/en-US/docs/Web/API/URL/username)
impl TURL with username(self : Self) -> String {
url_username_ffi(TJsValue::to_js(self))
}
///|
/// [URL.username](https://developer.mozilla.org/en-US/docs/Web/API/URL/username)
impl TURL with set_username(self : Self, username : String) -> Unit {
url_set_username_ffi(TJsValue::to_js(self), TJsValue::to_js(username))
}
///|
/// [URL.password](https://developer.mozilla.org/en-US/docs/Web/API/URL/password)
impl TURL with password(self : Self) -> String {
url_password_ffi(TJsValue::to_js(self))
}
///|
/// [URL.password](https://developer.mozilla.org/en-US/docs/Web/API/URL/password)
impl TURL with set_password(self : Self, password : String) -> Unit {
url_set_password_ffi(TJsValue::to_js(self), TJsValue::to_js(password))
}
///|
/// [URL.host](https://developer.mozilla.org/en-US/docs/Web/API/URL/host)
impl TURL with host(self : Self) -> String {
url_host_ffi(TJsValue::to_js(self))
}
///|
/// [URL.host](https://developer.mozilla.org/en-US/docs/Web/API/URL/host)
impl TURL with set_host(self : Self, host : String) -> Unit {
url_set_host_ffi(TJsValue::to_js(self), TJsValue::to_js(host))
}
///|
/// [URL.hostname](https://developer.mozilla.org/en-US/docs/Web/API/URL/hostname)
impl TURL with hostname(self : Self) -> String {
url_hostname_ffi(TJsValue::to_js(self))
}
///|
/// [URL.hostname](https://developer.mozilla.org/en-US/docs/Web/API/URL/hostname)
impl TURL with set_hostname(self : Self, hostname : String) -> Unit {
url_set_hostname_ffi(TJsValue::to_js(self), TJsValue::to_js(hostname))
}
///|
/// [URL.port](https://developer.mozilla.org/en-US/docs/Web/API/URL/port)
impl TURL with port(self : Self) -> String {
url_port_ffi(TJsValue::to_js(self))
}
///|
/// [URL.port](https://developer.mozilla.org/en-US/docs/Web/API/URL/port)
impl TURL with set_port(self : Self, port : String) -> Unit {
url_set_port_ffi(TJsValue::to_js(self), TJsValue::to_js(port))
}
///|
/// [URL.pathname](https://developer.mozilla.org/en-US/docs/Web/API/URL/pathname)
impl TURL with pathname(self : Self) -> String {
url_pathname_ffi(TJsValue::to_js(self))
}
///|
/// [URL.pathname](https://developer.mozilla.org/en-US/docs/Web/API/URL/pathname)
impl TURL with set_pathname(self : Self, pathname : String) -> Unit {
url_set_pathname_ffi(TJsValue::to_js(self), TJsValue::to_js(pathname))
}
///|
/// [URL.search](https://developer.mozilla.org/en-US/docs/Web/API/URL/search)
impl TURL with search(self : Self) -> String {
url_search_ffi(TJsValue::to_js(self))
}
///|
/// [URL.search](https://developer.mozilla.org/en-US/docs/Web/API/URL/search)
impl TURL with set_search(self : Self, search : String) -> Unit {
url_set_search_ffi(TJsValue::to_js(self), TJsValue::to_js(search))
}
///|
/// [URL.searchParams](https://developer.mozilla.org/en-US/docs/Web/API/URL/searchParams)
impl TURL with search_params(self : Self) -> URLSearchParams {
url_search_params_ffi(TJsValue::to_js(self))
}
///|
/// [URL.hash](https://developer.mozilla.org/en-US/docs/Web/API/URL/hash)
impl TURL with hash(self : Self) -> String {
url_hash_ffi(TJsValue::to_js(self))
}
///|
/// [URL.hash](https://developer.mozilla.org/en-US/docs/Web/API/URL/hash)
impl TURL with set_hash(self : Self, hash : String) -> Unit {
url_set_hash_ffi(TJsValue::to_js(self), TJsValue::to_js(hash))
}
///|
/// [URL.toJSON](https://developer.mozilla.org/en-US/docs/Web/API/URL/toJSON)
impl TURL with to_json(self : Self) -> String {
url_to_json_ffi(TJsValue::to_js(self))
}
///|
/// [URL.createObjectURL](https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL)
pub fn URL::create_object_url(obj : &TURLCreateObjectURLObj) -> String {
url_create_object_url_ffi(obj.to_js())
}
///|
/// [URL.revokeObjectURL](https://developer.mozilla.org/en-US/docs/Web/API/URL/revokeObjectURL)
pub fn URL::revoke_object_url(url : String) -> Unit {
url_revoke_object_url_ffi(TJsValue::to_js(url))
}
///|
pub fn URL::parse(url : String, base? : String) -> URL {
let result = match base {
Some(base) => URL::parse_opt(url, base~)
None => URL::parse_opt(url)
}
result.unwrap()
}
///|
#cfg(target="js")
extern "js" fn url_new_ffi(url : JsValue, base : JsValue) -> URL = "(url, base) => new URL(url, base)"
///|
#cfg(target="js")
extern "js" fn url_parse_ffi(url : JsValue, base : JsValue) -> JsValue = "(url, base) => URL.parse(url, base)"
///|
#cfg(target="js")
extern "js" fn url_can_parse_ffi_js(url : JsValue, base : JsValue) -> JsValue = "(url, base) => URL.canParse(url, base)"
///|
#cfg(target="js")
fn url_can_parse_ffi(url : JsValue, base : JsValue) -> Bool {
url_can_parse_ffi_js(url, base).unsafe_cast()
}
///|
#cfg(target="js")
extern "js" fn url_href_ffi_js(obj : JsValue) -> JsValue = "(obj) => obj.href"
///|
#cfg(target="js")
fn url_href_ffi(obj : JsValue) -> String {
url_href_ffi_js(obj).unsafe_cast()
}
///|
#cfg(target="js")
extern "js" fn url_set_href_ffi(obj : JsValue, href : JsValue) -> Unit = "(obj, href) => { obj.href = href; }"
///|
#cfg(target="js")
extern "js" fn url_origin_ffi_js(obj : JsValue) -> JsValue = "(obj) => obj.origin"
///|
#cfg(target="js")
fn url_origin_ffi(obj : JsValue) -> String {
url_origin_ffi_js(obj).unsafe_cast()
}
///|
#cfg(target="js")
extern "js" fn url_protocol_ffi_js(obj : JsValue) -> JsValue = "(obj) => obj.protocol"
///|
#cfg(target="js")
fn url_protocol_ffi(obj : JsValue) -> String {
url_protocol_ffi_js(obj).unsafe_cast()
}
///|
#cfg(target="js")
extern "js" fn url_set_protocol_ffi(obj : JsValue, protocol : JsValue) -> Unit = "(obj, protocol) => { obj.protocol = protocol; }"
///|
#cfg(target="js")
extern "js" fn url_username_ffi_js(obj : JsValue) -> JsValue = "(obj) => obj.username"
///|
#cfg(target="js")
fn url_username_ffi(obj : JsValue) -> String {
url_username_ffi_js(obj).unsafe_cast()
}
///|
#cfg(target="js")
extern "js" fn url_set_username_ffi(obj : JsValue, username : JsValue) -> Unit = "(obj, username) => { obj.username = username; }"
///|
#cfg(target="js")
extern "js" fn url_password_ffi_js(obj : JsValue) -> JsValue = "(obj) => obj.password"
///|
#cfg(target="js")
fn url_password_ffi(obj : JsValue) -> String {
url_password_ffi_js(obj).unsafe_cast()
}
///|
#cfg(target="js")
extern "js" fn url_set_password_ffi(obj : JsValue, password : JsValue) -> Unit = "(obj, password) => { obj.password = password; }"
///|
#cfg(target="js")
extern "js" fn url_host_ffi_js(obj : JsValue) -> JsValue = "(obj) => obj.host"
///|
#cfg(target="js")
fn url_host_ffi(obj : JsValue) -> String {
url_host_ffi_js(obj).unsafe_cast()
}
///|
#cfg(target="js")
extern "js" fn url_set_host_ffi(obj : JsValue, host : JsValue) -> Unit = "(obj, host) => { obj.host = host; }"
///|
#cfg(target="js")
extern "js" fn url_hostname_ffi_js(obj : JsValue) -> JsValue = "(obj) => obj.hostname"
///|
#cfg(target="js")
fn url_hostname_ffi(obj : JsValue) -> String {
url_hostname_ffi_js(obj).unsafe_cast()
}
///|
#cfg(target="js")
extern "js" fn url_set_hostname_ffi(obj : JsValue, hostname : JsValue) -> Unit = "(obj, hostname) => { obj.hostname = hostname; }"
///|
#cfg(target="js")
extern "js" fn url_port_ffi_js(obj : JsValue) -> JsValue = "(obj) => obj.port"
///|
#cfg(target="js")
fn url_port_ffi(obj : JsValue) -> String {
url_port_ffi_js(obj).unsafe_cast()
}
///|
#cfg(target="js")
extern "js" fn url_set_port_ffi(obj : JsValue, port : JsValue) -> Unit = "(obj, port) => { obj.port = port; }"
///|
#cfg(target="js")
extern "js" fn url_pathname_ffi_js(obj : JsValue) -> JsValue = "(obj) => obj.pathname"
///|
#cfg(target="js")
fn url_pathname_ffi(obj : JsValue) -> String {
url_pathname_ffi_js(obj).unsafe_cast()
}
///|
#cfg(target="js")
extern "js" fn url_set_pathname_ffi(obj : JsValue, pathname : JsValue) -> Unit = "(obj, pathname) => { obj.pathname = pathname; }"
///|
#cfg(target="js")
extern "js" fn url_search_ffi_js(obj : JsValue) -> JsValue = "(obj) => obj.search"
///|
#cfg(target="js")
fn url_search_ffi(obj : JsValue) -> String {
url_search_ffi_js(obj).unsafe_cast()
}
///|
#cfg(target="js")
extern "js" fn url_set_search_ffi(obj : JsValue, search : JsValue) -> Unit = "(obj, search) => { obj.search = search; }"
///|
#cfg(target="js")
extern "js" fn url_search_params_ffi_js(obj : JsValue) -> JsValue = "(obj) => obj.searchParams"
///|
#cfg(target="js")
fn url_search_params_ffi(obj : JsValue) -> URLSearchParams {
url_search_params_ffi_js(obj).unsafe_cast()
}
///|
#cfg(target="js")
extern "js" fn url_hash_ffi_js(obj : JsValue) -> JsValue = "(obj) => obj.hash"
///|
#cfg(target="js")
fn url_hash_ffi(obj : JsValue) -> String {
url_hash_ffi_js(obj).unsafe_cast()
}
///|
#cfg(target="js")
extern "js" fn url_set_hash_ffi(obj : JsValue, hash : JsValue) -> Unit = "(obj, hash) => { obj.hash = hash; }"
///|
#cfg(target="js")
extern "js" fn url_to_json_ffi_js(obj : JsValue) -> JsValue = "(obj) => obj.toJSON()"
///|
#cfg(target="js")
fn url_to_json_ffi(obj : JsValue) -> String {
url_to_json_ffi_js(obj).unsafe_cast()
}
///|
#cfg(target="js")
extern "js" fn url_create_object_url_ffi_js(obj : JsValue) -> JsValue = "(obj) => URL.createObjectURL(obj)"
///|
#cfg(target="js")
fn url_create_object_url_ffi(obj : JsValue) -> String {
url_create_object_url_ffi_js(obj).unsafe_cast()
}
///|
#cfg(target="js")
extern "js" fn url_revoke_object_url_ffi(url : JsValue) -> Unit = "(url) => URL.revokeObjectURL(url)"
///|
#cfg(target="wasm-gc")
fn url_new_ffi(url : JsValue, base : JsValue) -> URL = "webapi_URL" "new"
///|
#cfg(target="wasm-gc")
fn url_parse_ffi(url : JsValue, base : JsValue) -> JsValue = "webapi_URL" "parse"
///|
#cfg(target="wasm-gc")
fn url_can_parse_ffi(url : JsValue, base : JsValue) -> Bool = "webapi_URL" "canParse"
///|
#cfg(target="wasm-gc")
fn url_href_ffi_wasm(obj : JsValue) -> JsValue = "webapi_URL" "get_href"
///|
#cfg(target="wasm-gc")
fn url_href_ffi(obj : JsValue) -> String {
jsvalue_to_string(url_href_ffi_wasm(obj))
}
///|
#cfg(target="wasm-gc")
fn url_set_href_ffi(obj : JsValue, href : JsValue) -> Unit = "webapi_URL" "set_href"
///|
#cfg(target="wasm-gc")
fn url_origin_ffi_wasm(obj : JsValue) -> JsValue = "webapi_URL" "get_origin"
///|
#cfg(target="wasm-gc")
fn url_origin_ffi(obj : JsValue) -> String {
jsvalue_to_string(url_origin_ffi_wasm(obj))
}
///|
#cfg(target="wasm-gc")
fn url_protocol_ffi_wasm(obj : JsValue) -> JsValue = "webapi_URL" "get_protocol"
///|
#cfg(target="wasm-gc")
fn url_protocol_ffi(obj : JsValue) -> String {
jsvalue_to_string(url_protocol_ffi_wasm(obj))
}
///|
#cfg(target="wasm-gc")
fn url_set_protocol_ffi(obj : JsValue, protocol : JsValue) -> Unit = "webapi_URL" "set_protocol"
///|
#cfg(target="wasm-gc")
fn url_username_ffi_wasm(obj : JsValue) -> JsValue = "webapi_URL" "get_username"
///|
#cfg(target="wasm-gc")
fn url_username_ffi(obj : JsValue) -> String {
jsvalue_to_string(url_username_ffi_wasm(obj))
}
///|
#cfg(target="wasm-gc")
fn url_set_username_ffi(obj : JsValue, username : JsValue) -> Unit = "webapi_URL" "set_username"
///|
#cfg(target="wasm-gc")
fn url_password_ffi_wasm(obj : JsValue) -> JsValue = "webapi_URL" "get_password"
///|
#cfg(target="wasm-gc")
fn url_password_ffi(obj : JsValue) -> String {
jsvalue_to_string(url_password_ffi_wasm(obj))
}
///|
#cfg(target="wasm-gc")
fn url_set_password_ffi(obj : JsValue, password : JsValue) -> Unit = "webapi_URL" "set_password"
///|
#cfg(target="wasm-gc")
fn url_host_ffi_wasm(obj : JsValue) -> JsValue = "webapi_URL" "get_host"
///|
#cfg(target="wasm-gc")
fn url_host_ffi(obj : JsValue) -> String {
jsvalue_to_string(url_host_ffi_wasm(obj))
}
///|
#cfg(target="wasm-gc")
fn url_set_host_ffi(obj : JsValue, host : JsValue) -> Unit = "webapi_URL" "set_host"
///|
#cfg(target="wasm-gc")
fn url_hostname_ffi_wasm(obj : JsValue) -> JsValue = "webapi_URL" "get_hostname"
///|
#cfg(target="wasm-gc")
fn url_hostname_ffi(obj : JsValue) -> String {
jsvalue_to_string(url_hostname_ffi_wasm(obj))
}
///|
#cfg(target="wasm-gc")
fn url_set_hostname_ffi(obj : JsValue, hostname : JsValue) -> Unit = "webapi_URL" "set_hostname"
///|
#cfg(target="wasm-gc")
fn url_port_ffi_wasm(obj : JsValue) -> JsValue = "webapi_URL" "get_port"
///|
#cfg(target="wasm-gc")
fn url_port_ffi(obj : JsValue) -> String {
jsvalue_to_string(url_port_ffi_wasm(obj))
}
///|
#cfg(target="wasm-gc")
fn url_set_port_ffi(obj : JsValue, port : JsValue) -> Unit = "webapi_URL" "set_port"
///|
#cfg(target="wasm-gc")
fn url_pathname_ffi_wasm(obj : JsValue) -> JsValue = "webapi_URL" "get_pathname"
///|
#cfg(target="wasm-gc")
fn url_pathname_ffi(obj : JsValue) -> String {
jsvalue_to_string(url_pathname_ffi_wasm(obj))
}
///|
#cfg(target="wasm-gc")
fn url_set_pathname_ffi(obj : JsValue, pathname : JsValue) -> Unit = "webapi_URL" "set_pathname"
///|
#cfg(target="wasm-gc")
fn url_search_ffi_wasm(obj : JsValue) -> JsValue = "webapi_URL" "get_search"
///|
#cfg(target="wasm-gc")
fn url_search_ffi(obj : JsValue) -> String {
jsvalue_to_string(url_search_ffi_wasm(obj))
}
///|
#cfg(target="wasm-gc")
fn url_set_search_ffi(obj : JsValue, search : JsValue) -> Unit = "webapi_URL" "set_search"
///|
#cfg(target="wasm-gc")
fn url_search_params_ffi(obj : JsValue) -> URLSearchParams = "webapi_URL" "get_searchParams"
///|
#cfg(target="wasm-gc")
fn url_hash_ffi_wasm(obj : JsValue) -> JsValue = "webapi_URL" "get_hash"
///|
#cfg(target="wasm-gc")
fn url_hash_ffi(obj : JsValue) -> String {
jsvalue_to_string(url_hash_ffi_wasm(obj))
}
///|
#cfg(target="wasm-gc")
fn url_set_hash_ffi(obj : JsValue, hash : JsValue) -> Unit = "webapi_URL" "set_hash"
///|
#cfg(target="wasm-gc")
fn url_to_json_ffi_wasm(obj : JsValue) -> JsValue = "webapi_URL" "toJSON"
///|
#cfg(target="wasm-gc")
fn url_to_json_ffi(obj : JsValue) -> String {
jsvalue_to_string(url_to_json_ffi_wasm(obj))
}
///|
#cfg(target="wasm-gc")
fn url_create_object_url_ffi_wasm(obj : JsValue) -> JsValue = "webapi_URL" "createObjectURL"
///|
#cfg(target="wasm-gc")
fn url_create_object_url_ffi(obj : JsValue) -> String {
jsvalue_to_string(url_create_object_url_ffi_wasm(obj))
}
///|
#cfg(target="wasm-gc")
fn url_revoke_object_url_ffi(url : JsValue) -> Unit = "webapi_URL" "revokeObjectURL"