UNPKG

@girders-elements/core

Version:

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

21 lines (10 loc) 971 B
'use strict';Object.defineProperty(exports,"__esModule",{value:true});exports. transformer=transformer;var _ramda=require('ramda');var _ramda2=_interopRequireDefault(_ramda);var _element=require('../data/element');var _util=require('../impl/util');var _zip=require('../zip');var _data=require('../data');function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj};}function transformer(registry,elementZipper){ var elementTransformer=(0,_util.memoize)(function(kind){return( registry. get(kind). reduce(function(f,g){return function(x,context){return g(f(x,context),context);};},_ramda2.default.identity));}); var transform=function transform(context){return function(el){return elementTransformer((0,_element.kindOf)(el))(el,context);};}; return function(el){var context=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};return( (0,_data.flow)(el,elementZipper,(0,_zip.postWalk)(transform(context)),_zip.root,_zip.value));}; }