MCPcopy
hub / github.com/postcss/postcss / split

Function split

lib/list.js:13–54  ·  view source on GitHub ↗
(string, separators, last)

Source from the content-addressed store, hash-verified

11 },
12
13 split(string, separators, last) {
14 let array = []
15 let current = ''
16 let split = false
17
18 let func = 0
19 let inQuote = false
20 let prevQuote = ''
21 let escape = false
22
23 for (let letter of string) {
24 if (escape) {
25 escape = false
26 } else if (letter === '\\') {
27 escape = true
28 } else if (inQuote) {
29 if (letter === prevQuote) {
30 inQuote = false
31 }
32 } else if (letter === '"' || letter === "'") {
33 inQuote = true
34 prevQuote = letter
35 } else if (letter === '(') {
36 func += 1
37 } else if (letter === ')') {
38 if (func > 0) func -= 1
39 } else if (func === 0) {
40 if (separators.includes(letter)) split = true
41 }
42
43 if (split) {
44 if (current !== '') array.push(current.trim())
45 current = ''
46 split = false
47 } else {
48 current += letter
49 }
50 }
51
52 if (last || current !== '') array.push(current.trim())
53 return array
54 }
55}
56
57module.exports = list

Callers

nothing calls this directly

Calls 1

pushMethod · 0.80

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…