Skip to main content
Module

x/postcss/lib/list.js

Postcss for Deno
Go to Latest
File
/// <reference types="./list.d.ts" />
let list = { split(string, separators, last) { let array = []; let current = ""; let split = false;
let func = 0; let quote = false; let escape = false;
for (let letter of string) { if (escape) { escape = false; } else if (letter === "\\") { escape = true; } else if (quote) { if (letter === quote) { quote = false; } } else if (letter === '"' || letter === "'") { quote = letter; } else if (letter === "(") { func += 1; } else if (letter === ")") { if (func > 0) func -= 1; } else if (func === 0) { if (separators.includes(letter)) split = true; }
if (split) { if (current !== "") array.push(current.trim()); current = ""; split = false; } else { current += letter; } }
if (last || current !== "") array.push(current.trim()); return array; },
space(string) { let spaces = [" ", "\n", "\t"]; return list.split(string, spaces); },
comma(string) { return list.split(string, [","], true); },};
export default list;
list.default = list;