UNPKG

@girders-elements/core

Version:

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

115 lines (64 loc) 3.4 kB
'use strict';Object.defineProperty(exports,"__esModule",{value:true}); var _ramda=require('ramda');var _ramda2=_interopRequireDefault(_ramda); var _invariant=require('invariant');var _invariant2=_interopRequireDefault(_invariant); var _subsystem=require('../subsystem');var SubSystem=_interopRequireWildcard(_subsystem); require('../update'); require('../effect'); require('../enrich'); require('../enhance'); require('../transform'); var _registry=require('../registry'); var _impl=require('./impl');var impl=_interopRequireWildcard(_impl); var _http=require('./http');var http=_interopRequireWildcard(_http); var _actions=require('./actions');var readActions=_interopRequireWildcard(_actions);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))newObj[key]=obj[key];}}newObj.default=obj;return newObj;}}function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj};}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='@@girders-elements/_readRegistry'; var fallback=impl.fallback; SubSystem.extend(function(){var _read; var readRegistry=new _registry.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,_invariant2.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,{uri:uri,opts:opts});}}; }); 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); });exports.default= read; var getRegistry=_ramda2.default.path(['read',registryAttribute]); var getCombinedRegistry=_ramda2.default.pipe( _ramda2.default.map(getRegistry), _ramda2.default.reject(_ramda2.default.isNil),_registry.chainRegistries);