mirror of
https://github.com/gosticks/DefinitelyTyped.git
synced 2026-10-04 14:57:10 +00:00
domurl type defs added
This commit is contained in:
@@ -0,0 +1,80 @@
|
||||
/// <reference path="domurl.d.ts" />
|
||||
|
||||
interface UModel extends QueryString {
|
||||
a: any;
|
||||
b: string;
|
||||
}
|
||||
|
||||
interface U2Model extends QueryString {
|
||||
a: any;
|
||||
}
|
||||
|
||||
interface U3Model extends QueryString {
|
||||
foo: string;
|
||||
}
|
||||
|
||||
var u = new Url<UModel>(); // current document URL will be used
|
||||
// or we can instantiate as
|
||||
var u2 = new Url<U2Model>("http://example.com/some/path?a=b&c=d#someAnchor");
|
||||
// it should support relative URLs also
|
||||
var u3 = new Url<U3Model>("/my/site/doc/path?foo=bar#baz");
|
||||
|
||||
// get the value of some query string parameter
|
||||
alert(u2.query.a);
|
||||
// or
|
||||
alert(u3.query["foo"]);
|
||||
|
||||
// Manipulating query string parameters
|
||||
u.query.a = [1, 2, 3]; // adds/replaces in query string params a=1&a=2&a=3
|
||||
u.query.b = 'woohoo'; // adds/replaces in query string param b=woohoo
|
||||
|
||||
if (u.query.a instanceof Array) { // the way to add a parameter
|
||||
u.query.a.push(4); // now it's "a=1&a=2&a=3&a=4&b=woohoo"
|
||||
}
|
||||
|
||||
else { // if not an array but scalar value here is a way how to convert to array
|
||||
u.query.a = [u.query.a];
|
||||
u.query.a.push(8)
|
||||
}
|
||||
|
||||
|
||||
// The way to remove the parameter:
|
||||
delete u.query.a;
|
||||
// or:
|
||||
delete u.query["a"];
|
||||
|
||||
// If you need to remove all query string params:
|
||||
u.query.clear();
|
||||
alert(u);
|
||||
|
||||
// Lookup URL parts:
|
||||
alert(
|
||||
'protocol = ' + u.protocol + '\n' +
|
||||
'user = ' + u.user + '\n' +
|
||||
'pass = ' + u.pass + '\n' +
|
||||
'host = ' + u.host + '\n' +
|
||||
'port = ' + u.port + '\n' +
|
||||
'path = ' + u.path + '\n' +
|
||||
'query = ' + u.query + '\n' +
|
||||
'hash = ' + u.hash
|
||||
);
|
||||
|
||||
// Manipulating URL parts
|
||||
u.path = '/some/new/path'; // the way to change URL path
|
||||
u.protocol = 'https'; // the way to force https protocol on the source URL
|
||||
|
||||
// inject into string
|
||||
var str = '<a href="' + u + '">My Cool Link</a>';
|
||||
|
||||
// or use in DOM context
|
||||
var a = document.createElement('a');
|
||||
a.href = u.toString();
|
||||
a.innerHTML = 'test';
|
||||
document.body.appendChild(a);
|
||||
|
||||
// Stringify
|
||||
var su1 = u + '';
|
||||
var su2 = String(u);
|
||||
var su3 = u.toString();
|
||||
// NOTE, that usually it will be done automatically, so only in special
|
||||
// cases direct stringify is required
|
||||
Vendored
+30
@@ -0,0 +1,30 @@
|
||||
// Type definitions for domurl
|
||||
// Project: https://github.com/Mikhus/domurl
|
||||
// Definitions by: Mykhailo Stadnyk <mikhus@gmail.com>
|
||||
// Definitions: https://github.com/Mikhus/DefinitelyTyped
|
||||
|
||||
interface QueryString {
|
||||
(qs?: string);
|
||||
toString(): string;
|
||||
}
|
||||
|
||||
declare class Url<T> {
|
||||
constructor(url?: string);
|
||||
query: T;
|
||||
protocol: string;
|
||||
user: string;
|
||||
pass: string;
|
||||
host: string;
|
||||
port: string;
|
||||
path: string;
|
||||
hash: string;
|
||||
href: string;
|
||||
toString(): string;
|
||||
encode(s: string): string;
|
||||
decode(s: string): string;
|
||||
isAbsolute(): boolean;
|
||||
paths(paths?: [string]): [string];
|
||||
isEmptyQuery(): boolean;
|
||||
queryLength(): number;
|
||||
clearQuery(): Url;
|
||||
}
|
||||
Reference in New Issue
Block a user