UNPKG

vdom-thunk

Version:

A thunk optimization for virtual-dom

33 lines (26 loc) 789 B
var shallowEq = require('./shallow-eq'); var Thunk = require('./immutable-thunk'); module.exports = createPartial; function createPartial(eq) { return function partial(fn) { var args = copyOver(arguments, 1); var firstArg = args[0]; var key; var eqArgs = eq || shallowEq; if (typeof firstArg === 'object' && firstArg !== null) { if ('key' in firstArg) { key = firstArg.key; } else if ('id' in firstArg) { key = firstArg.id; } } return new Thunk(fn, args, key, eqArgs); }; } function copyOver(list, offset) { var newList = []; for (var i = list.length - 1; i >= offset; i--) { newList[i - offset] = list[i]; } return newList; }