This repository has been archived on 2020-11-02. You can view files and clone it, but cannot push or open issues or pull requests.
TripSit_Suite/node_modules/postcss/lib/list.js

56 lines
1.1 KiB
JavaScript
Raw Normal View History

'use strict'
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 (quote) {
if (escape) {
escape = false
} else if (letter === '\\') {
escape = true
} else 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)
}
}
module.exports = list