application-prototype
Version:
Application builder - prototype
781 lines (701 loc) • 49.8 kB
HTML
<html lang="en">
<head>
<meta charset="utf-8">
<title>constructors/request.js - Application Prototype - Framework</title>
<meta name="description" content="Application Prototype Framework based on Module Pattern" />
<meta name="keywords" content="javascript, js, application-prototype, prototype" />
<meta name="keyword" content="javascript, js, application-prototype, prototype" />
<meta property="og:title" content="Application Prototype - Framework"/>
<meta property="og:type" content="website"/>
<meta property="og:image" content=""/>
<meta property="og:url" content="https://labs.sgapps.io/open-source/application-prototype"/>
<script src="scripts/prettify/prettify.js"></script>
<script src="scripts/prettify/lang-css.js"></script>
<!--[if lt IE 9]>
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<link type="text/css" rel="stylesheet" href="styles/prettify.css">
<link type="text/css" rel="stylesheet" href="styles/jsdoc.css">
<script src="scripts/nav.js" defer></script>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>
<input type="checkbox" id="nav-trigger" class="nav-trigger" />
<label for="nav-trigger" class="navicon-button x">
<div class="navicon"></div>
</label>
<label for="nav-trigger" class="overlay"></label>
<nav class="wrap">
<input type="text" id="nav-search" placeholder="Search" />
<h2><a href="index.html">Home</a></h2><h2><a href="https://labs.sgapps.io/open-source/application-prototype" target="_blank" class="menu-item" id="website_link" >Project Page ( Git Lab )</a></h2><h2><a href="http://gordienco.net/" target="_blank" class="menu-item" id="website_link" >About Me</a></h2><h2><a href="https://github.com/sergiu-gordienco/application-prototype" target="_blank" class="menu-item" id="github_link" >GitHub</a></h2><h3>Modules</h3><ul><li><a href="module-uriLoad.html">uriLoad</a><ul class='methods'><li data-type='method' style='display: none;'><a href="module-uriLoad.html#.link">link</a></li><li data-type='method' style='display: none;'><a href="module-uriLoad.html#.script">script</a></li></ul></li></ul><h3>Classes</h3><ul><li><a href="ApplicationPrototype.Builder.html">Builder</a><ul class='methods'><li data-type='method' style='display: none;'><a href="ApplicationPrototype.Builder.html#bind">bind</a></li><li data-type='method' style='display: none;'><a href="ApplicationPrototype.Builder.html#consoleOptions">consoleOptions</a></li><li data-type='method' style='display: none;'><a href="ApplicationPrototype.Builder.html#crudEvents">crudEvents</a></li><li data-type='method' style='display: none;'><a href="ApplicationPrototype.Builder.html#debugEnabled">debugEnabled</a></li><li data-type='method' style='display: none;'><a href="ApplicationPrototype.Builder.html#emit">emit</a></li><li data-type='method' style='display: none;'><a href="ApplicationPrototype.Builder.html#isBrowser">isBrowser</a></li><li data-type='method' style='display: none;'><a href="ApplicationPrototype.Builder.html#isNode">isNode</a></li><li data-type='method' style='display: none;'><a href="ApplicationPrototype.Builder.html#modulePath">modulePath</a></li><li data-type='method' style='display: none;'><a href="ApplicationPrototype.Builder.html#moduleRegister">moduleRegister</a></li><li data-type='method' style='display: none;'><a href="ApplicationPrototype.Builder.html#off">off</a></li><li data-type='method' style='display: none;'><a href="ApplicationPrototype.Builder.html#on">on</a></li><li data-type='method' style='display: none;'><a href="ApplicationPrototype.Builder.html#once">once</a></li><li data-type='method' style='display: none;'><a href="ApplicationPrototype.Builder.html#property">property</a></li><li data-type='method' style='display: none;'><a href="ApplicationPrototype.Builder.html#require">require</a></li><li data-type='method' style='display: none;'><a href="ApplicationPrototype.Builder.html#runModulesInFiles">runModulesInFiles</a></li></ul></li><li class="level-hide"><a href="ApplicationPrototype.Builder.Promise.html">Promise</a><ul class='methods'><li data-type='method' style='display: none;'><a href="ApplicationPrototype.Builder.Promise.html#.all">all</a></li><li data-type='method' style='display: none;'><a href="ApplicationPrototype.Builder.Promise.html#.race">race</a></li><li data-type='method' style='display: none;'><a href="ApplicationPrototype.Builder.Promise.html#.reject">reject</a></li><li data-type='method' style='display: none;'><a href="ApplicationPrototype.Builder.Promise.html#.resolve">resolve</a></li></ul></li><li><a href="ApplicationPrototype.Instance.html">Instance</a><ul class='methods'><li data-type='method' style='display: none;'><a href="ApplicationPrototype.Instance.html#bind">bind</a></li><li data-type='method' style='display: none;'><a href="ApplicationPrototype.Instance.html#crudEvents">crudEvents</a></li><li data-type='method' style='display: none;'><a href="ApplicationPrototype.Instance.html#emit">emit</a></li><li data-type='method' style='display: none;'><a href="ApplicationPrototype.Instance.html#off">off</a></li><li data-type='method' style='display: none;'><a href="ApplicationPrototype.Instance.html#on">on</a></li><li data-type='method' style='display: none;'><a href="ApplicationPrototype.Instance.html#once">once</a></li><li data-type='method' style='display: none;'><a href="ApplicationPrototype.Instance.html#property">property</a></li><li data-type='method' style='display: none;'><a href="ApplicationPrototype.Instance.html#property">property</a></li></ul></li><li><a href="async.Async.html">Async</a><ul class='methods'><li data-type='method' style='display: none;'><a href="async.Async.html#done">done</a></li><li data-type='method' style='display: none;'><a href="async.Async.html#errors">errors</a></li><li data-type='method' style='display: none;'><a href="async.Async.html#flush">flush</a></li><li data-type='method' style='display: none;'><a href="async.Async.html#index">index</a></li><li data-type='method' style='display: none;'><a href="async.Async.html#processing">processing</a></li><li data-type='method' style='display: none;'><a href="async.Async.html#receive">receive</a></li><li data-type='method' style='display: none;'><a href="async.Async.html#reserve">reserve</a></li><li data-type='method' style='display: none;'><a href="async.Async.html#responses">responses</a></li><li data-type='method' style='display: none;'><a href="async.Async.html#run">run</a></li><li data-type='method' style='display: none;'><a href="async.Async.html#wait">wait</a></li></ul></li><li><a href="ExtensionsPrototype.slDOMSet.html">slDOMSet</a><ul class='methods'><li data-type='method' style='display: none;'><a href="ExtensionsPrototype.slDOMSet.html#add">add</a></li><li data-type='method' style='display: none;'><a href="ExtensionsPrototype.slDOMSet.html#attr">attr</a></li><li data-type='method' style='display: none;'><a href="ExtensionsPrototype.slDOMSet.html#attr">attr</a></li><li data-type='method' style='display: none;'><a href="ExtensionsPrototype.slDOMSet.html#attr">attr</a></li><li data-type='method' style='display: none;'><a href="ExtensionsPrototype.slDOMSet.html#attr">attr</a></li><li data-type='method' style='display: none;'><a href="ExtensionsPrototype.slDOMSet.html#config">config</a></li><li data-type='method' style='display: none;'><a href="ExtensionsPrototype.slDOMSet.html#config">config</a></li><li data-type='method' style='display: none;'><a href="ExtensionsPrototype.slDOMSet.html#each">each</a></li><li data-type='method' style='display: none;'><a href="ExtensionsPrototype.slDOMSet.html#env">env</a></li><li data-type='method' style='display: none;'><a href="ExtensionsPrototype.slDOMSet.html#eq">eq</a></li><li data-type='method' style='display: none;'><a href="ExtensionsPrototype.slDOMSet.html#filter">filter</a></li><li data-type='method' style='display: none;'><a href="ExtensionsPrototype.slDOMSet.html#find">find</a></li><li data-type='method' style='display: none;'><a href="ExtensionsPrototype.slDOMSet.html#get">get</a></li><li data-type='method' style='display: none;'><a href="ExtensionsPrototype.slDOMSet.html#get">get</a></li><li data-type='method' style='display: none;'><a href="ExtensionsPrototype.slDOMSet.html#map">map</a></li><li data-type='method' style='display: none;'><a href="ExtensionsPrototype.slDOMSet.html#set">set</a></li><li data-type='method' style='display: none;'><a href="ExtensionsPrototype.slDOMSet.html#set">set</a></li><li data-type='method' style='display: none;'><a href="ExtensionsPrototype.slDOMSet.html#unique">unique</a></li></ul></li><li><a href="JSTemplateComponent.html">JSTemplateComponent</a></li><li><a href="RequestModule.html">RequestModule</a><ul class='members'><li data-type='member' style='display: none;'><a href="RequestModule.html#.READY_STATE_DONE">READY_STATE_DONE</a></li><li data-type='member' style='display: none;'><a href="RequestModule.html#.READY_STATE_HEADERS_RECEIVED">READY_STATE_HEADERS_RECEIVED</a></li><li data-type='member' style='display: none;'><a href="RequestModule.html#.READY_STATE_LOADING">READY_STATE_LOADING</a></li><li data-type='member' style='display: none;'><a href="RequestModule.html#.READY_STATE_OPENED">READY_STATE_OPENED</a></li><li data-type='member' style='display: none;'><a href="RequestModule.html#.READY_STATE_UNSENT">READY_STATE_UNSENT</a></li></ul><ul class='methods'><li data-type='method' style='display: none;'><a href="RequestModule.html#.ParamsParser">ParamsParser</a></li><li data-type='method' style='display: none;'><a href="RequestModule.html#async">async</a></li><li data-type='method' style='display: none;'><a href="RequestModule.html#async">async</a></li><li data-type='method' style='display: none;'><a href="RequestModule.html#basicAuth">basicAuth</a></li><li data-type='method' style='display: none;'><a href="RequestModule.html#basicAuth">basicAuth</a></li><li data-type='method' style='display: none;'><a href="RequestModule.html#config">config</a></li><li data-type='method' style='display: none;'><a href="RequestModule.html#configurator">configurator</a></li><li data-type='method' style='display: none;'><a href="RequestModule.html#headers">headers</a></li><li data-type='method' style='display: none;'><a href="RequestModule.html#headers">headers</a></li><li data-type='method' style='display: none;'><a href="RequestModule.html#method">method</a></li><li data-type='method' style='display: none;'><a href="RequestModule.html#method">method</a></li><li data-type='method' style='display: none;'><a href="RequestModule.html#open">open</a></li><li data-type='method' style='display: none;'><a href="RequestModule.html#readyState">readyState</a></li><li data-type='method' style='display: none;'><a href="RequestModule.html#request">request</a></li><li data-type='method' style='display: none;'><a href="RequestModule.html#response">response</a></li><li data-type='method' style='display: none;'><a href="RequestModule.html#send">send</a></li><li data-type='method' style='display: none;'><a href="RequestModule.html#status">status</a></li><li data-type='method' style='display: none;'><a href="RequestModule.html#statusText">statusText</a></li><li data-type='method' style='display: none;'><a href="RequestModule.html#timeout">timeout</a></li><li data-type='method' style='display: none;'><a href="RequestModule.html#timeout">timeout</a></li><li data-type='method' style='display: none;'><a href="RequestModule.html#url">url</a></li><li data-type='method' style='display: none;'><a href="RequestModule.html#url">url</a></li><li data-type='method' style='display: none;'><a href="RequestModule.html#withCredentials">withCredentials</a></li><li data-type='method' style='display: none;'><a href="RequestModule.html#withCredentials">withCredentials</a></li></ul></li></ul><h3>Events</h3><ul><li class="level-hide"><a href="ApplicationPrototype.Instance.html#.event:__afterGet">__afterGet</a></li><li class="level-hide"><a href="ApplicationPrototype.Instance.html#.event:__afterGet::propName">__afterGet::propName</a></li><li class="level-hide"><a href="ApplicationPrototype.Instance.html#.event:__afterSet">__afterSet</a></li><li class="level-hide"><a href="ApplicationPrototype.Instance.html#.event:__afterSet::propName">__afterSet::propName</a></li><li class="level-hide"><a href="ApplicationPrototype.Instance.html#.event:__onGet">__onGet</a></li><li class="level-hide"><a href="ApplicationPrototype.Instance.html#.event:__onGet::propName">__onGet::propName</a></li><li class="level-hide"><a href="ApplicationPrototype.Instance.html#.event:__onSet">__onSet</a></li><li class="level-hide"><a href="ApplicationPrototype.Instance.html#.event:__onSet::propName">__onSet::propName</a></li></ul><h3>Interfaces</h3><ul><li><a href="ApplicationPrototype.html">ApplicationPrototype</a></li><li><a href="Array.html">Array</a><ul class='methods'><li data-type='method' style='display: none;'><a href="Array.html#__pointerFilter">__pointerFilter</a></li><li data-type='method' style='display: none;'><a href="Array.html#base64encode">base64encode</a></li><li data-type='method' style='display: none;'><a href="Array.html#bytesToHex">bytesToHex</a></li><li data-type='method' style='display: none;'><a href="Array.html#inArray">inArray</a></li><li data-type='method' style='display: none;'><a href="Array.html#indexOfSect">indexOfSect</a></li><li data-type='method' style='display: none;'><a href="Array.html#max">max</a></li><li data-type='method' style='display: none;'><a href="Array.html#min">min</a></li><li data-type='method' style='display: none;'><a href="Array.html#move">move</a></li><li data-type='method' style='display: none;'><a href="Array.html#resetArray">resetArray</a></li><li data-type='method' style='display: none;'><a href="Array.html#shuffle">shuffle</a></li><li data-type='method' style='display: none;'><a href="Array.html#split">split</a></li><li data-type='method' style='display: none;'><a href="Array.html#splitSect">splitSect</a></li><li data-type='method' style='display: none;'><a href="Array.html#toBinaryString">toBinaryString</a></li><li data-type='method' style='display: none;'><a href="Array.html#toBlob">toBlob</a></li><li data-type='method' style='display: none;'><a href="Array.html#toBytesBinary">toBytesBinary</a></li><li data-type='method' style='display: none;'><a href="Array.html#toBytesEscaped">toBytesEscaped</a></li><li data-type='method' style='display: none;'><a href="Array.html#toParamObj">toParamObj</a></li><li data-type='method' style='display: none;'><a href="Array.html#toStringUtf8">toStringUtf8</a></li><li data-type='method' style='display: none;'><a href="Array.html#unique">unique</a></li></ul></li><li><a href="ArrayBuffer.html">ArrayBuffer</a><ul class='methods'><li data-type='method' style='display: none;'><a href="ArrayBuffer.html#base64encode">base64encode</a></li><li data-type='method' style='display: none;'><a href="ArrayBuffer.html#toArray">toArray</a></li><li data-type='method' style='display: none;'><a href="ArrayBuffer.html#toBytes">toBytes</a></li><li data-type='method' style='display: none;'><a href="ArrayBuffer.html#toStringUtf8">toStringUtf8</a></li></ul></li><li><a href="async.html">async</a><ul class='methods'><li data-type='method' style='display: none;'><a href="async.html#.flow">flow</a></li><li data-type='method' style='display: none;'><a href="async.html#.flow_map">flow_map</a></li><li data-type='method' style='display: none;'><a href="async.html#.map">map</a></li><li data-type='method' style='display: none;'><a href="async.html#.waterfall">waterfall</a></li><li data-type='method' style='display: none;'><a href="async.html#.waterfall_map">waterfall_map</a></li></ul></li><li><a href="Blob.html">Blob</a><ul class='methods'><li data-type='method' style='display: none;'><a href="Blob.html#toArrayBuffer">toArrayBuffer</a></li><li data-type='method' style='display: none;'><a href="Blob.html#toURL">toURL</a></li></ul></li><li><a href="BrowserSessionModule.html">BrowserSessionModule</a><ul class='methods'><li data-type='method' style='display: none;'><a href="BrowserSessionModule.html#.clear">clear</a></li><li data-type='method' style='display: none;'><a href="BrowserSessionModule.html#.findItems">findItems</a></li><li data-type='method' style='display: none;'><a href="BrowserSessionModule.html#.getItem">getItem</a></li><li data-type='method' style='display: none;'><a href="BrowserSessionModule.html#.getItems">getItems</a></li><li data-type='method' style='display: none;'><a href="BrowserSessionModule.html#.removeItem">removeItem</a></li><li data-type='method' style='display: none;'><a href="BrowserSessionModule.html#.removeItems">removeItems</a></li><li data-type='method' style='display: none;'><a href="BrowserSessionModule.html#.setItem">setItem</a></li><li data-type='method' style='display: none;'><a href="BrowserSessionModule.html#.setItems">setItems</a></li></ul></li><li><a href="Buffer.html">Buffer</a><ul class='methods'><li data-type='method' style='display: none;'><a href="Buffer.html#base64encode">base64encode</a></li><li data-type='method' style='display: none;'><a href="Buffer.html#toArray">toArray</a></li><li data-type='method' style='display: none;'><a href="Buffer.html#toBytes">toBytes</a></li><li data-type='method' style='display: none;'><a href="Buffer.html#toStringUtf8">toStringUtf8</a></li></ul></li><li><a href="ExtensionsPrototype.html">ExtensionsPrototype</a><ul class='members'><li data-type='member' style='display: none;'><a href="ExtensionsPrototype.html#._">_</a></li><li data-type='member' style='display: none;'><a href="ExtensionsPrototype.html#.__">__</a></li><li data-type='member' style='display: none;'><a href="ExtensionsPrototype.html#.fn">fn</a></li><li data-type='member' style='display: none;'><a href="ExtensionsPrototype.html#.object">object</a></li><li data-type='member' style='display: none;'><a href="ExtensionsPrototype.html#.string">string</a></li><li data-type='member' style='display: none;'><a href="ExtensionsPrototype.html#.WindowExtend">WindowExtend</a></li></ul></li><li><a href="Function.html">Function</a><ul class='methods'><li data-type='method' style='display: none;'><a href="Function.html#runInWorker">runInWorker</a></li><li data-type='method' style='display: none;'><a href="Function.html#toWorker">toWorker</a></li><li data-type='method' style='display: none;'><a href="Function.html#toWorkerURL">toWorkerURL</a></li></ul></li><li><a href="HTMLElement.html">HTMLElement</a></li><li><a href="JSTemplate.html">JSTemplate</a><ul class='methods'><li data-type='method' style='display: none;'><a href="JSTemplate.html#.attrParser">attrParser</a></li><li data-type='method' style='display: none;'><a href="JSTemplate.html#.expressionBuilder">expressionBuilder</a></li><li data-type='method' style='display: none;'><a href="JSTemplate.html#.nodeParser">nodeParser</a></li><li data-type='method' style='display: none;'><a href="JSTemplate.html#.parseTextNodes">parseTextNodes</a></li><li data-type='method' style='display: none;'><a href="JSTemplate.html#.textParser">textParser</a></li></ul></li><li><a href="JSTemplateComponent.contextInstance.html">contextInstance</a><ul class='members'><li data-type='member' style='display: none;'><a href="JSTemplateComponent.contextInstance.html#.node">node</a></li><li data-type='member' style='display: none;'><a href="JSTemplateComponent.contextInstance.html#.references">references</a></li></ul><ul class='methods'><li data-type='method' style='display: none;'><a href="JSTemplateComponent.contextInstance.html#.redraw">redraw</a></li><li data-type='method' style='display: none;'><a href="JSTemplateComponent.contextInstance.html#.redrawForce">redrawForce</a></li></ul></li><li><a href="JSTemplateComponent.contextWithInstance.html">contextWithInstance</a><ul class='members'><li data-type='member' style='display: none;'><a href="JSTemplateComponent.contextWithInstance.html#.__instance">__instance</a></li><li data-type='member' style='display: none;'><a href="JSTemplateComponent.contextWithInstance.html#.__lifeCycle">__lifeCycle</a></li><li data-type='member' style='display: none;'><a href="JSTemplateComponent.contextWithInstance.html#.state">state</a></li></ul></li><li><a href="JSTemplateComponent.contextWithoutInstance.html">contextWithoutInstance</a><ul class='members'><li data-type='member' style='display: none;'><a href="JSTemplateComponent.contextWithoutInstance.html#.__lifeCycle">__lifeCycle</a></li><li data-type='member' style='display: none;'><a href="JSTemplateComponent.contextWithoutInstance.html#.state">state</a></li></ul></li><li><a href="String.html">String</a><ul class='methods'><li data-type='method' style='display: none;'><a href="String.html#add_Class">add_Class</a></li><li data-type='method' style='display: none;'><a href="String.html#add_Class">add_Class</a></li><li data-type='method' style='display: none;'><a href="String.html#base64decode">base64decode</a></li><li data-type='method' style='display: none;'><a href="String.html#base64decode">base64decode</a></li><li data-type='method' style='display: none;'><a href="String.html#base64decodeBytes">base64decodeBytes</a></li><li data-type='method' style='display: none;'><a href="String.html#base64decodeBytes">base64decodeBytes</a></li><li data-type='method' style='display: none;'><a href="String.html#base64decodeBytesArray">base64decodeBytesArray</a></li><li data-type='method' style='display: none;'><a href="String.html#base64decodeBytesArray">base64decodeBytesArray</a></li><li data-type='method' style='display: none;'><a href="String.html#base64decodeClean">base64decodeClean</a></li><li data-type='method' style='display: none;'><a href="String.html#base64decodeClean">base64decodeClean</a></li><li data-type='method' style='display: none;'><a href="String.html#base64encode">base64encode</a></li><li data-type='method' style='display: none;'><a href="String.html#base64encode">base64encode</a></li><li data-type='method' style='display: none;'><a href="String.html#base64encodeBytes">base64encodeBytes</a></li><li data-type='method' style='display: none;'><a href="String.html#base64encodeBytes">base64encodeBytes</a></li><li data-type='method' style='display: none;'><a href="String.html#base64encodeBytesArray">base64encodeBytesArray</a></li><li data-type='method' style='display: none;'><a href="String.html#base64encodeBytesArray">base64encodeBytesArray</a></li><li data-type='method' style='display: none;'><a href="String.html#base64encodeClean">base64encodeClean</a></li><li data-type='method' style='display: none;'><a href="String.html#base64encodeClean">base64encodeClean</a></li><li data-type='method' style='display: none;'><a href="String.html#buildQuery">buildQuery</a></li><li data-type='method' style='display: none;'><a href="String.html#buildQuery">buildQuery</a></li><li data-type='method' style='display: none;'><a href="String.html#buildSearchArray">buildSearchArray</a></li><li data-type='method' style='display: none;'><a href="String.html#buildSearchArray">buildSearchArray</a></li><li data-type='method' style='display: none;'><a href="String.html#cleanTags">cleanTags</a></li><li data-type='method' style='display: none;'><a href="String.html#cleanTags">cleanTags</a></li><li data-type='method' style='display: none;'><a href="String.html#decodeURI">decodeURI</a></li><li data-type='method' style='display: none;'><a href="String.html#decodeURI">decodeURI</a></li><li data-type='method' style='display: none;'><a href="String.html#decryptAes">decryptAes</a></li><li data-type='method' style='display: none;'><a href="String.html#decryptAes">decryptAes</a></li><li data-type='method' style='display: none;'><a href="String.html#decryptTea">decryptTea</a></li><li data-type='method' style='display: none;'><a href="String.html#decryptTea">decryptTea</a></li><li data-type='method' style='display: none;'><a href="String.html#del_Class">del_Class</a></li><li data-type='method' style='display: none;'><a href="String.html#del_Class">del_Class</a></li><li data-type='method' style='display: none;'><a href="String.html#encodeURI">encodeURI</a></li><li data-type='method' style='display: none;'><a href="String.html#encodeURI">encodeURI</a></li><li data-type='method' style='display: none;'><a href="String.html#encryptAes">encryptAes</a></li><li data-type='method' style='display: none;'><a href="String.html#encryptAes">encryptAes</a></li><li data-type='method' style='display: none;'><a href="String.html#encryptTea">encryptTea</a></li><li data-type='method' style='display: none;'><a href="String.html#encryptTea">encryptTea</a></li><li data-type='method' style='display: none;'><a href="String.html#escape">escape</a></li><li data-type='method' style='display: none;'><a href="String.html#escape">escape</a></li><li data-type='method' style='display: none;'><a href="String.html#escapeHex">escapeHex</a></li><li data-type='method' style='display: none;'><a href="String.html#escapeHex">escapeHex</a></li><li data-type='method' style='display: none;'><a href="String.html#fnd_Class">fnd_Class</a></li><li data-type='method' style='display: none;'><a href="String.html#fnd_Class">fnd_Class</a></li><li data-type='method' style='display: none;'><a href="String.html#fromHex">fromHex</a></li><li data-type='method' style='display: none;'><a href="String.html#fromHex">fromHex</a></li><li data-type='method' style='display: none;'><a href="String.html#fromHtml">fromHtml</a></li><li data-type='method' style='display: none;'><a href="String.html#fromHtml">fromHtml</a></li><li data-type='method' style='display: none;'><a href="String.html#lcfirst">lcfirst</a></li><li data-type='method' style='display: none;'><a href="String.html#lcfirst">lcfirst</a></li><li data-type='method' style='display: none;'><a href="String.html#markdown">markdown</a></li><li data-type='method' style='display: none;'><a href="String.html#match_str">match_str</a></li><li data-type='method' style='display: none;'><a href="String.html#match_str">match_str</a></li><li data-type='method' style='display: none;'><a href="String.html#md5">md5</a></li><li data-type='method' style='display: none;'><a href="String.html#md5">md5</a></li><li data-type='method' style='display: none;'><a href="String.html#parseUrl">parseUrl</a></li><li data-type='method' style='display: none;'><a href="String.html#parseUrl">parseUrl</a></li><li data-type='method' style='display: none;'><a href="String.html#parseUrlVars">parseUrlVars</a></li><li data-type='method' style='display: none;'><a href="String.html#sha1">sha1</a></li><li data-type='method' style='display: none;'><a href="String.html#sha1">sha1</a></li><li data-type='method' style='display: none;'><a href="String.html#sha256">sha256</a></li><li data-type='method' style='display: none;'><a href="String.html#sha256">sha256</a></li><li data-type='method' style='display: none;'><a href="String.html#subs">subs</a></li><li data-type='method' style='display: none;'><a href="String.html#subs">subs</a></li><li data-type='method' style='display: none;'><a href="String.html#subs">subs</a></li><li data-type='method' style='display: none;'><a href="String.html#swp_case">swp_case</a></li><li data-type='method' style='display: none;'><a href="String.html#swp_case">swp_case</a></li><li data-type='method' style='display: none;'><a href="String.html#toArrayBufferFromUtf8">toArrayBufferFromUtf8</a></li><li data-type='method' style='display: none;'><a href="String.html#toArrayBufferFromUtf8">toArrayBufferFromUtf8</a></li><li data-type='method' style='display: none;'><a href="String.html#toHex">toHex</a></li><li data-type='method' style='display: none;'><a href="String.html#toHex">toHex</a></li><li data-type='method' style='display: none;'><a href="String.html#toHtml">toHtml</a></li><li data-type='method' style='display: none;'><a href="String.html#toHtml">toHtml</a></li><li data-type='method' style='display: none;'><a href="String.html#toHtmlSimple">toHtmlSimple</a></li><li data-type='method' style='display: none;'><a href="String.html#toHtmlSimple">toHtmlSimple</a></li><li data-type='method' style='display: none;'><a href="String.html#toRegexp">toRegexp</a></li><li data-type='method' style='display: none;'><a href="String.html#toRegexp">toRegexp</a></li><li data-type='method' style='display: none;'><a href="String.html#ucfirst">ucfirst</a></li><li data-type='method' style='display: none;'><a href="String.html#ucfirst">ucfirst</a></li><li data-type='method' style='display: none;'><a href="String.html#unescape">unescape</a></li><li data-type='method' style='display: none;'><a href="String.html#unescape">unescape</a></li><li data-type='method' style='display: none;'><a href="String.html#unicode">unicode</a></li><li data-type='method' style='display: none;'><a href="String.html#unicode">unicode</a></li><li data-type='method' style='display: none;'><a href="String.html#utf8">utf8</a></li><li data-type='method' style='display: none;'><a href="String.html#utf8">utf8</a></li><li data-type='method' style='display: none;'><a href="String.html#utf8decode">utf8decode</a></li><li data-type='method' style='display: none;'><a href="String.html#utf8decode">utf8decode</a></li><li data-type='method' style='display: none;'><a href="String.html#utf8encode">utf8encode</a></li><li data-type='method' style='display: none;'><a href="String.html#utf8encode">utf8encode</a></li><li data-type='method' style='display: none;'><a href="String.html#utf8need">utf8need</a></li><li data-type='method' style='display: none;'><a href="String.html#utf8need">utf8need</a></li></ul></li><li></li></ul><h3>Global</h3><ul><li><a href="global.html#ApplicationBuilderConstructor">ApplicationBuilderConstructor</a></li><li><a href="global.html#ApplicationBuilderExports">ApplicationBuilderExports</a></li><li><a href="global.html#ApplicationPrototypeConstructor">ApplicationPrototypeConstructor</a></li><li><a href="global.html#NodeInterface">NodeInterface</a></li><li><a href="global.html#RequestModuleConstructor">RequestModuleConstructor</a></li></ul>
</nav>
<div id="main">
<h1 class="page-title">constructors/request.js</h1>
<section>
<article>
<pre class="prettyprint source linenums"><code>/* jshint -W002 */
/**
* @class
* @name RequestModule
*/
/**
* @callback RequestModuleConstructor
* @returns {RequestModule}
*/
/**
* Module used for retrieving date using XMLHttpRequest
* @example
* Application.require('request').then(function (request) {
* request()
* .url('/data.json')
* .response('json')
* .then(function (data) {
* console.log(data);
* }, console.error);
* }, console.error);
* @returns {RequestModuleConstructor}
* @see RequestModule
*/
Application.require("extensions/prototype", function (epro) {
if (typeof(Application.NodeInterface) === "function") {
if (typeof(XMLHttpRequest) !== "undefined" && Application.NodeInterface()) {
if (typeof(require) === "function") {
var err;
try {
XMLHttpRequest = Application.NodeInterface().require("xmlhttprequest").XMLHttpRequest;
global.XMLHttpRequest = XMLHttpRequest;
} catch (err) {}
}
}
}
function Request() {
var app = new ApplicationPrototype();
var httpRequest = new XMLHttpRequest();
/**
* @inner
* @typedef {Object} RequestConfig
* @memberof RequestModule
* @property {boolean} [method="GET"]
* @property {boolean} [url="#"]
* @property {boolean} [async=true]
* @property {boolean} [opened=false]
* @property {boolean} [isSent=false]
* @property {boolean} [isLoaded=false]
* @property {boolean} [isUploaded=false]
* @property {boolean} [ignoreStatusCode=false]
* @property {boolean} [ignoreStatusCode=false]
* @property {string|null} [basicAuthUsername]
* @property {string|null} [basicAuthPassword]
* @property {Object<string, string>} [headers]
*/
var config = {
method : "GET",
url : "#",
async : true,
opened : false,
isSent : false,
isLoaded: false,
isUploaded: false,
ignoreStatusCode : false,
BasicAuthUsername: null,
BasicAuthPassword: null,
headers: {}
};
/**
* @typedef {object} RequestModule.readyStateType
* @property {number} [READY_STATE_UNSENT=0]
* @property {number} [READY_STATE_OPENED=1]
* @property {number} [READY_STATE_HEADERS_RECEIVED=2]
* @property {number} [READY_STATE_LOADING=3]
* @property {number} [READY_STATE_DONE=4]
*/
var configurator = {
"ignore-status-code" : function () {
config.ignoreStatusCode = true;
},
"check-status-code" : function () {
config.ignoreStatusCode = false;
},
"prepare-json" : function () {
httpRequest.setRequestHeader('Accept', 'application/json');
httpRequest.setRequestHeader('Content-Type', 'application/json');
},
"prepare-post" : function () {
httpRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
},
"retrieve-binary-string" : function () {
httpRequest.overrideMimeType("text/plain; charset=x-user-defined");
httpRequest.responseType = "arraybuffer";
},
"retrieve-blob" : function () {
httpRequest.responseType = "blob";
},
"prepare-multipart" : function () {
config.sBoundary = config.sBoundary || epro.fn.getRandId().toHex();
httpRequest.setRequestHeader("Content-Type", "multipart\/form-data; boundary=" + config.sBoundary);
},
"POST" : "prepare-post",
"binary" : "retrieve-binary-string",
"blob" : "retrieve-blob",
"multipart" : "prepare-multipart"
};
/**
* @method config
* @memberof RequestModule#
* @returns {RequestModule.RequestConfig}
*/
app.bind("config", function () {
return config;
});
/**
* @method configurator
* @memberof RequestModule#
* @param {('multipart'|'blob'|'binary'|'POST'|'prepare-multipart'|'retrieve-blob'|'retrieve-binary-string'|'prepare-post'|'check-status-code'|'ignore-status-code')} template configuration name
* @returns {RequestModule}
*/
app.bind("configurator", function (template) {
var f = function (template) {
if (typeof(configurator[template]) === "string") {
return f(configurator[template]);
} else if (typeof(configurator[template]) === "function") {
return configurator[template];
}
};
var configTemplate = f(template);
if (typeof(configTemplate) === "function") {
configTemplate();
}
return app;
});
// events for download
httpRequest.addEventListener("progress", function (evt) {
if (evt.lengthComputable && evt.total) {
var percentComplete = evt.loaded / evt.total;
app.emit("progress", [evt, percentComplete]);
} else {
app.emit("progress", [evt]);
}
});
httpRequest.addEventListener("load", function (evt) {
app.emit("load", [evt]);
});
httpRequest.addEventListener("loadend", function (evt) {
config.isLoaded = true;
app.emit("loadend", [evt]);
});
httpRequest.addEventListener("error", function (evt) {
app.emit("error", [evt]);
});
httpRequest.addEventListener("abort", function (evt) {
app.emit("abort", [evt]);
});
// events for upload
if (httpRequest.upload) {
httpRequest.upload.addEventListener("progress", function (evt) {
if (evt.lengthComputable && evt.total) {
var percentComplete = evt.loaded / evt.total;
app.emit("upload-progress", [evt, percentComplete]);
} else {
app.emit("upload-progress", [evt]);
}
});
httpRequest.upload.addEventListener("load", function (evt) {
app.emit("upload-load", [evt]);
});
httpRequest.upload.addEventListener("error", function (evt) {
app.emit("upload-error", [evt]);
});
httpRequest.upload.addEventListener("abort", function (evt) {
app.emit("upload-abort", [evt]);
});
httpRequest.upload.addEventListener("loadend", function (evt) {
config.isUploaded = true;
app.emit("upload-loadend", [evt]);
});
}
/**
* @method request
* @memberof RequestModule#
* @returns {XMLHttpRequest}
*/
app.bind("request", function () { return httpRequest; }, "");
/**
* @method response
* @memberof RequestModule#
* @param {(''|'request'|'blob'|'arraybuffer'|'text'|'json'|'document')} [type]
* @param {object} [options]
* @param {string} [options.type="application/octet-stream"] Blob constructor's params
* @returns {(RequestModule|Promise<ArrayBuffer>|Promise<Blob>|Promise<HTMLElement>|Promise<DocumentFragment>|Promise<string>|ArrayBuffer|Blob|HTMLElement|string)}
*/
app.bind("response", function (type, params) {
var er, err, data, node;
if (typeof(type) === "undefined") {
return httpRequest.response;
} else {
if (!config.isSent) {
app.send();
}
if (!config.isLoaded) {
return new Application.Promise(function (resolve, reject) {
app.on("loadend", function () {
var result = app.response(type, params);
result.then(function (data) {
resolve(data);
}, function (er) {
er.httpRequest = app;
reject(er);
});
});
app.on("error", function (er) {
er.httpRequest = app;
reject(er);
});
});
}
var response = Application.Promise(), reader;
if (!config.ignoreStatusCode && (httpRequest.status < 200 || httpRequest.status >= 300)) {
response.reject(Error('Status ' + httpRequest.status + ': ' + httpRequest.statusText));
} else if (type === "request") {
response.resolve(app);
} else if (type === "response") {
response.resolve(httpRequest.response);
} else if (httpRequest.responseType === "arraybuffer") {
switch (type) {
case "blob":
response.resolve(new Blob(
[httpRequest.response],
params || {type: "application/octet-stream"}
));
break;
case "json":
data = undefined;
er = undefined;
try {
data = JSON.parse(httpRequest.response.toStringUtf8());
response.resolve(data);
} catch (err) { er = err; }
if (typeof(er) !== "undefined") {
response.reject(er);
}
break;
case "document":
node = document.createElement("div");
node.innerHTML = httpRequest.response.toStringUtf8();
response.resolve(node);
break;
case "text":
response.resolve(httpRequest.response.toStringUtf8());
break;
case "arraybuffer":
response.resolve(httpRequest.response);
break;
}
} else if (httpRequest.responseType === "blob") {
switch (type) {
case "blob":
response.resolve(httpRequest.response);
break;
case "json":
httpRequest.response.toArrayBuffer(function (er, data) {
if (typeof(er) !== "undefined") {
response.reject(er);
} else {
var str = data.toStringUtf8();
data = undefined;
er = undefined;
try {
data = JSON.parse(str);
response.resolve(data);
} catch (err) { er = err; }
if (typeof(er) !== "undefined") {
response.reject(er);
}
}
});
break;
case "document":
httpRequest.response.toArrayBuffer(function (er, data) {
if (typeof(er) !== "undefined") {
response.reject(er);
} else {
var node = document.createElement("div");
node.innerHTML = data.toStringUtf8();
response.resolve(node);
}
});
break;
case "text":
httpRequest.response.toArrayBuffer(function (er, data) {
if (typeof(er) !== "undefined") {
response.reject(er);
} else {
response.resolve(data.toStringUtf8());
}
});
break;
case "arraybuffer":
httpRequest.response.toArrayBuffer(function (er, data) {
if (typeof(er) !== "undefined") {
response.reject(er);
} else {
response.resolve(data);
}
});
break;
}
} else {
switch (type) {
case "blob":
response.resolve(new Blob([httpRequest.response], (params || { type: "application/octet-stream" })));
break;
case "json":
var str = httpRequest.response;
data = undefined;
er = undefined;
try {
data = JSON.parse(str);
response.resolve(data);
} catch (err) { er = err; }
if (typeof(er) !== "undefined") {
response.reject(er);
}
break;
case "document":
node = document.createElement("div");
node.innerHTML = httpRequest.response;
response.resolve(node);
break;
case "text":
response.resolve(httpRequest.response);
break;
case "arraybuffer":
response.resolve(httpRequest.response.toArrayBufferFromUtf8());
break;
}
}
return new Application.Promise(function (resolve, reject) {
response.then(function (data) {
if (httpRequest.status >= 200 && httpRequest.status < 300 || config.ignoreStatusCode) {
resolve(data);
} else {
var er = Error(
httpRequest.statusText ?
('Status '+ httpRequest.status + ': ' + httpRequest.statusText) :
("Response Status is " + httpRequest.status)
);
er.httpRequest = app;
er.httpResponse = data;
reject(er);
}
}, function (er) {
er.httpRequest = app;
reject(er);
});
});
}
}, "");
/**
* current XMLHttpRequest timeout in seconds
* @method timeout
* @memberof RequestModule#
* @returns {number}
*/
/**
* update XMLHttpRequest timeout in seconds
* @method timeout
* @memberof RequestModule#
* @param {number} seconds set 0 to unlimited
* @returns {RequestModule}
*/
app.bind("timeout", function (seconds) {
if (typeof(seconds) === "number") {
httpRequest.timeout = seconds || 0;
return app;
}
return httpRequest.timeout || 0;
});
/**
* current XMLHttpRequest withCredentials status
* @method withCredentials
* @memberof RequestModule#
* @returns {boolean}
*/
/**
* update XMLHttpRequest withCredentials flag
* @method withCredentials
* @memberof RequestModule#
* @param {boolean} status
* @returns {RequestModule}
*/
app.bind("withCredentials", function (status) {
if (typeof(status) === "boolean") {
httpRequest.withCredentials = !!status;
return app;
}
return !!httpRequest.withCredentials;
});
/**
* Client has been created. open() not called yet.
* @alias RequestModule.READY_STATE_UNSENT
* @type {number}
* @default 0
*/
app.READY_STATE_UNSENT = 0;
/**
* open() has been called.
* @alias RequestModule.READY_STATE_OPENED
* @type {number}
* @default 1
*/
app.READY_STATE_OPENED = 1;
/**
* send() has been called, and headers and status are available.
* @alias RequestModule.READY_STATE_HEADERS_RECEIVED
* @type {number}
* @default 2
*/
app.READY_STATE_HEADERS_RECEIVED = 2;
/**
* Downloading; responseText holds partial data.
* @alias RequestModule.READY_STATE_LOADING
* @type {number}
* @default 3
*/
app.READY_STATE_LOADING = 3;
/**
* Downloading is done
* @alias RequestModule.READY_STATE_DONE
* @type {number}
* @default 4
*/
app.READY_STATE_DONE = 4;
/**
* @method readyState
* @memberof RequestModule#
* @returns {RequestModule.readyStateType}
*/
app.bind("readyState", function (int) {
return httpRequest.readyState;
});
httpRequest.onreadystatechange = function () {
app.emit('onReadyState', [httpRequest.readyState, httpRequest.status]);
};
/**
* @method status
* @memberof RequestModule#
* @returns {number}
*/
app.bind("status", function (int) {
return httpRequest.status;
});
/**
* @method statusText
* @memberof RequestModule#
* @returns {string}
*/
app.bind("statusText", function (int) {
return httpRequest.statusText;
});
/**
* returns `RequestModule.RequestConfig["async"]`
* @method async
* @memberof RequestModule#
* @returns {boolean}
* @see RequestModule.RequestConfig
*/
/**
* @method async
* @memberof RequestModule#
* @param {boolean} status enable/disable XMLHttpRequest async mode
* @returns {RequestModule}
*/
app.bind("async", function (bool) {
if (typeof(bool) !== "undefined") {
config.async = !!bool;
return app;
}
return config.async;
});
/**
* returns `RequestModule.RequestConfig["method"]`
* @method method
* @memberof RequestModule#
* @returns {string}
* @see RequestModule.RequestConfig
*/
/**
* @method method
* @memberof RequestModule#
* @param {string} status XMLHttpRequest method name, default is `"GET"`
* @returns {RequestModule}
*/
app.bind("method", function (method) {
if (typeof(method) === "string") {
config.method = method;
return app;
}
return config.method;
});
/**
* returns `RequestModule.RequestConfig["url"]`
* @method url
* @memberof RequestModule#
* @returns {string}
* @see RequestModule.RequestConfig
*//**
* @memberof RequestModule#
* @method url
* @param {string} url setup the url that should be processed
* @returns {RequestModule}
*/
app.bind("url", function (url) {
if (typeof(url) === "string") {
config.url = url;
return app;
}
return config.url;
});
/**
* @method basicAuth
* @memberof RequestModule#
* @returns {{username: string, password: string}}
* @see RequestModule.RequestConfig
*//**
* @memberof RequestModule#
* @method basicAuth
* @param {string|null} username
* @param {string|null} password
* @returns {RequestModule}
*/
app.bind("basicAuth", function (username, password) {
if (typeof(username) === "string") {
config.BasicAuthUsername = username;
config.BasicAuthPassword = password;
return app;
}
if (username === null) {
config.BasicAuthUsername = null;
config.BasicAuthPassword = null;
return app;
}
return {
username: config.BasicAuthUsername,
password: config.BasicAuthPassword
};
});
/**
* @method open
* @memberof RequestModule#
* @param {string} [method="GET"]
* @param {string} [url]
* @param {boolean} [async]
* @param {number} [timeout] request timeout in seconds
* @returns {RequestModule}
*/
app.bind("open", function (method, url, async, timeout, username, password) {
if (method && typeof(url) === "undefined" && typeof(async) === "undefined") {
url = method;
method = undefined;
}
app.timeout(timeout);
config.opened = true;
if (typeof(username) === "string" || typeof(config.BasicAuthUsername) === "string") {
httpRequest.open(
method || config.method,
url || config.url,
async || config.async,
username || config.BasicAuthUsername,
password || config.BasicAuthPassword || ''
);
} else {
httpRequest.open(method || config.method, url || config.url, async || config.async);
}
return app;
});
/**
* @method send
* @memberof RequestModule#
* @param {string|FormData|MediaStream} [data='']
* @param {("asFormData"|"json"|"urlencoded")} [type=null]
* @param {Object<string,string>} [headers]
* @returns {RequestModule}
*/
app.bind("send", function (data, type, headers) {
if (!config.opened) {
app.open();
}
if (config.isSent) {
console.warn("Error: the request is sended twice", app, app.request());
return app;
}
var header;
var _headers = Object.assign({}, config.headers || {}, headers || {});
for (header in _headers) {
httpRequest.setRequestHeader(header, _headers[header]);
}
config.headers = {};
config.isSent = true;
if (type === "asFormData") {
app.configurator("multipart");
// convert data to form data
var fData = new FormData();
var i;
for (i in data) {
fData.append(i, data[i]);
}
httpRequest.send(fData);
} else if (type === "json") {
app.configurator("prepare-json");
httpRequest.send(JSON.stringify(data));
} else {
if (type === "urlencoded") {
app.configurator("prepare-post");
}
httpRequest.send(typeof(data) === "undefined" ? null : data);
}
return app;
});
/**
* @method headers
* @memberof RequestModule#
* @returns {string}
*/
app.bind("headers", function () {
return httpRequest.getAllResponseHeaders();
});
/**
* set a new header
* @method headers
* @memberof RequestModule#
* @param {string} name
* @param {string} value
* @returns {RequestModule}
*/
app.bind("header", function (name, value) {
if (config.opened) {
httpRequest.setRequestHeader(name, value);
} else {
config.headers[name] = value;
}
return app;
});
return app;
};
module.exports = Request;
});</code></pre>
</article>
</section>
</div>
<br class="clear">
<footer>
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.5</a> using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
</footer>
<script>prettyPrint();</script>
<script src="scripts/polyfill.js"></script>
<script src="scripts/linenumber.js"></script>
<script src="scripts/search.js" defer></script>
<script src="scripts/collapse.js" defer></script>
<script src="https://sgapps.io/components/sgapps-labs-examples/toolbar/loader.js"></script>
</body>
</html>