replace.js 744 B

12345678910111213141516171819202122232425
  1. var utils = require('../utils')
  2. , nodes = require('../nodes');
  3. /**
  4. * Returns string with all matches of `pattern` replaced by `replacement` in given `val`
  5. *
  6. * @param {String} pattern
  7. * @param {String} replacement
  8. * @param {String|Ident} val
  9. * @return {String|Ident}
  10. * @api public
  11. */
  12. function replace(pattern, replacement, val){
  13. utils.assertString(pattern, 'pattern');
  14. utils.assertString(replacement, 'replacement');
  15. utils.assertString(val, 'val');
  16. pattern = new RegExp(pattern.string, 'g');
  17. var res = val.string.replace(pattern, replacement.string);
  18. return val instanceof nodes.Ident
  19. ? new nodes.Ident(res)
  20. : new nodes.String(res);
  21. }
  22. replace.params = ['pattern', 'replacement', 'val'];
  23. module.exports = replace;