New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

posterior

Package Overview
Dependencies
Maintainers
1
Versions
39
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

posterior - npm Package Compare versions

Comparing version 0.11.0 to 0.12.0

2

bower.json
{
"name": "posterior",
"version": "0.11.0",
"version": "0.12.0",
"main": "dist/posterior.js",

@@ -5,0 +5,0 @@ "description": "Hierarchical configuration of JSON XHR communication for your APIs",

@@ -5,3 +5,3 @@ {

"description": "Hierarchical configuration of JSON XHR communication for your APIs",
"version": "0.11.0",
"version": "0.12.0",
"keywords": [

@@ -8,0 +8,0 @@ "JSON",

@@ -1,2 +0,2 @@

/*! posterior - v0.11.0 - 2015-08-05
/*! posterior - v0.12.0 - 2015-08-08
* http://esha.github.io/posterior/

@@ -344,17 +344,14 @@ * Copyright (c) 2015 ESHA Research; Licensed MIT, GPL */

API.main = function(fn, data) {
if (fn.cfg.sharedResult) {
return Promise.resolve(fn.cfg.sharedResult);
if (fn.cfg.savedResult) {
return Promise.resolve(fn.cfg.savedResult);
}
var cfg = API.getAll(fn.cfg);
cfg.data = data;
API.process(cfg, data);
var deps = cfg.requires,
promise = deps ?
Promise.all(deps.map(API.require.bind(cfg))).then(function() {
return XHR(cfg);
}) :
XHR(cfg);
if (cfg.shareResult) {
var promise = API.promise(cfg, fn);
if (cfg.saveResult) {
promise.then(function(result) {
fn.cfg.sharedResult = result;
fn.cfg.savedResult = result;
});

@@ -365,2 +362,35 @@ }

API.promise = function(cfg, fn) {
var deps = cfg.requires;
return deps ?
Promise.all(deps.map(API.require.bind(cfg))).then(function() {
return API.follow(cfg, fn);
}) :
API.follow(cfg, fn);
};
API.follow = function(cfg, fn) {
if (cfg.follows) {
var follows = cfg.follows,
leader;
if (typeof follows === "object") {
leader = follows.source;
follows = follows.path;
}
if (!leader) {
leader = fn.cfg._parent._fn;
}
if (leader) {
return leader().then(function following(resource) {
cfg.url = follows && eval('resource.'+follows) || resource;
return XHR(cfg);
});
} else {
return Promise.reject("Cannot follow link relation without a parent function.");
}
} else {
return XHR(cfg);
}
};
API.require = function(req) {

@@ -367,0 +397,0 @@ try {

@@ -1,4 +0,4 @@

/*! posterior - v0.11.0 - 2015-08-05
/*! posterior - v0.12.0 - 2015-08-08
* http://esha.github.io/posterior/
* Copyright (c) 2015 ESHA Research; Licensed MIT, GPL */
!function(D,store){"use strict";var Posterior=window.Posterior=function(a,b){return Posterior.api(a,b)},XHR=Posterior.xhr=function(a){return XHR.main(a)},htmlClass=D.documentElement.classList;XHR.ctor=XMLHttpRequest,XHR.main=function(a){var b,c;return a.cache&&(b=store(XHR.key(a)),b&&(c=Promise.resolve(b))),c||(b=new XHR.ctor,XHR.config(b,a),c=XHR.promise(b,a),a.cache&&c.then(function(){XHR.cache(b)})),a.then&&(c=c.then(a.then)),a["catch"]&&(c=c["catch"](a["catch"])),c.xhr=b,c},XHR.config=function(a,b){a.open(XHR.method(b),XHR.url(b),"async"in b?b.async:!0,b.username,b.password),a.cfg=b,b.xhr=a;for(var c in b){var d=b[c];c in a&&(a[c]=d),"function"==typeof d&&a.addEventListener(c,d.bind(a))}if(b.mimeType&&a.overrideMimeType(b.mimeType),b.requestedWith!==!1&&a.setRequestHeader("X-Requested-With",b.requestedWith||"XMLHttpRequest"),b.json!==!1){try{a.responseType="json"}catch(e){}a.setRequestHeader("Accept","application/json"),a.setRequestHeader("Content-Type","application/json")}if(b.headers)for(var f in b.headers)a.setRequestHeader(f,b.headers[f])},XHR.method=function(a){return XHR.methodMap[a.method]||a.method||"GET"},XHR.methodMap={PATCH:"POST"},XHR.url=function(a){for(var b,c=a.url;b!==c;)b=c,c=c.replace(/([\/\?\&]|^)[^\/\.\?\&]+[\/\?\&]?\.\.([\/\?\&]?)/,"$1");return c},XHR.promise=function(a,b){return new Promise(function(c,d){var e=function(c){b.retry?XHR.retry(b,b.retry,f,e):d(a.error=c)},f={error:e,timeout:e,loadstart:XHR.start,loadend:XHR.end,load:XHR.load(b,c,e)};XHR.run(a,b,f,e)})},XHR.retry=function(a,b,c,d){"object"!=typeof b&&(b=a.retry={}),b.wait="wait"in b?b.wait:1e3,b.limit="limit"in b?b.limit:3,b.count="count"in b?b.count:0,b.limit>b.count++&&setTimeout(function(){var b=new XHR.ctor;XHR.config(b,a),XHR.run(b,a,c,d)},b.wait*=2)},XHR.run=function(a,b,c,d){for(var e in c)a.addEventListener(e,c[e]);try{a.send(XHR.data(b))}catch(f){d(f)}},XHR.load=function(a,b,c){return function(){try{var d=a.xhr,e=a[d.status]||d.status;if("function"==typeof e&&(e=e(d)||d.status),e>=200&&300>e){a.json!==!1&&"object"!=typeof d.response&&XHR.forceJSONResponse(d);var f=d.responseType?d.response:a.json!==!1?d.responseObject:d.responseText;if(a.responseData&&XHR.isData(f)){var g=a.responseData.call(d,f);f=void 0===g?f:g}b(XHR.isData(f)?f:d)}else c(e)}catch(h){c(h)}}},XHR.forceJSONResponse=function(a){try{delete a.response,Object.defineProperty(a,"response",{value:a.responseObject,enumerable:!0,configurable:!0})}catch(b){}},XHR.isData=function(a){return!(void 0===a||""===a)},XHR.data=function(a){var b=a.data;if(a.requestData&&XHR.isData(b)){var c=a.requestData(b);b=void 0===c?b:c}return void 0!==b&&"string"!=typeof b&&(b=JSON.stringify(b)),b||""},XHR.properties={responseObject:{get:function(){var a=null;try{this.responseText&&(a=JSON.parse(this.responseText))}catch(b){}return null===a&&"object"==typeof this.response&&(a=this.response),Object.defineProperty(this,"responseObject",{value:a}),a},enumerable:!0,configurable:!0},responseHeaders:{get:function(){for(var a,b={},c=this.getAllResponseHeaders().trim().split("\n"),d=0,e=c.length;e>d;d++)if(a=c[d]){var f=a.match(/^([\w\-]+):(.*)/);3===f.length&&(b[f[1]]=f[2].trim())}return Object.defineProperty(this,"responseHeaders",{value:b}),b},enumerable:!0,configurable:!0}},Object.defineProperties(XMLHttpRequest.prototype,XHR.properties),XHR.active=0,XHR.activeClass="xhr-active",XHR.start=function(){XHR.active++,htmlClass.add(XHR.activeClass)},XHR.end=function(){--XHR.active||htmlClass.remove(XHR.activeClass)},XHR.key=function(a){return XHR.url(a)+"|"+XHR.method(a)+"|"+XHR.data(a)},XHR.cache=function(a){var b=a.cfg;return store(XHR.key(b),XHR.safeCopy(a),b.cache),a},XHR.safeCopy=function(a,b){var c={};if(b=b||[],b.indexOf(a)<0){b.push(a);for(var d in a)try{var e=a[d],f=typeof e;"function"===f?e=void 0:"object"===f&&(e=XHR.safeCopy(e,b)),void 0!==e&&(c[d]=e)}catch(g){}return c}};var API=Posterior.api=function(a,b){var c=a.parent||null;return c&&c.cfg&&(c=c.cfg),API.build(a,c,b)};API.build=function(a,b,c){var d=function(a){return API.main(d,a)},e={_fn:d,_parent:b,_private:{},name:c||"Posterior"};(a.debug||API.get(e,"debug"))&&(d=e._fn=API.debug(e.name,d));for(var f in a)API.set(e,f,a[f],e.name),API.getter(d,f);return d.cfg=e,d.config=API.config,d.extend=API.extend,API.get(e,"auto")&&setTimeout(d,0),d},API.extend=function(a,b){return API.build(a,this.cfg,b)},API.main=function(a,b){if(a.cfg.sharedResult)return Promise.resolve(a.cfg.sharedResult);var c=API.getAll(a.cfg);c.data=b,API.process(c,b);var d=c.requires,e=d?Promise.all(d.map(API.require.bind(c))).then(function(){return XHR(c)}):XHR(c);return c.shareResult&&e.then(function(b){a.cfg.sharedResult=b}),e},API.require=function(req){try{return"string"==typeof req&&(req=eval("window."+req)),"function"==typeof req&&(req=req()||req),req?Promise.resolve(req):Promise.reject(req)}catch(e){return Promise.reject(e)}},API.config=function(a,b){return a?void 0===b?API.get(this.cfg,a):API.set(this.cfg,a,b):API.getAll(this.cfg)},API.process=function(a){a.configure&&a.configure(a);for(var b in a){var c=a[b];"string"==typeof c&&(c=a[b]=API.fill(c,a,a.data))}},API.fill=function(a,b,c){c=c||{};for(var d,e=a,f=/\$?\{([^}]+)\}/g;d=f.exec(a);){d=d[1];var g=c[d];(null===g||void 0===g)&&(g=d in b?b[d]:""),e=e.replace(new RegExp("\\$?\\{"+d+"}"),g),b.consumeData!==!1&&delete c[d]}return e},API.getAll=function(a,b){var c=a._parent?API.getAll(a._parent,!0):{};return API.copy(c,a),b||API.copy(c,a._private),c},API.copy=function(a,b){for(var c in b)"_"!==c.charAt(0)&&("!"===c.charAt(0)?a[c.substring(1)]=b[c]:a[c]=API.combine(a[c],b[c],a))},API.get=function(a,b,c){var d=a._private,e="!"+b;if(!c&&e in d)return d[e];if(e in a)return a[e];var f=c?a[b]:API.combine(a[b],d[b],a);return a._parent?API.combine(API.get(a._parent,b,!0),f,a):f},API.getter=function(a,b){try{Object.defineProperty(a,b,{get:function(){return API.get(a.cfg,b)},configurable:!0})}catch(c){}},API.set=function(a,b,c,d){var e=a._fn,f=d+("."===b.charAt(0)?"":".")+b;"function"==typeof c&&API.get(a,"debug")&&(c=API.debug(f,c)),"."===b.charAt(0)?e[b.substring(1)]=c:"@"===b.charAt(0)?e[b.substring(1)]=API.build(c,a,f):"_"===b.charAt(0)?a._private[b.substring(1)]=c:a[b]=c},API.debug=function(a,b){var c=window.console,d=Array.prototype.concat;return function(e){try{var f=[a+"("];f.push.apply(f,arguments),f.push(")");var g=b.apply(this,arguments);return void 0!==g&&g!==e&&c.debug.apply(c,[a,"->",g]),g}catch(h){var f=d.apply([a,h],arguments);throw c.error.apply(c,f),h}}},API.combine=function(a,b,c){var d=API.type(a),e=API.type(b);return e?d?e!==d?"function"===d?a.call(c,b):"function"===e?b.call(c,a):"array"===d?a.concat(b):"array"===e?[].concat.apply([a],b):a+b:"function"===e?API.combineFn(a,b):"object"===e?API.combineObject(a,b):"array"===e?a.concat.apply(a,b):"boolean"===e?a&&b:a+b:b:a},API.combineFn=function(a,b){return function(c){var d=a.call(this,c);return d=b.call(this,void 0===d?c:d),void 0===d?c:d}},API.combineObject=function(a,b){var c={};for(var d in a)c[d]=a[d];for(d in b)c[d]=b[d];return c},API.type=function(a){var b=typeof a;return"object"===b?Array.isArray(a)?"array":a?b:null:"undefined"===b?null:b},Posterior.version=""}(document,window.store||function(){});
!function(D,store){"use strict";var Posterior=window.Posterior=function(a,b){return Posterior.api(a,b)},XHR=Posterior.xhr=function(a){return XHR.main(a)},htmlClass=D.documentElement.classList;XHR.ctor=XMLHttpRequest,XHR.main=function(a){var b,c;return a.cache&&(b=store(XHR.key(a)),b&&(c=Promise.resolve(b))),c||(b=new XHR.ctor,XHR.config(b,a),c=XHR.promise(b,a),a.cache&&c.then(function(){XHR.cache(b)})),a.then&&(c=c.then(a.then)),a["catch"]&&(c=c["catch"](a["catch"])),c.xhr=b,c},XHR.config=function(a,b){a.open(XHR.method(b),XHR.url(b),"async"in b?b.async:!0,b.username,b.password),a.cfg=b,b.xhr=a;for(var c in b){var d=b[c];c in a&&(a[c]=d),"function"==typeof d&&a.addEventListener(c,d.bind(a))}if(b.mimeType&&a.overrideMimeType(b.mimeType),b.requestedWith!==!1&&a.setRequestHeader("X-Requested-With",b.requestedWith||"XMLHttpRequest"),b.json!==!1){try{a.responseType="json"}catch(e){}a.setRequestHeader("Accept","application/json"),a.setRequestHeader("Content-Type","application/json")}if(b.headers)for(var f in b.headers)a.setRequestHeader(f,b.headers[f])},XHR.method=function(a){return XHR.methodMap[a.method]||a.method||"GET"},XHR.methodMap={PATCH:"POST"},XHR.url=function(a){for(var b,c=a.url;b!==c;)b=c,c=c.replace(/([\/\?\&]|^)[^\/\.\?\&]+[\/\?\&]?\.\.([\/\?\&]?)/,"$1");return c},XHR.promise=function(a,b){return new Promise(function(c,d){var e=function(c){b.retry?XHR.retry(b,b.retry,f,e):d(a.error=c)},f={error:e,timeout:e,loadstart:XHR.start,loadend:XHR.end,load:XHR.load(b,c,e)};XHR.run(a,b,f,e)})},XHR.retry=function(a,b,c,d){"object"!=typeof b&&(b=a.retry={}),b.wait="wait"in b?b.wait:1e3,b.limit="limit"in b?b.limit:3,b.count="count"in b?b.count:0,b.limit>b.count++&&setTimeout(function(){var b=new XHR.ctor;XHR.config(b,a),XHR.run(b,a,c,d)},b.wait*=2)},XHR.run=function(a,b,c,d){for(var e in c)a.addEventListener(e,c[e]);try{a.send(XHR.data(b))}catch(f){d(f)}},XHR.load=function(a,b,c){return function(){try{var d=a.xhr,e=a[d.status]||d.status;if("function"==typeof e&&(e=e(d)||d.status),e>=200&&300>e){a.json!==!1&&"object"!=typeof d.response&&XHR.forceJSONResponse(d);var f=d.responseType?d.response:a.json!==!1?d.responseObject:d.responseText;if(a.responseData&&XHR.isData(f)){var g=a.responseData.call(d,f);f=void 0===g?f:g}b(XHR.isData(f)?f:d)}else c(e)}catch(h){c(h)}}},XHR.forceJSONResponse=function(a){try{delete a.response,Object.defineProperty(a,"response",{value:a.responseObject,enumerable:!0,configurable:!0})}catch(b){}},XHR.isData=function(a){return!(void 0===a||""===a)},XHR.data=function(a){var b=a.data;if(a.requestData&&XHR.isData(b)){var c=a.requestData(b);b=void 0===c?b:c}return void 0!==b&&"string"!=typeof b&&(b=JSON.stringify(b)),b||""},XHR.properties={responseObject:{get:function(){var a=null;try{this.responseText&&(a=JSON.parse(this.responseText))}catch(b){}return null===a&&"object"==typeof this.response&&(a=this.response),Object.defineProperty(this,"responseObject",{value:a}),a},enumerable:!0,configurable:!0},responseHeaders:{get:function(){for(var a,b={},c=this.getAllResponseHeaders().trim().split("\n"),d=0,e=c.length;e>d;d++)if(a=c[d]){var f=a.match(/^([\w\-]+):(.*)/);3===f.length&&(b[f[1]]=f[2].trim())}return Object.defineProperty(this,"responseHeaders",{value:b}),b},enumerable:!0,configurable:!0}},Object.defineProperties(XMLHttpRequest.prototype,XHR.properties),XHR.active=0,XHR.activeClass="xhr-active",XHR.start=function(){XHR.active++,htmlClass.add(XHR.activeClass)},XHR.end=function(){--XHR.active||htmlClass.remove(XHR.activeClass)},XHR.key=function(a){return XHR.url(a)+"|"+XHR.method(a)+"|"+XHR.data(a)},XHR.cache=function(a){var b=a.cfg;return store(XHR.key(b),XHR.safeCopy(a),b.cache),a},XHR.safeCopy=function(a,b){var c={};if(b=b||[],b.indexOf(a)<0){b.push(a);for(var d in a)try{var e=a[d],f=typeof e;"function"===f?e=void 0:"object"===f&&(e=XHR.safeCopy(e,b)),void 0!==e&&(c[d]=e)}catch(g){}return c}};var API=Posterior.api=function(a,b){var c=a.parent||null;return c&&c.cfg&&(c=c.cfg),API.build(a,c,b)};API.build=function(a,b,c){var d=function(a){return API.main(d,a)},e={_fn:d,_parent:b,_private:{},name:c||"Posterior"};(a.debug||API.get(e,"debug"))&&(d=e._fn=API.debug(e.name,d));for(var f in a)API.set(e,f,a[f],e.name),API.getter(d,f);return d.cfg=e,d.config=API.config,d.extend=API.extend,API.get(e,"auto")&&setTimeout(d,0),d},API.extend=function(a,b){return API.build(a,this.cfg,b)},API.main=function(a,b){if(a.cfg.savedResult)return Promise.resolve(a.cfg.savedResult);var c=API.getAll(a.cfg);c.data=b,API.process(c,b);var d=API.promise(c,a);return c.saveResult&&d.then(function(b){a.cfg.savedResult=b}),d},API.promise=function(a,b){var c=a.requires;return c?Promise.all(c.map(API.require.bind(a))).then(function(){return API.follow(a,b)}):API.follow(a,b)},API.follow=function(cfg,fn){if(cfg.follows){var follows=cfg.follows,leader;return"object"==typeof follows&&(leader=follows.source,follows=follows.path),leader||(leader=fn.cfg._parent._fn),leader?leader().then(function following(resource){return cfg.url=follows&&eval("resource."+follows)||resource,XHR(cfg)}):Promise.reject("Cannot follow link relation without a parent function.")}return XHR(cfg)},API.require=function(req){try{return"string"==typeof req&&(req=eval("window."+req)),"function"==typeof req&&(req=req()||req),req?Promise.resolve(req):Promise.reject(req)}catch(e){return Promise.reject(e)}},API.config=function(a,b){return a?void 0===b?API.get(this.cfg,a):API.set(this.cfg,a,b):API.getAll(this.cfg)},API.process=function(a){a.configure&&a.configure(a);for(var b in a){var c=a[b];"string"==typeof c&&(c=a[b]=API.fill(c,a,a.data))}},API.fill=function(a,b,c){c=c||{};for(var d,e=a,f=/\$?\{([^}]+)\}/g;d=f.exec(a);){d=d[1];var g=c[d];(null===g||void 0===g)&&(g=d in b?b[d]:""),e=e.replace(new RegExp("\\$?\\{"+d+"}"),g),b.consumeData!==!1&&delete c[d]}return e},API.getAll=function(a,b){var c=a._parent?API.getAll(a._parent,!0):{};return API.copy(c,a),b||API.copy(c,a._private),c},API.copy=function(a,b){for(var c in b)"_"!==c.charAt(0)&&("!"===c.charAt(0)?a[c.substring(1)]=b[c]:a[c]=API.combine(a[c],b[c],a))},API.get=function(a,b,c){var d=a._private,e="!"+b;if(!c&&e in d)return d[e];if(e in a)return a[e];var f=c?a[b]:API.combine(a[b],d[b],a);return a._parent?API.combine(API.get(a._parent,b,!0),f,a):f},API.getter=function(a,b){try{Object.defineProperty(a,b,{get:function(){return API.get(a.cfg,b)},configurable:!0})}catch(c){}},API.set=function(a,b,c,d){var e=a._fn,f=d+("."===b.charAt(0)?"":".")+b;"function"==typeof c&&API.get(a,"debug")&&(c=API.debug(f,c)),"."===b.charAt(0)?e[b.substring(1)]=c:"@"===b.charAt(0)?e[b.substring(1)]=API.build(c,a,f):"_"===b.charAt(0)?a._private[b.substring(1)]=c:a[b]=c},API.debug=function(a,b){var c=window.console,d=Array.prototype.concat;return function(e){try{var f=[a+"("];f.push.apply(f,arguments),f.push(")");var g=b.apply(this,arguments);return void 0!==g&&g!==e&&c.debug.apply(c,[a,"->",g]),g}catch(h){var f=d.apply([a,h],arguments);throw c.error.apply(c,f),h}}},API.combine=function(a,b,c){var d=API.type(a),e=API.type(b);return e?d?e!==d?"function"===d?a.call(c,b):"function"===e?b.call(c,a):"array"===d?a.concat(b):"array"===e?[].concat.apply([a],b):a+b:"function"===e?API.combineFn(a,b):"object"===e?API.combineObject(a,b):"array"===e?a.concat.apply(a,b):"boolean"===e?a&&b:a+b:b:a},API.combineFn=function(a,b){return function(c){var d=a.call(this,c);return d=b.call(this,void 0===d?c:d),void 0===d?c:d}},API.combineObject=function(a,b){var c={};for(var d in a)c[d]=a[d];for(d in b)c[d]=b[d];return c},API.type=function(a){var b=typeof a;return"object"===b?Array.isArray(a)?"array":a?b:null:"undefined"===b?null:b},Posterior.version=""}(document,window.store||function(){});

@@ -5,3 +5,3 @@ {

"description": "Hierarchical configuration of JSON XHR communication for your APIs",
"version": "0.11.0",
"version": "0.12.0",
"homepage": "http://esha.github.io/posterior/",

@@ -8,0 +8,0 @@ "author": {

@@ -27,2 +27,3 @@ [Posterior][home] Gives your backend services intuitive front-end interfaces (uses XHR, JSON, Promise) via straightforward, hierarchical, extensible configurations.

* 2015-08-05 [v0.11.0][] (support both ${key} and {key} in URL templates)
* 2015-08-08 [v0.12.0][] (s/share(d)Result/save(d)Result, and support dynamic link relations via new 'follows' property)

@@ -39,1 +40,2 @@ [v0.1.4]: https://github.com/esha/posterior/tree/0.1.4

[v0.11.0]: https://github.com/esha/posterior/tree/0.11.0
[v0.12.0]: https://github.com/esha/posterior/tree/0.12.0

@@ -63,17 +63,14 @@ /*

API.main = function(fn, data) {
if (fn.cfg.sharedResult) {
return Promise.resolve(fn.cfg.sharedResult);
if (fn.cfg.savedResult) {
return Promise.resolve(fn.cfg.savedResult);
}
var cfg = API.getAll(fn.cfg);
cfg.data = data;
API.process(cfg, data);
var deps = cfg.requires,
promise = deps ?
Promise.all(deps.map(API.require.bind(cfg))).then(function() {
return XHR(cfg);
}) :
XHR(cfg);
if (cfg.shareResult) {
var promise = API.promise(cfg, fn);
if (cfg.saveResult) {
promise.then(function(result) {
fn.cfg.sharedResult = result;
fn.cfg.savedResult = result;
});

@@ -84,2 +81,35 @@ }

API.promise = function(cfg, fn) {
var deps = cfg.requires;
return deps ?
Promise.all(deps.map(API.require.bind(cfg))).then(function() {
return API.follow(cfg, fn);
}) :
API.follow(cfg, fn);
};
API.follow = function(cfg, fn) {
if (cfg.follows) {
var follows = cfg.follows,
leader;
if (typeof follows === "object") {
leader = follows.source;
follows = follows.path;
}
if (!leader) {
leader = fn.cfg._parent._fn;
}
if (leader) {
return leader().then(function following(resource) {
cfg.url = follows && eval('resource.'+follows) || resource;
return XHR(cfg);
});
} else {
return Promise.reject("Cannot follow link relation without a parent function.");
}
} else {
return XHR(cfg);
}
};
API.require = function(req) {

@@ -86,0 +116,0 @@ try {

@@ -306,3 +306,3 @@ (function() {

var backend = new Posterior({ shareResult: true, url: './index.html' });
var backend = new Posterior({ saveResult: true, url: './index.html' });
backend().then(function(result, fake) {

@@ -322,2 +322,53 @@ ok(fake, "is fake promise");

test('API.follows', function() {
expect(5);// 2 calls to fake XHR.main, 2 calls to source fn
// fake XHR.main and promises to allow synchronous resolution
var XHR = Posterior.xhr,
XHRmain = XHR.main;
function FakeResolvedPromise(value) {
this.value = value;
}
FakeResolvedPromise.prototype.then = function(fn) {
var val = fn(this.value, true);
return new FakeResolvedPromise(val);
};
XHR.main = function(cfg) {
equal(cfg.url, "/related/type", 'got link relation as URL');
};
var service = function() {
ok(true, 'called service fn');
return new FakeResolvedPromise({ _links: { type: { href: '/related/type' }}});
};
// test non-heirarchical source
API.follow({
follows: {
source: service,
path: '_links.type.href'
}
});
// test heirarchical source
API.follow({
follows: '_links.type.href'
}, {
cfg:{ _parent:{ _fn: service }}
});
// test direct URL result
API.follow({
follows: {
source: function() {
return new FakeResolvedPromise("/related/type");
}
}
});
// restore proper main function
XHR.main = XHRmain;
});
}());

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc