UNPKG

2.13 kBJavaScriptView Raw
1'use strict';
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6
7var _replaceElement = require('@f/replace-element');
8
9var _replaceElement2 = _interopRequireDefault(_replaceElement);
10
11var _insertElement = require('@f/insert-element');
12
13var _insertElement2 = _interopRequireDefault(_insertElement);
14
15var _removeElement = require('@f/remove-element');
16
17var _removeElement2 = _interopRequireDefault(_removeElement);
18
19var _updateNode = require('./updateNode');
20
21var _updateNode2 = _interopRequireDefault(_updateNode);
22
23var _createNode = require('./createNode');
24
25var _createNode2 = _interopRequireDefault(_createNode);
26
27var _foreach = require('@f/foreach');
28
29var _foreach2 = _interopRequireDefault(_foreach);
30
31var _virtex = require('virtex');
32
33function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
34
35/**
36 * Constants
37 */
38
39var _actions$types = _virtex.actions.types; /**
40 * Imports
41 */
42
43var CREATE_NODE = _actions$types.CREATE_NODE;
44var UPDATE_NODE = _actions$types.UPDATE_NODE;
45var REMOVE_NODE = _actions$types.REMOVE_NODE;
46var REPLACE_NODE = _actions$types.REPLACE_NODE;
47var INSERT_NODE = _actions$types.INSERT_NODE;
48
49/**
50 * Virtex DOM effects driver
51 */
52
53function dom() {
54 return function (next) {
55 return function (action) {
56 switch (action.type) {
57 case CREATE_NODE:
58 return (0, _createNode2.default)(action.vnode, action.children, action.element);
59 case UPDATE_NODE:
60 return (0, _updateNode2.default)(action.prev, action.vnode);
61 case REMOVE_NODE:
62 (0, _removeElement2.default)(action.vnode.element);
63 return action.vnode;
64 case REPLACE_NODE:
65 (0, _replaceElement2.default)(action.vnode.element, action.prev.element);
66 return action.vnode;
67 case INSERT_NODE:
68 (0, _insertElement2.default)(action.vnode.element, action.newVnode.element, action.pos);
69 return action.vnode;
70 }
71
72 return next(action);
73 };
74 };
75}
76
77/**
78 * Exports
79 */
80
81exports.default = dom;
\No newline at end of file