| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 | // Generated by CoffeeScript 1.12.7var 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 + "`");    }  }};
 |