| 'use strict'; |
| const parseWsc = require('./parseWsc.js'); |
| const minifyTrbl = require('./minifyTrbl.js'); |
| const { isValidWsc } = require('./validateWsc.js'); |
| |
| const defaults = ['medium', 'none', 'currentcolor']; |
| |
| /** @type {(v: string) => string} */ |
| module.exports = (v) => { |
| const values = parseWsc(v); |
| |
| if (!isValidWsc(values)) { |
| return minifyTrbl(v); |
| } |
| |
| const value = [...values, ''] |
| .reduceRight((prev, cur, i, arr) => { |
| if ( |
| cur === undefined || |
| (cur.toLowerCase() === defaults[i] && |
| (!i || (arr[i - 1] || '').toLowerCase() !== cur.toLowerCase())) |
| ) { |
| return prev; |
| } |
| |
| return cur + ' ' + prev; |
| }) |
| .trim(); |
| |
| return minifyTrbl(value || 'none'); |
| }; |