mirror of
https://github.com/titanscouting/tra-analysis.git
synced 2025-03-21 04:25:19 +00:00
44 lines
1.0 KiB
JavaScript
44 lines
1.0 KiB
JavaScript
'use strict'
|
|
module.exports = qw
|
|
|
|
function appendLast (arr, str) {
|
|
var last = arr.length - 1
|
|
if (last < 0) {
|
|
arr.push(str)
|
|
} else {
|
|
var lastValue = String(arr[last])
|
|
return arr[last] = lastValue + String(str)
|
|
}
|
|
}
|
|
|
|
function qw () {
|
|
const args = Object.assign([], arguments[0])
|
|
const values = [].slice.call(arguments, 1)
|
|
const words = []
|
|
let lastWordWasValue = false
|
|
while (args.length) {
|
|
const arg = args.shift()
|
|
const concatValue = arg.length === 0 || arg.slice(-1) !== ' '
|
|
if (arg.trim() !== '') {
|
|
const theseWords = arg.replace(/^\s+|\s+$/g, '').replace(/\s+/g, ' ').split(/ /)
|
|
if (lastWordWasValue && arg[0] !== ' ') {
|
|
appendLast(words, theseWords.shift())
|
|
}
|
|
words.push.apply(words, theseWords)
|
|
}
|
|
|
|
if (values.length) {
|
|
const val = values.shift()
|
|
if (concatValue) {
|
|
appendLast(words, val)
|
|
} else {
|
|
words.push(val)
|
|
}
|
|
lastWordWasValue = true
|
|
} else {
|
|
lastWordWasValue = false
|
|
}
|
|
}
|
|
return words
|
|
}
|