diff options
Diffstat (limited to 'node_modules/stylus/lib/functions/slice.js')
| -rw-r--r-- | node_modules/stylus/lib/functions/slice.js | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/node_modules/stylus/lib/functions/slice.js b/node_modules/stylus/lib/functions/slice.js new file mode 100644 index 00000000..d5b9282c --- /dev/null +++ b/node_modules/stylus/lib/functions/slice.js @@ -0,0 +1,28 @@ +var utils = require('../utils'), + nodes = require('../nodes'); + +/** + * This is a heler function for the slice method + * + * @param {String|Ident} vals + * @param {Unit} start [0] + * @param {Unit} end [vals.length] + * @return {String|Literal|Null} + * @api public +*/ +(module.exports = function slice(val, start, end) { + start = start && start.nodes[0].val; + end = end && end.nodes[0].val; + + val = utils.unwrap(val).nodes; + + if (val.length > 1) { + return utils.coerce(val.slice(start, end), true); + } + + var result = val[0].string.slice(start, end); + + return val[0] instanceof nodes.Ident + ? new nodes.Ident(result) + : new nodes.String(result); +}).raw = true; |
