Skip to content

harmony-contrib/ada-ohos

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

@ohos-rs/ada

Platform License: MIT

The binding of ada-url for OpenHarmony/HarmonyNext.

Install

You can use ohpm to install it directly.

ohpm install @ohos-rs/ada

Usage

import { Ada } from "@ohos-rs/ada";

const url = Ada.parse("https://www.qq.com");

const host = url.host;

Api

export declare const enum HostType {
  Domain = 0,
  IPV4 = 1,
  IPV6 = 2
}

/** SchemeType Enum which if copied from ada-url */
export declare const enum SchemeType {
  Http = 0,
  NotSpecial = 1,
  Https = 2,
  Ws = 3,
  Ftp = 4,
  Wss = 5,
  File = 6
}

/** ada-url wrapper support parse and canParse method. */
export declare class Ada {
  /** parse url */
  static parse(url: string, base?: string | undefined | null): Url
  /** check url can be parsed */
  static canParse(url: string, base?: string | undefined | null): boolean
  /** create url search params */
  static urlSearchParams(params: string): UrlSearchParams
}

/** url instance wrapper, can directly get host,protocol,etc. */
export declare class Url {
  get host(): string
  set host(host: string)
  get hash(): string
  set hash(hash: string)
  get hostname(): string
  set hostname(hosttname: string)
  get pathname(): string
  set pathname(pathtname: string)
  get search(): string
  set search(search: string)
  get protocol(): string
  set protocol(protocol: string)
  get href(): string
  set href(href: string)
  get username(): string
  set username(username: string)
  get password(): string
  set password(password: string)
  get port(): string
  set port(port: string)
  get origin(): string
  get schemaType(): SchemeType
  get hostType(): HostType
}

/** url search params instance wrapper, can directly get/set search params. */
export declare class UrlSearchParams {
  /** get search params by key */
  get(key: string): string | null
  /** set search params by key */
  set(key: string, value: string): void
  /** append search params by key */
  append(key: string, value: string): void
  /** search params has key and value */
  contains(key: string, value: string): boolean
  /** delete search params by key and value */
  remove(key: string, value: string): void
  /** delete all search params by key */
  removeKey(key: string): void
  /** search params has key */
  containsKey(key: string): boolean
  /** search params is empty or not */
  isEmpty(): boolean
  /** get all search params by key */
  getAll(key: string): Array<string>
  /** get all keys length */
  len(): number
  /** sort search params */
  sort(): void
  /** get all keys */
  keys(): Array<string>
  /** get all values */
  values(): Array<string>
}

Performance

Based on some informal tests, it's approximately 4x times faster than the built-in @ohos.url.

package Avg Max Min unit
@ohos-rs/ada 57 352 31 us
@ohos.url 196 1405 99 us

About

ada-url binding for OpenHarmony/HarmonyNext

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages