UNPKG

khufu

Version:

A template language for incremental-dom or DSL for javascript views

60 lines (47 loc) 2.56 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }(); exports.compile = compile; var _babelTypes = require('babel-types'); var T = _interopRequireWildcard(_babelTypes); var _compiler = require('./compiler'); var _vars = require('./vars'); 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 compile(item, path, opt) { switch (item[0]) { case 'store':case 'name': { var _item = _slicedToArray(item, 2), _name = _item[0], name = _item[1]; var ident = path.scope.generateUidIdentifier(name); (0, _vars.set_var)(path, name, ident); return ident; } case 'unpack_list': { var _item2 = _slicedToArray(item, 2), _list = _item2[0], items = _item2[1]; return T.arrayPattern(items.map(function (subitem) { return compile(subitem, path, opt); })); } case 'unpack_map': { var _item3 = _slicedToArray(item, 2), _list2 = _item3[0], _items = _item3[1]; return T.objectPattern(_items.map(function (_ref) { var _ref2 = _slicedToArray(_ref, 2), name = _ref2[0], value = _ref2[1]; return T.objectProperty(T.identifier(name), compile(value, path, opt)); })); } default: throw (0, _compiler.parse_tree_error)('Unknown expression', item); } }