UNPKG

@skele/classic

Version:

Skele is an architectural framework that assists with building data-driven apps with React or React Native.

1 lines 3.82 kB
'use strict';Object.defineProperty(exports,"__esModule",{value:true});exports.default=void 0;var R=_interopRequireWildcard(require("ramda"));var _invariant=_interopRequireDefault(require("invariant"));var SubSystem=_interopRequireWildcard(require("../subsystem"));require("../update");require("../effect");require("../enrich");require("../enhance");require("../transform");var _core=require("@skele/core");var impl=_interopRequireWildcard(require("./impl"));var http=_interopRequireWildcard(require("./http"));var readActions=_interopRequireWildcard(require("./actions"));function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj};}function _interopRequireWildcard(obj){if(obj&&obj.__esModule){return obj;}else{var newObj={};if(obj!=null){for(var key in obj){if(Object.prototype.hasOwnProperty.call(obj,key)){var desc=Object.defineProperty&&Object.getOwnPropertyDescriptor?Object.getOwnPropertyDescriptor(obj,key):{};if(desc.get||desc.set){Object.defineProperty(newObj,key,desc);}else{newObj[key]=obj[key];}}}}newObj.default=obj;return newObj;}}function _objectSpread(target){for(var i=1;i<arguments.length;i++){var source=arguments[i]!=null?arguments[i]:{};var ownKeys=Object.keys(source);if(typeof Object.getOwnPropertySymbols==='function'){ownKeys=ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym){return Object.getOwnPropertyDescriptor(source,sym).enumerable;}));}ownKeys.forEach(function(key){_defineProperty(target,key,source[key]);});}return target;}function _defineProperty(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true});}else{obj[key]=value;}return obj;}var registryAttribute='@@skele/_readRegistry';var fallback=impl.fallback;var PatternRegistry=_core.registry.PatternRegistry,chainRegistries=_core.registry.chainRegistries;SubSystem.extend(function(){var _read;var readRegistry=new PatternRegistry();return{read:(_read={},_defineProperty(_read,registryAttribute,readRegistry),_defineProperty(_read,"register",readRegistry.register.bind(readRegistry)),_defineProperty(_read,"reset",readRegistry.reset.bind(readRegistry)),_defineProperty(_read,"default",fallback),_defineProperty(_read,"fallback",fallback),_defineProperty(_read,"http",http),_read)};});var read=SubSystem.create(function(system,instantiatedSubsystems){(0,_invariant.default)(instantiatedSubsystems.transform!=null,'The read subsystem depends on the transform subsystem.'+'You must place it in the subsystem list **before** the read.');var registry=getCombinedRegistry(system.subsystemSequence);var enrichment=instantiatedSubsystems.enrich.buildEnricher();var enhancement=instantiatedSubsystems.enhance.buildEnhanceHelper();var transformation=instantiatedSubsystems.transform.buildTransformer();var config={registry:registry,enrichment:enrichment,enhancement:enhancement,transformation:transformation,kernel:system};return{name:'read',context:config,perform:function perform(uri){var opts=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};return impl.performRead(system,_objectSpread({},opts,{uri:uri}));}};});read.effect.forKind([],function(effects){effects.register(readActions.types.read,impl.read);effects.register(readActions.types.readRefresh,impl.readRefresh);});read.update.forKind([],function(updates){updates.register(readActions.types.setLoading,impl.setLoading);updates.register(readActions.types.setRefreshing,impl.setRefreshing);updates.register(readActions.types.setRefreshMetadata,impl.setRefreshMetadata);updates.register(readActions.types.apply,impl.applyRead);updates.register(readActions.types.fail,impl.fail);});var _default=read;exports.default=_default;var getRegistry=R.path(['read',registryAttribute]);var getCombinedRegistry=R.pipe(R.map(getRegistry),R.reject(R.isNil),chainRegistries);