static parseValue()

in packages/posthtml-transform/lib/rule.js [15:43]


  static parseValue(val) {
    const value = stripSlashes(val);
    const root = valuesParser(value).parse();
    const values = [];
    let counter = 0;

    root.first.nodes.forEach(node => {
      switch (node.type) {
        case NODE_TYPES.WORD:
        case NODE_TYPES.FUNCTION:
        case NODE_TYPES.NUMBER:
        case NODE_TYPES.STRING:
          if (!values[counter]) {
            values[counter] = [];
          }
          const nodeValue = node.type === NODE_TYPES.FUNCTION
            ? node.toString().trim()
            : unquote(node.value).trim();
          values[counter].push(nodeValue);
          break;

        case NODE_TYPES.COMMA:
          counter++;
          break;
      }
    });

    return values;
  }