rest-gen 0.16.0.2 → 0.16.0.3
raw patch · 4 files changed
+21/−10 lines, 4 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
Files
- CHANGELOG.md +4/−0
- files/Javascript/base.js +10/−5
- rest-gen.cabal +1/−1
- src/Rest/Gen/JavaScript.hs +6/−4
CHANGELOG.md view
@@ -1,5 +1,9 @@ # Changelog +#### 0.16.0.3++* JavaScript/node.js: Each instance of a client now uses its own cookie jar automatically. You no longer need to depend on the `request` library to use generated clients. If you want access to the cookie jar use `api.cookieJar`.+ #### 0.16.0.2 * Allow haskell-src-exts 1.16.*
files/Javascript/base.js view
@@ -1,14 +1,17 @@+var isNodeJs = typeof module === "object" && module && typeof module.exports === "object";+ var $apinamespace$ = function (url, secureUrl) { var postfix = '/v' + this.version + '/'; var contextUrl = url + postfix; var secureContextUrl = (secureUrl || url.replace(/^http:/, "https:")) + postfix;+ var cookieJar = isNodeJs ? require('request').jar() : undefined; - $apinamespace$.setContext(this, contextUrl, secureContextUrl);+ $apinamespace$.setContext(this, contextUrl, secureContextUrl, cookieJar); }; -if (typeof module === "object" && module && typeof module.exports === "object")+if (isNodeJs) { // Export as Node module. module.exports = $apinamespace$;@@ -62,7 +65,7 @@ return q($dollar$.ajax(callData)); } -function nodeRequest (method, url, params, onSuccess, onError, contentType, acceptHeader, data, callOpts)+function nodeRequest (method, url, params, onSuccess, onError, contentType, acceptHeader, data, callOpts, cookieJar) { var allParams = {}; $apinamespace$.addObject(allParams, params);@@ -82,6 +85,7 @@ , qs : allParams , method : method , headers : headers+ , jar : cookieJar ? cookieJar : undefined }; if (data) callData.body = data;@@ -140,16 +144,17 @@ } $apinamespace$.setContext =- function (obj, url, secureUrl)+ function (obj, url, secureUrl, cookieJar) { obj.contextUrl = url; obj.secureContextUrl = secureUrl;+ obj.cookieJar = cookieJar; for (var fld in obj) { if (obj[fld] != undefined && obj[fld].apiObjectType != undefined && obj[fld].apiObjectType == 'resourceDir') { var postfix = fld.replace(/([a-z0-9])([A-Z])/g, '$dollar$1-$dollar$2').toLowerCase() + '/';- $apinamespace$.setContext(obj[fld], url + postfix, secureUrl + postfix);+ $apinamespace$.setContext(obj[fld], url + postfix, secureUrl + postfix, cookieJar); } } };
rest-gen.cabal view
@@ -1,5 +1,5 @@ name: rest-gen-version: 0.16.0.2+version: 0.16.0.3 description: Documentation and client generation from rest definition. synopsis: Documentation and client generation from rest definition. maintainer: code@silk.co
src/Rest/Gen/JavaScript.hs view
@@ -51,10 +51,10 @@ mkAccessorConstructor :: String -> ApiResource -> Code mkAccessorConstructor ns resource = let constrName = jsDir (cleanName (resName resource))- in functionDecl constrName ["url", "secureUrl"] $+ in functionDecl constrName ["url", "secureUrl", "cookieJar"] $ jsIf (code $ "this instanceof " ++ constrName)- (proc (ns ++ ".setContext") (code "this, url, secureUrl"))- <-> jsElse (ret $ call (constrName ++ ".access") (code "url, secureUrl"))+ (proc (ns ++ ".setContext") (code "this, url, secureUrl, cookieJar"))+ <-> jsElse (ret $ call (constrName ++ ".access") (code "url, secureUrl, cookieJar")) mkPreFuncs :: String -> ApiResource -> Code mkPreFuncs ns node =@@ -83,7 +83,8 @@ in function fParams $ [ var "postfix" $ "'" ++ urlPart ++ "'" , var "accessor" $ new "this" . code $ "this.contextUrl + postfix, "- ++ "this.secureContextUrl + postfix"+ ++ "this.secureContextUrl + postfix, "+ ++ "this.cookieJar" , "accessor.get" .=. mkFunction ns node , ret "accessor" ]@@ -110,6 +111,7 @@ , string $ mOut , maybe (code "undefined") (\(p, _, f) -> f (code p)) mInp , code "callOpts"+ , code "this.cookieJar" ] resourceLoc :: String -> ApiResource -> String