import {appendContextPath, blockParams, createFrame, isEmpty, isFunction} from '../utils'; export default function(instance) { instance.registerHelper('with', function(context, options) { if (isFunction(context)) { context = context.call(this); } let fn = options.fn; if (!isEmpty(context)) { let data = options.data; if (options.data && options.ids) { data = createFrame(options.data); data.contextPath = appendContextPath(options.data.contextPath, options.ids[0]); } return fn(context, { data: data, blockParams: blockParams([context], [data && data.contextPath]) }); } else { return options.inverse(this); } }); }