react-diode
Advanced tools
Comparing version 0.4.2 to 0.5.0-0
@@ -1,39 +0,2 @@ | ||
'use strict'; | ||
var _DiodeStore = require('./store/DiodeStore'); | ||
var _DiodeStore2 = _interopRequireDefault(_DiodeStore); | ||
var _DiodeContainer = require('./container/DiodeContainer'); | ||
var _DiodeContainer2 = _interopRequireDefault(_DiodeContainer); | ||
var _DiodeRootContainer = require('./container/DiodeRootContainer'); | ||
var _DiodeRootContainer2 = _interopRequireDefault(_DiodeRootContainer); | ||
var _DiodeQueryTypes = require('./query/DiodeQueryTypes'); | ||
var _DiodeQueryTypes2 = _interopRequireDefault(_DiodeQueryTypes); | ||
var _createDiodeQuery = require('./query/createDiodeQuery'); | ||
var _DiodeQueryRequest = require('./query/DiodeQueryRequest'); | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
var DiodePublic = { | ||
Store: _DiodeStore2.default, | ||
QueryTypes: _DiodeQueryTypes2.default, | ||
createContainer: _DiodeContainer2.default.create, | ||
createRootContainer: _DiodeRootContainer2.default.create, | ||
createQuery: _createDiodeQuery.createDiodeQuery, | ||
queryRequest: _DiodeQueryRequest.createQueryRequest, | ||
waitForQuery: _DiodeQueryRequest.createPendingQueryRequest, | ||
useBatchQuery: _DiodeStore2.default.useBatchQuery.bind(_DiodeStore2.default), | ||
useMockQueries: _DiodeStore2.default.useMockQueries.bind(_DiodeStore2.default), | ||
injectNetworkLayer: _DiodeStore2.default.injectNetworkLayer.bind(_DiodeStore2.default) | ||
}; | ||
module.exports = DiodePublic; | ||
function e(e){return e&&"object"==typeof e&&"default"in e?e.default:e}var r=e(require("lodash.find")),t=e(require("react")),n=e(require("object-assign")),o=e(require("hoist-non-react-statics")),i=e(require("deep-extend"));function u(e,r,t){if(t)return r?r(e()):e();try{var n=Promise.resolve(e());return r?n.then(r):n}catch(e){return Promise.reject(e)}}function a(){}var c=function(){this._queryMockEnabled=!1};c.prototype.injectNetworkLayer=function(e){this._injectedNetworkLayer=e},c.prototype.injectQueryMockResolver=function(e){this._queryMockEnabled=!0,this._queryMockResolver=e},c.prototype.sendQueries=function(e,r){var t=this,o=e,i={},u=this._getCurrentNetworkLayer();return this._queryMockEnabled&&(o=e.filter(function(e){var r=t._queryMockResolver[e.type];if(r&&"function"==typeof r){var n=r(e);return!n||(i[e.type]=n,!1)}return!0})),u.sendQueries(o,r).then(function(e){return n(i,e)})},c.prototype._getCurrentNetworkLayer=function(){return this._injectedNetworkLayer};var p=function(e){this._variables={},this._containerQuery=e};function s(e,r){return Object.assign({},{type:e.type,fragment:e.fragment,resolve:e.resolve},r)}function f(e,r){return e.map(function(e){return function e(r,t){var n=r.callback,o=r.dependencies,i=o.map(function(e){return t[e.type]}).filter(function(e){return Boolean(e)});if(i.length===o.length){var u=s(r,n.apply(void 0,i));return u.dependencies?e(u,t):u}return r}(e,r)})}p.prototype.getContainerQuery=function(){return this._containerQuery},p.prototype.setVariables=function(e){i(this._variables,e)},p.prototype.getVariables=function(){return this._variables},p.prototype.compile=function(){var e=this,r=this._containerQuery.getQueryTypeMap();return Object.keys(r).map(function(t){var n=r[t];return n.fragment=e._compileFragmentKeys(n.fragmentStructure),n.params=e._compileFragmentKeys(n.paramsStructure),n})},p.prototype._compileFragmentKeys=function(e){var r=this;return Object.keys(e).reduce(function(t,n){var o=r._compileFragmentValue(n);return t[o]="object"==typeof e[n]&&null!==e[n]?r._compileFragmentKeys(e[n]):r._compileFragmentValue(e[n]),t},{})},p.prototype._compileFragmentValue=function(e){if("string"==typeof e&&"$"===e.charAt(0)){var r=e.slice(1),t=this._variables[r];return null==t?e:t}return e};var y={BATCH:"batch-query"};function h(e,t,o,i){return Object.keys(o).reduce(function(u,a){var c=o[a],p=r(e,{type:a});if(a===y.BATCH){var s=function(e,t,o){var i={};for(var u in e)if(e.hasOwnProperty(u)){var a=e[u],c=r(t,{type:u});"__additional"===u?n(i,{__additional:a}):a&&c&&(i[u]=(0,c.resolve)(a,c.fragment,o))}return i}(p.resolve(c,i),t,i);n(u,s)}else u[a]=p.resolve(c,p.fragment,i);return u},{})}function l(e,t,n){var o=[],i=t.queryTypes,u=t.forceMerge,a=i.map(function(t){return r(e,{type:t})}).filter(function(e){return Boolean(e)});if(a.length===i.length||u&&a.length>0){var c=function(e,r,t){return Object.assign({},{type:e.type,resolve:e.resolve},e.request(r,t))}(t,a,n);o.push(c)}else o=o.concat(a);var p=e.filter(function(e){return-1===a.indexOf(e)});return o=o.concat(p)}var v=function(){this._batchQueriesEnabled=!1,this._networkLayer=new c};v.prototype.injectNetworkLayer=function(e){this._networkLayer.injectNetworkLayer(e)},v.prototype.useMockQueries=function(e){this._networkLayer.injectQueryMockResolver(e)},v.prototype.useBatchQuery=function(e){e&&(this._batchQueryEnabled=!0,this._batchQuery=e)},v.prototype.forceFetch=function(e,r){var t=function(e,r){return e.query.compile().map(function(e){var t=e.request(e.fragment,e.params,r);return s(e,t)})}(e,r);return this._fetchQueries(t,r).then(function(r){return function(e,r){var t=r.query.getContainerQuery().map,o=Object.keys(t).reduce(function(r,n){return r[n]=e[t[n].type],r},{}),i=e.__additional;return i?n(o,{__additional:i}):o}(r,e)})},v.prototype.filterCachedFragments=function(e){var r=this.cache[e.type];if(!r)return e;var t={};return Object.keys(e.fragment).forEach(function(n){if(!r[n]){t[n]={};var o=e.fragment[n];Object.keys(o).forEach(function(e){r[n]&&r[n][e]||(t[n][e]=o[e])})}}),Object.assign({},e,{fragment:t})},v.prototype.fetch=function(e,r){var t=this;return u(function(){var n=new p(e).compile().map(function(e){var n=t.filterCachedFragments(e),o=n.fragment,i=n.params;if(0===Object.keys(o).length)return null;var u=e.request(o,i,r);return s(e,u)}).filter(Boolean);return Promise.resolve(t._fetchQueries(n,r)).then(function(e){i(t.cache,e)})})},v.prototype._fetchQueries=function(e,r){var t=this;void 0===r&&(r={});var n=e.filter(function(e){return e.dependencies}),o=e.filter(function(e){return!e.dependencies}),i=o;return this._batchQueryEnabled&&(i=l(i,this._batchQuery,r)),this._networkLayer.sendQueries(i,r).then(function(e){var u=h(i,o,e,r);if(n.length>0){var a=f(n,u);return t._fetchQueries(a,r).then(function(e){return Object.assign(u,e)})}return u})};var d=new v,m=t.createContext(null),_=function(e,r){d.cache=e,d.options=r};_.prototype.getContents=function(){return d.cache},_.prototype.getUnresolvedQueries=function(e){return Object.keys(e.map).filter(function(r){var t=d.cache[r];if(!t)return!0;var n=e.map[r];return Object.keys(n.fragmentStructure).some(function(e){var r=Object.keys(n.fragmentStructure[e]);return 0===r.length?null===t[e]:r.some(function(r){return t[e]?void 0===t[e][r]:void 0===t[e]})})})},_.prototype.hasResolved=function(e){return 0===this.getUnresolvedQueries(e).length},_.prototype.resolve=function(e){return u(function(){return Promise.resolve(d.fetch(e)).then(function(){})})};var g=function(e,r,t){this.map={},this._queryTypeMap={},this._componentName=e,this._queries=r,this._children=t||[],this._parseQueryTypeMap(r),this._mergeChildQueryTypeMap(t),this._buildFinalQueryMap(r,t)};g.prototype.getQueryTypeMap=function(){return this._queryTypeMap},g.prototype.injectChildren=function(e){this._children=this._children.concat(e),this._mergeChildQueryTypeMap(e),this._buildFinalQueryMap(this._queries,this._children)},g.prototype._parseQueryTypeMap=function(e){var r=this;null!=e&&Object.keys(e).forEach(function(t){var n=e[t],o=r._queryTypeMap[n.type];if(o){i(o.fragmentStructure,n.fragmentStructure),i(o.params,n.params)}else{if(!n.type)throw new Error("Invalid query type in query key "+t+" at component "+r._componentName);r._queryTypeMap[n.type]=n}})},g.prototype._mergeChildQueryTypeMap=function(e){var r=this;e&&e.length&&e.forEach(function(e){var t=e.query.map;null!=t&&Object.keys(t).forEach(function(e){var n=t[e],o=r._queryTypeMap[n.type];o?i(o.fragmentStructure,n.fragmentStructure):r._queryTypeMap[n.type]=n})})},g.prototype._buildFinalQueryMap=function(e,r){var t=this;e&&(this.map=Object.keys(e).reduce(function(r,n){return r[n]=t._queryTypeMap[e[n].type],r},{})),r&&r.length&&r.forEach(function(e){var r=e.query.map;Object.keys(r).forEach(function(n){var o=r[n],i=t.map[n];if(i&&i.type!==o.type)return console.warn("Different query type for same query key %s: %s (%s) and %s (%s)",n,t._componentName,i.type,e.componentName,o.type);t.map[n]=t._queryTypeMap[o.type]})})};var b=function(e){function r(){for(var r=[],t=arguments.length;t--;)r[t]=arguments[t];e.apply(this,r),this.state={error:null,loading:!0}}return e&&(r.__proto__=e),(r.prototype=Object.create(e&&e.prototype)).constructor=r,r.prototype.componentDidMount=function(){var e=this;return u(function(){var r=e.props,t=r.cache,n=r.query;if(!t.hasResolved(n))return function(e){if(e&&e.then)return e.then(a)}(function(e,r){try{var t=e()}catch(e){return r(e)}return t&&t.then?t.then(void 0,r):t}(function(){return Promise.resolve(t.resolve(n)).then(function(){e.setState({loading:!1})})},function(r){console.error("error",r),e.setState({error:r,loading:!1})}))})},r.prototype.render=function(){var e=this.props,r=e.Component,n=e.wrapper,o=e.cache,i=e.query,u=function(e,r){var t={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&-1===r.indexOf(n)&&(t[n]=e[n]);return t}(e,["Component","wrapper","cache","query"]);if(null!==this.state.error)return t.createElement("span",null,this.state.error.message);var a=!o.hasResolved(i)&&this.state.loading?null:t.createElement(r,Object.assign({},u,o.getContents()));return n?t.createElement("div",n,a):a},r}(t.Component);function q(e,r){void 0===r&&(r={});var u,a=e.displayName||e.name,c="Diode("+a+")",p=new g(a,r.queries,r.children);function s(n){return u||(u=function(e,r,n){var i="Diode("+(e.displayName||e.name)+")",u=function(o){function i(e){o.call(this,e),this.wrapperInfo=r.wrapperInfo}return o&&(i.__proto__=o),(i.prototype=Object.create(o&&o.prototype)).constructor=i,i.prototype.render=function(){var r=this,o=this.props,i=o.wrapperInfo?o.wrapperInfo:this.wrapperInfo;return t.createElement(m.Consumer,null,function(o){return t.createElement(b,Object.assign({},r.props,{Component:e,wrapper:i,query:n,cache:o}))})},i}(t.Component);return u.displayName=i,o(u,e)}(e,r,p)),new u(n)}return s.setWrapperInfo=function(e){n(r.wrapperInfo,e)},s.getWrapperInfo=function(e){return r.wrapperInfo[e]},s.getComponent=function(){return e},s.getChildren=function(){return r.children&&r.children.length?r.children:[]},s.query=i(p,e.query),s.displayName=c,s.componentName=a,o(s,e,{query:!0})}var w={Store:d,CacheProvider:m.Provider,QueryTypes:y,createCache:function(e){return new _(e)},createContainer:q,createRootContainer:function(e,r){var t=q(e,r);return t.query=new p(t.query),t},createQuery:function(e,r,t){if(void 0===t&&(t={}),"string"!=typeof e.type)throw new TypeError("Expected query definition to have query type");if("function"!=typeof e.request)throw new TypeError("Expected query definition to have .request() method");if("function"!=typeof e.resolve)throw new TypeError("Expected query definition to have .resolve() method");var n=Object.create(e);return n.fragmentStructure=r,n.paramsStructure=t,n},queryRequest:function(e,r,t,n){return void 0===n&&(n={}),{pending:!1,url:e,method:r,payload:t,headers:n}},waitForQuery:function(e,r){return e instanceof Array||(e=[e]),{pending:!0,dependencies:e,callback:r}},useBatchQuery:d.useBatchQuery.bind(d),useMockQueries:d.useMockQueries.bind(d),injectNetworkLayer:d.injectNetworkLayer.bind(d)};module.exports=w; | ||
//# sourceMappingURL=DiodePublic.js.map |
{ | ||
"name": "react-diode", | ||
"version": "0.4.2", | ||
"version": "0.5.0-0", | ||
"description": "Endpoint agnostic, unidirectional data fetching for React applications", | ||
"source": "src/DiodePublic.js", | ||
"main": "lib/DiodePublic.js", | ||
@@ -13,10 +14,6 @@ "files": [ | ||
"scripts": { | ||
"typecheck": "flow check", | ||
"lint": "marlint", | ||
"unit": "mocha --compilers js:babel-core/register", | ||
"test": "npm run unit test/**/**/*.js", | ||
"coverage": "nyc npm test && nyc report --reporter=html", | ||
"upload-coverage": "nyc npm test && nyc report --reporter=lcov && codecov", | ||
"build": "rm -rf lib && babel src --out-dir lib", | ||
"prepublish": "npm run build" | ||
"lint": "marlint --quiet", | ||
"test": "jest --coverage", | ||
"build": "microbundle --jsx React.createElement", | ||
"format": "prettier --write src/**/*.js" | ||
}, | ||
@@ -49,3 +46,3 @@ "repository": { | ||
"peerDependencies": { | ||
"react": "^15.3.1" | ||
"react": "^16.6.0" | ||
}, | ||
@@ -56,21 +53,19 @@ "optionalDependencies": { | ||
"devDependencies": { | ||
"babel-cli": "^6.6.5", | ||
"babel-core": "^6.7.2", | ||
"babel-preset-es2015": "^6.6.0", | ||
"babel-preset-react": "^6.5.0", | ||
"babel-preset-stage-1": "^6.5.0", | ||
"chai": "^3.5.0", | ||
"codecov": "^1.0.1", | ||
"enzyme": "^2.2.0", | ||
"flow-bin": "^0.22.1", | ||
"isomorphic-fetch": "^2.2.1", | ||
"marlint": "^1.5.3", | ||
"mocha": "^2.4.5", | ||
"nock": "^7.4.0", | ||
"nyc": "^6.1.1", | ||
"react": "^15.0.1", | ||
"react-addons-test-utils": "^15.0.1", | ||
"react-dom": "^15.0.1", | ||
"sinon": "^1.17.3", | ||
"sinon-chai": "^2.8.0" | ||
"@babel/core": "^7.2.0", | ||
"@babel/plugin-proposal-class-properties": "^7.2.1", | ||
"@babel/preset-env": "^7.2.0", | ||
"@babel/preset-flow": "^7.0.0", | ||
"@babel/preset-react": "^7.0.0", | ||
"babel-core": "^7.0.0-bridge.0", | ||
"babel-jest": "^23.6.0", | ||
"husky": "^1.2.0", | ||
"jest": "^23.6.0", | ||
"jest-dom": "^3.0.0", | ||
"lint-staged": "^8.1.0", | ||
"marlint": "^6.5.4", | ||
"microbundle": "^0.8.3", | ||
"prettier": "^1.15.3", | ||
"react": "^16.6.3", | ||
"react-dom": "^16.6.3", | ||
"react-testing-library": "^5.3.2" | ||
}, | ||
@@ -80,11 +75,24 @@ "marlint": { | ||
"lib/**" | ||
], | ||
"rules": { | ||
"no-duplicate-imports": 0, | ||
"flowtype/no-types-missing-file-annotation": 0, | ||
"no-else-return": 0, | ||
"no-param-reassign": 0 | ||
} | ||
}, | ||
"husky": { | ||
"hooks": { | ||
"pre-commit": "lint-staged" | ||
} | ||
}, | ||
"lint-staged": { | ||
"*.js": [ | ||
"prettier --write", | ||
"git add" | ||
] | ||
}, | ||
"babel": { | ||
"presets": [ | ||
"es2015", | ||
"react", | ||
"stage-1" | ||
] | ||
"jest": { | ||
"testRegex": "__tests__/.*.test\\.js$" | ||
} | ||
} |
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
Minified code
QualityThis package contains minified code. This may be harmless in some cases where minified code is included in packaged libraries, however packages on npm should not minify code.
Found 1 instance in 1 package
148328
17
9
122
3
1