split.js 663 B

123456789101112131415161718192021222324252627
  1. var utils = require('../utils')
  2. , nodes = require('../nodes');
  3. /**
  4. * Splits the given `val` by `delim`
  5. *
  6. * @param {String} delim
  7. * @param {String|Ident} val
  8. * @return {Expression}
  9. * @api public
  10. */
  11. function split(delim, val){
  12. utils.assertString(delim, 'delimiter');
  13. utils.assertString(val, 'val');
  14. var splitted = val.string.split(delim.string);
  15. var expr = new nodes.Expression();
  16. var ItemNode = val instanceof nodes.Ident
  17. ? nodes.Ident
  18. : nodes.String;
  19. for (var i = 0, len = splitted.length; i < len; ++i) {
  20. expr.nodes.push(new ItemNode(splitted[i]));
  21. }
  22. return expr;
  23. }
  24. split.params = ['delim', 'val'];
  25. module.exports = split;