mirror of
https://github.com/owncast/owncast.git
synced 2024-10-10 19:16:02 +00:00
![dependabot[bot]](/assets/img/avatar_default.png)
* Commit updated Javascript packages * Bump preact from 10.5.4 to 10.5.5 in /build/javascript (#265) * Trying a new github workflow to install javascript packages * Bump tailwindcss from 1.9.2 to 1.9.4 in /build/javascript (#266) Bumps [tailwindcss](https://github.com/tailwindlabs/tailwindcss) from 1.9.2 to 1.9.4. - [Release notes](https://github.com/tailwindlabs/tailwindcss/releases) - [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/master/CHANGELOG.md) - [Commits](https://github.com/tailwindlabs/tailwindcss/compare/v1.9.2...v1.9.4) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Commit updated Javascript packages * Bump preact from 10.5.4 to 10.5.5 in /build/javascript Bumps [preact](https://github.com/preactjs/preact) from 10.5.4 to 10.5.5. - [Release notes](https://github.com/preactjs/preact/releases) - [Commits](https://github.com/preactjs/preact/compare/10.5.4...10.5.5) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: Gabe Kangas <gabek@real-ity.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Owncast <owncast@owncast.online> * Bump @justinribeiro/lite-youtube in /build/javascript Bumps [@justinribeiro/lite-youtube](https://github.com/justinribeiro/lite-youtube) from 0.9.0 to 0.9.1. - [Release notes](https://github.com/justinribeiro/lite-youtube/releases) - [Commits](https://github.com/justinribeiro/lite-youtube/commits) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: Owncast <owncast@owncast.online> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Gabe Kangas <gabek@real-ity.com>
104 lines
2.4 KiB
JavaScript
104 lines
2.4 KiB
JavaScript
var postcss = require('postcss')
|
|
|
|
var IMPORTANT = /\s*!important\s*$/i
|
|
|
|
var unitless = {
|
|
'box-flex': true,
|
|
'box-flex-group': true,
|
|
'column-count': true,
|
|
'flex': true,
|
|
'flex-grow': true,
|
|
'flex-positive': true,
|
|
'flex-shrink': true,
|
|
'flex-negative': true,
|
|
'font-weight': true,
|
|
'line-clamp': true,
|
|
'line-height': true,
|
|
'opacity': true,
|
|
'order': true,
|
|
'orphans': true,
|
|
'tab-size': true,
|
|
'widows': true,
|
|
'z-index': true,
|
|
'zoom': true,
|
|
'fill-opacity': true,
|
|
'stroke-dashoffset': true,
|
|
'stroke-opacity': true,
|
|
'stroke-width': true
|
|
}
|
|
|
|
function dashify (str) {
|
|
return str
|
|
.replace(/([A-Z])/g, '-$1')
|
|
.replace(/^ms-/, '-ms-')
|
|
.toLowerCase()
|
|
}
|
|
|
|
function decl (parent, name, value) {
|
|
if (value === false || value === null) return
|
|
|
|
name = dashify(name)
|
|
if (typeof value === 'number') {
|
|
if (value === 0 || unitless[name]) {
|
|
value = value.toString()
|
|
} else {
|
|
value += 'px'
|
|
}
|
|
}
|
|
|
|
if (name === 'css-float') name = 'float'
|
|
|
|
if (IMPORTANT.test(value)) {
|
|
value = value.replace(IMPORTANT, '')
|
|
parent.push(postcss.decl({ prop: name, value: value, important: true }))
|
|
} else {
|
|
parent.push(postcss.decl({ prop: name, value: value }))
|
|
}
|
|
}
|
|
|
|
function atRule (parent, parts, value) {
|
|
var node = postcss.atRule({ name: parts[1], params: parts[3] || '' })
|
|
if (typeof value === 'object') {
|
|
node.nodes = []
|
|
parse(value, node)
|
|
}
|
|
parent.push(node)
|
|
}
|
|
|
|
function parse (obj, parent) {
|
|
var name, value, node, i
|
|
for (name in obj) {
|
|
if (obj.hasOwnProperty(name)) {
|
|
value = obj[name]
|
|
if (value === null || typeof value === 'undefined') {
|
|
continue
|
|
} else if (name[0] === '@') {
|
|
var parts = name.match(/@([^\s]+)(\s+([\w\W]*)\s*)?/)
|
|
if (Array.isArray(value)) {
|
|
for (i = 0; i < value.length; i++) {
|
|
atRule(parent, parts, value[i])
|
|
}
|
|
} else {
|
|
atRule(parent, parts, value)
|
|
}
|
|
} else if (Array.isArray(value)) {
|
|
for (i = 0; i < value.length; i++) {
|
|
decl(parent, name, value[i])
|
|
}
|
|
} else if (typeof value === 'object') {
|
|
node = postcss.rule({ selector: name })
|
|
parse(value, node)
|
|
parent.push(node)
|
|
} else {
|
|
decl(parent, name, value)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
module.exports = function (obj) {
|
|
var root = postcss.root()
|
|
parse(obj, root)
|
|
return root
|
|
}
|