Contains UWA utils functions that is not part of the Core or Native Objects for manipulate String (URLs, Simple Cryptography), Array, and inject CSS styles.
Index
Members
- UWA.Utils.parseUrl
- UWA.Utils.loadXml
- UWA.Utils.loadHtml
- UWA.Utils.xmlToString
- UWA.Utils.setCss
- getUniqueId
- UWA.Utils.getCRC32
- UWA.Utils.clearImmediate
- UWA.Utils.setImmediate
Methods
- UWA.Utils.buildUrl
- UWA.Utils.composeUrl
- UWA.Utils.matchUrl
- UWA.Utils.isAbsoluteUrl
- UWA.Utils.isValidUrl
- UWA.Utils.encodeUrl
- UWA.Utils.parseQuery
- UWA.Utils.toQueryString
- UWA.Utils.getQueryString
- UWA.Utils.xmlToHtml
- UWA.Utils.toArray
- UWA.Utils.splat
- UWA.Utils.getUUID
- UWA.Utils.getCheckSum
- UWA.Utils.base64Encode
- UWA.Utils.base64Decode
- UWA.Utils.attempt
- UWA.Utils.memoize
- UWA.Utils.getOwnPropertyMatchName
- UWA.Utils.getOwnPropertyMatchValue
- UWA.Utils.clearImmediate
Members
-
<static> UWA.Utils.parseUrl
-
Parse an Url to extract uri parts (protocol, domain, ...). The URL should include the protocol (http://).
Example
UWA.Utils.parseUrl("http://me@example.com:80"); // will return {"source":"http://me@example.com:80","protocol":"http","authority":"me@example.com:80","domain":"me@example.com","port":"80",...} -
<static> UWA.Utils.loadXml
-
Convert a String into an XML Document.
You can navigate into the document nodes using childNodes, attributes, nodeType, nodeName and nodeValue properties.
Example
UWA.Utils.loadXml( '<items title="titleAttribute">' + ' <item name="item1" foo="bar">item1TagValue</item>' + ' <item name="item2" foo="bar">item2TagValue</item>' + ' <label>label1TagValue</label>' + ' <label>label2TagValue</label>' + ' <title type="foo">titleTagValue</title>' + '</items>' ); // will return a Document object.Example with xsl parameter:
var data = '<?xml version="1.0" encoding="utf-8"?>' + '<catalog>' + ' <cd>' + ' <title>Empire Burlesque</title>' + ' <artist>Bob Dylan</artist>' + ' <country>USA</country>' + ' <company>Columbia</company>' + ' <price>10.90</price>' + ' <year>1985</year>' + ' </cd>' + ' <cd>' + ' <title>Hide your heart</title> ' + ' <artist>Bonnie Tyler</artist> ' + ' <country>UK</country>' + ' <company>CBS Records</company> ' + ' <price>9.90</price>' + ' <year>1988</year>' + ' </cd>' + '</catalog>', template = '<?xml version="1.0" encoding="utf-8"?>' + '<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">' + '<xsl:template match="/">' + ' <div>' + ' <h2>My CD Collection</h2>' + ' <table width="100%">' + ' <tr bgcolor="#9acd32">' + ' <th>Title</th>' + ' <th>Artist</th>' + ' </tr>' + ' <xsl:for-each select="catalog/cd">' + ' <tr>' + ' <td><xsl:value-of select="title"/></td>' + ' <td><xsl:value-of select="artist"/></td>' + ' </tr>' + ' </xsl:for-each>' + ' </table>' + ' </div>' + '</xsl:template>' + '</xsl:stylesheet>'; UWA.Utils.loadXml(data, template); // will return a Document object. -
<static> UWA.Utils.loadHtml
-
Convert a String into an HTML Document.
Notes: This function support also non XHTML markup (e.g <img> VS <img/>) You can navigate into the document nodes using childNodes, attributes, nodeType, nodeName and nodeValue properties. * following tags may ignored for security reason on old platform: script, embed, object, frameset, frame, iframe, meta, link, style.
-
<static> UWA.Utils.xmlToString
-
Convert a XML document into an indented XML string.
Example
UWA.Utils.xmlToString(UWA.Utils.loadXml( '<items title="titleAttribute">' + ' <item name="item1" foo="bar">item1TagValue</item>' + ' <item name="item2" foo="bar">item2TagValue</item>' + ' <label>label1TagValue</label>' + ' <label>label2TagValue</label>' + ' <title type="foo">titleTagValue</title>' + " <text><![CDATA[ Hello \r\n\t\r\n World! ]]></text>" + '</items>' )); // will return a String. -
<static> UWA.Utils.setCss
-
Add a <styles> tag to current document with specific id.
Example
UWA.Utils.setCss("myStyle", "a.myClass { color: red; }", ".myNamespace"); // will insert: <style id="myStyle"> .myNamespace a.myClass { color: red; } </style> UWA.Utils.setCss("myStyle", "body a.myClass { color: red; }", ".myNamespace"); // will insert: <style id="myStyle">body .myNamespace a.myClass { color: red; } </style> UWA.Utils.setCss( "myStyle", ".firstClass ul>li, .secondClass { font: 1.1em/1.3em Tahoma, Bitstream Vera Sans, sans-serif;} .thirdClass {}", ".myNamespace" ); // will insert: <style id="myStyle"> .myNamespace .firstClass ul>li, .myNamespace .secondClass { font: 1.1em/1.3em Tahoma, Bitstream Vera Sans, sans-serif;} .myNamespace .thirdClass { }" </style> UWA.Utils.setCss("myStyle", "a.myClass { color: red; }"); // will insert with no namespace: <style id="myStyle"> a.myClass { color: red; } </style> -
<static> getUniqueId
-
Return an id random enough to be considered unique. The generated id is suitable for use as an HTML id or classname.
Example
UWA.Utils.getUniqueId(); // could return "u3j9u0012" -
<static> UWA.Utils.getCRC32
-
Get current CRC32 checksum of the string parameter.
Example
UWA.Utils.getCRC32('123456'); // will return "158520161" -
<static> UWA.Utils.clearImmediate
-
Schedule a function to be executed very soon.
Example
// This is an infinite calculation that doesn't block the UI. findPrimes = function (currentNumber) { if (isPrime(currentNumber)) console.log(currentNumber); UWA.Utils.setImmediate(findPrimes.bind(null, currentNumber + 1)); }; findPrimes(1); -
<static> UWA.Utils.setImmediate
-
Cancels an Immediate that hasn't executed yet.
Methods
-
<static> UWA.Utils.buildUrl(url, href) → {String}
-
Build an url from linkHref param in same context than widgetUrl param.
Example
UWA.Utils.buildUrl("http://example.org/mywidget.html", "/index.html"); // will return "http://example.org/index.html"Parameters
Name Type Description urlString A full absolute url (e.g "http://example.org")
hrefString Another url or simple file path (e.g. "/index.html")
Returns
A new url related to widgetUrl url absolute value.
- Type
- String
-
<static> UWA.Utils.composeUrl(parts) → {String}
-
Build an Url to from uri parts (protocol, domain, ...).
Example
UWA.Utils.composeUrl({ protocol: "https", subprotocol: "feed", authority: "example.org:8080", domain: "example.org", port: "8080", path: "/mypath/mywidget.html", directoryPath: "/mypath/", fileName: "mywidget.html", query: "lorem=ipsum&hello=world", anchor: "sit" }); // will return "feed:https://example.org:8080/mypath/mywidget.html?lorem=ipsum&hello=world#sit"Parameters
Name Type Description partsString An object with following properties: source, protocol, authority, domain, port, path, directoryPath, fileName, query, anchor
Returns
A valid url (e.g. "http://netvibes.com").
- Type
- String
-
<static> UWA.Utils.matchUrl(originaUrl, requestUrl) → {Boolean}
-
Compare two url to check if their domain, protocol and port match.
Example
// Following will return `true` UWA.Utils.matchUrl('http://example.com/mypath/index.html', '/mypath/index.html'); UWA.Utils.matchUrl('http://example.com/mypath/index.html', 'mypath/index.html'); UWA.Utils.matchUrl('http://example.com/mypath/index.html', 'http://example.com/index.html'); // Following will return `false` UWA.Utils.matchUrl('http://example.com/mypath/index.html', 'http://example.org/mypath/index.html'); UWA.Utils.matchUrl('http://example.com/mypath/index.html', 'https://example.com/mypath/index.html');Parameters
Name Type Description originaUrlString First url to compare
requestUrlString Second url to compare
Returns
trueif urls match elsefalse.- Type
- Boolean
-
<static> UWA.Utils.isAbsoluteUrl(url) → {Boolean}
-
Test if an URL is absolute.
Example
UWA.Utils.isAbsoluteUrl('http://foo.com'); // will return true UWA.Utils.isAbsoluteUrl('/foo'); // will return falseParameters
Name Type Description urlString the url to check
Returns
trueif the URL is absolute.- Type
- Boolean
-
<static> UWA.Utils.isValidUrl(url) → {Boolean}
-
Test if an URL is valid.
Example
UWA.Utils.isValidUrl('http://foo.com'); // will return true UWA.Utils.isValidUrl('/foo'); // will return true UWA.Utils.isValidUrl('//foo'); // will return falseParameters
Name Type Description urlString the url to check
Returns
trueif the URL is valid.- Type
- Boolean
-
<static> UWA.Utils.encodeUrl(str) → {String}
-
Simple encodeURIComponent wrapper to escape "." to "%2e" also.
Example
UWA.Utils.encodeUrl("hello?/e;&."); // will return "hello%3F%2Fe%3B%26%2e"Parameters
Name Type Description strString String to encode
Returns
Encoded string.
- Type
- String
-
<static> UWA.Utils.parseQuery(queryString) → {Object}
-
Decode an url string query string to an Object.
Example
UWA.Utils.parseQuery('?example=1&array[0]=hello&array[1]=world'); // will return {"example":"1","array":{"0":"hello","1":"world"}}"Parameters
Name Type Description queryStringString Query string to decode
Returns
Decoded query string indexed by query param key.
- Type
- Object
-
<static> UWA.Utils.toQueryString(myObject, base) → {String}
-
Encode an Object to a url string.
Example
UWA.Utils.toQueryString({ example: 1, array: ['hello', 'world'], object: {key: 'value'} }); // will return "example=1&array[0]=hello&array[1]=world" UWA.Utils.toQueryString({ toQueryString: function () { return 'hello' } }); // will return "hello"Parameters
Name Type Description myObjectObject Object to encode
baseObject Sub object to encode
Returns
Encoded string.
- Type
- String
-
<static> UWA.Utils.getQueryString(query, key, Fallback) → {Void}
-
Get GET param value from a query string.
Example
UWA.Utils.getQueryString('example=hello', 'example'); // will return "hello" UWA.Utils.getQueryString('http://example.com?example=hello', 'example'); // will return "hello" UWA.Utils.getQueryString('http://example.com?example=hello', 'status'); // will return undefined UWA.Utils.getQueryString('http://example.com?example=hello', 'status', 'bye'); // will return 'bye'Parameters
Name Type Description queryObject Query to use as source
keyObject GET param key
FallbackObject default value if missing
Returns
GET param value if available else fallback parameter value.
- Type
- Void
-
<static> UWA.Utils.xmlToHtml(string) → {Element}
-
Convert an XML document into DOM elements tree.
Example
UWA.Utils.xmlToHtml( '<items title="titleAttribute">' + ' <item name="item1" foo="bar">item1TagValue</item>' + ' <item name="item2" foo="bar">item2TagValue</item>' + ' <label>label1TagValue</label>' + ' <label>label2TagValue</label>' + ' <title type="foo">titleTagValue</title>' + '</items>' ); // will return a Element object.Parameters
Name Type Description stringString | Document XML String source or Document instance result from UWA.Data.getXML or UWA.Utils.loadXml.
Returns
Root node that result of XML to XHTML conversion.
- Type
- Element
-
<static> UWA.Utils.toArray(iterable) → {Array}
-
Convert an object to an Array.
Example
UWA.Utils.toArray(widget.body.getElementsByClassName('item'));Parameters
Name Type Description iterableVoid Variable need to be an iterable object
Returns
Same array than param if array param is an array else an array with array param has value.
- Type
- Array
-
<static> UWA.Utils.splat(object) → {Array}
-
Converts the argument passed in to an array if it is defined and not already an array.
Example
var myBadArray = "abc"; UWA.Utils.splat(myBadArray); // will return ["abc"]Parameters
Name Type Description objectString Variable need to be cast has array
Returns
Same array than param if array param is an array else an array with array param has value.
- Type
- Array
-
<static> UWA.Utils.getUUID() → {String}
-
Return a Universally Unique IDentifier (UUID) URN Namespace based on RFC 4122, section 4.4 (Algorithms for Creating a UUID from Truly Random or Pseudo-Random Number).
Example
UWA.Utils.uuid(); // will return "f8572d53-0fc5-43f2-bb1f-19eb1395d2ba"Returns
an UUID string (e.g: xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx).
- Type
- String
-
<static> UWA.Utils.getCheckSum(string, salt) → {String}
-
Get current checksum of the string parameter.
Example
UWA.Utils.getCheckSum('hello my name is bob!'); // will return "51ul56" UWA.Utils.getCheckSum('hello my name is bob!', 0x666666); // will return "407so"Parameters
Name Type Description stringString String to checksum
saltNumber Checksum salt (default: 0x12345678)
Returns
String checksum.
- Type
- String
-
<static> UWA.Utils.base64Encode(str) → {String}
-
Creates a base-64 encoded ASCII string from a "string" of binary data. This btoa method support Unicode compare to the native window.btoa.
Examples
UWA.Utils.base64Encode('✓ à la mode'); // will return "4pyTIMOgIGxhIG1vZGU="window.btoa('✓ à la mode'); // Error: InvalidCharacterError: DOM Exception 5Parameters
Name Type Description strString String to encode
Returns
Base-64 for string passed as argument.
- Type
- String
-
<static> UWA.Utils.base64Decode(str) → {String}
-
Decodes a string of data which has been encoded using base-64 encoding. This atob method support Unicode compare to the native window.atob.
Examples
UWA.Utils.base64Decode('4pyTIMOgIGxhIG1vZGU='); // will return "✓ à la mode"window.atob('4pyTIMOgIGxhIG1vZGU='); // will return "â Ã la mode"Parameters
Name Type Description strString Base-64 string to decode
Returns
Decoded base-64 string for passed argument.
- Type
- String
-
<static> UWA.Utils.attempt(func, fail, context)
-
Safely execute a function who can throw an exception. If UWA is in debug mode (UWA.debug is
true), it runs the function and do NOT catch any exception, so it can easily be debugged with a browser developper console. Else, the exception will be catched and the 'fail' callback will be executed with the error as first argument.Prefer using this method to run critical foreign functions instead of try / catches, as it is simpler to debug.
Extra arguments are passed to func and fail functions.
Example
function userDefinedFunction(foo) { foo.bar = 42; return 32; } UWA.Utils.attempt(userDefinedFunction, function (error, foo) { // Deal with the error UWA.log('Calling userDefinedFunction with ' + foo + ' as first argument has failed unexpectedly:' + error); return 21; }, {}, null); // Will return 21 and log the error messageParameters
Name Type Argument Description funcFunction The function to execute
failFunction <optional>
A callback to execute if the function fails, with the error as first argument and the other arguments afterward.
contextObject <optional>
Passed as context to func and fail functions
Returns
The result of func or fail
-
<static> UWA.Utils.memoize(func, serializer) → {Function}
-
Decorator around functions that cache the inner function's return values. Its return value may only depend on its arguments and 'this' context.
There may be further restrictions on the arguments depending on the capabilities of the serializer used.
Example
var nbFunctionCall = 0, myFunction = function () { // Your heavy javascript computation return nbFunctionCall += 1; }, myFunctionCache = UWA.Utils.memoize(myFunction); myFunctionCache(1); // will return 1 myFunctionCache(2); // will return 2 myFunctionCache(1); // will return 1Parameters
Name Type Description funcFunction serializerObject A function to serialize function's arguments. By default serializer is
JSON.stringify.Returns
The wrapped function.
- Type
- Function
-
<static> UWA.Utils.getOwnPropertyMatchName(obj, property) → {String}
-
Get the first property name of an object that match using an case insensitive property name.
Example
o = new Object(); o.prop = 'exists'; UWA.Utils.getOwnPropertyMatchName(o, 'Prop'); // returns "prop" UWA.Utils.getOwnPropertyMatchName(o, 'PROP'); // returns "prop" UWA.Utils.getOwnPropertyMatchName(o, 'prop'); // returns "prop"Parameters
Name Type Description objObject The object whose tested.
propertyString The name of the property to test.
Returns
the real property name.
- Type
- String
-
<static> UWA.Utils.getOwnPropertyMatchValue(obj, property) → {String}
-
Get the first property value of an object that match using an case insensitive property name.
Example
o = new Object(); o.prop = 'exists'; UWA.Utils.getOwnPropertyMatchValue(o, 'Prop'); // returns "exists" UWA.Utils.getOwnPropertyMatchValue(o, 'PROP'); // returns "exists" UWA.Utils.getOwnPropertyMatchValue(o, 'prop'); // returns "exists"Parameters
Name Type Description objObject The object whose tested.
propertyString The name of the property to test.
Returns
the real property value.
- Type
- String
-
<static> UWA.Utils.clearImmediate(min, max) → {Number}
-
Produces a random integer between
minandmax(inclusive). If only one argument is provided a number between0and the given integer is returned.Example
UWA.Utils.random(0, 5); // returns an integer between 0 and 5 inclusive UWA.Utils.random(5); // also returns an integer between 0 and 5 inclusiveParameters
Name Type Description minNumber The minimum possible value.
maxNumber The maximum possible value.
Returns
Returns the random number.
- Type
- Number