Spaces:
Runtime error
Runtime error
| // Generated by CoffeeScript 1.12.7 | |
| var object, self, | |
| hasProp = {}.hasOwnProperty; | |
| object = require('utila').object; | |
| module.exports = self = { | |
| sanitize: function(val) { | |
| return self._toChildren(val); | |
| }, | |
| _toChildren: function(val) { | |
| var ref; | |
| if (object.isBareObject(val)) { | |
| return self._objectToChildren(val); | |
| } else if (Array.isArray(val)) { | |
| return self._arrayToChildren(val); | |
| } else if (val === null || typeof val === 'undefined') { | |
| return []; | |
| } else if ((ref = typeof val) === 'string' || ref === 'number') { | |
| return [String(val)]; | |
| } else { | |
| throw Error("not a valid child node: `" + val); | |
| } | |
| }, | |
| _objectToChildren: function(o) { | |
| var a, cur, key, val; | |
| a = []; | |
| for (key in o) { | |
| if (!hasProp.call(o, key)) continue; | |
| val = o[key]; | |
| cur = {}; | |
| cur[key] = self.sanitize(val); | |
| a.push(cur); | |
| } | |
| return a; | |
| }, | |
| _arrayToChildren: function(a) { | |
| var i, len, ret, v; | |
| ret = []; | |
| for (i = 0, len = a.length; i < len; i++) { | |
| v = a[i]; | |
| ret.push(self._toNode(v)); | |
| } | |
| return ret; | |
| }, | |
| _toNode: function(o) { | |
| var key, keys, obj, ref; | |
| if ((ref = typeof o) === 'string' || ref === 'number') { | |
| return String(o); | |
| } else if (object.isBareObject(o)) { | |
| keys = Object.keys(o); | |
| if (keys.length !== 1) { | |
| throw Error("a node must only have one key as tag name"); | |
| } | |
| key = keys[0]; | |
| obj = {}; | |
| obj[key] = self._toChildren(o[key]); | |
| return obj; | |
| } else { | |
| throw Error("not a valid node: `" + o + "`"); | |
| } | |
| } | |
| }; | |