'use strict' exports.parse = parse exports.stringify = stringify var comma = ',' var space = ' ' var empty = '' // Parse comma-separated tokens to an array. function parse(value) { var values = [] var input = String(value || empty) var index = input.indexOf(comma) var lastIndex = 0 var end = false var val while (!end) { if (index === -1) { index = input.length end = true } val = input.slice(lastIndex, index).trim() if (val || !end) { values.push(val) } lastIndex = index + 1 index = input.indexOf(comma, lastIndex) } return values } // Compile an array to comma-separated tokens. // `options.padLeft` (default: `true`) pads a space left of each token, and // `options.padRight` (default: `false`) pads a space to the right of each token. function stringify(values, options) { var settings = options || {} var left = settings.padLeft === false ? empty : space var right = settings.padRight ? space : empty // Ensure the last empty entry is seen. if (values[values.length - 1] === empty) { values = values.concat(empty) } return values.join(right + comma + left).trim() }