substr.js 607 B

123456789101112131415161718192021222324
  1. var utils = require('../utils')
  2. , nodes = require('../nodes');
  3. /**
  4. * Returns substring of the given `val`.
  5. *
  6. * @param {String|Ident} val
  7. * @param {Number} start
  8. * @param {Number} [length]
  9. * @return {String|Ident}
  10. * @api public
  11. */
  12. function substr(val, start, length){
  13. utils.assertString(val, 'val');
  14. utils.assertType(start, 'unit', 'start');
  15. length = length && length.val;
  16. var res = val.string.substr(start.val, length);
  17. return val instanceof nodes.Ident
  18. ? new nodes.Ident(res)
  19. : new nodes.String(res);
  20. }
  21. substr.params = ['val', 'start', 'length'];
  22. module.exports = substr;