fix(app/web): extras features handling

This commit is contained in:
lowlighter
2022-07-07 13:25:33 -04:00
parent 7564b81a74
commit affdca0afe

View File

@@ -224,7 +224,7 @@ metadata.plugin = async function({__plugins, __templates, name, logger}) {
console.debug(`metrics/extras > ${name} > ${key} > require [${required}]`) console.debug(`metrics/extras > ${name} > ${key} > require [${required}]`)
//Legacy handling //Legacy handling
const enabled = extras?.features ?? extras?.default ?? (typeof extras === "boolean" ? extras : false) const enabled = Array.isArray(extras) ? extras : (extras?.features ?? extras?.default ?? (typeof extras === "boolean" ? extras : false))
if (typeof enabled === "boolean") { if (typeof enabled === "boolean") {
console.debug(`metrics/extras > ${name} > ${key} > extras features is set to ${enabled}`) console.debug(`metrics/extras > ${name} > ${key} > extras features is set to ${enabled}`)
if (!enabled) if (!enabled)
@@ -237,23 +237,23 @@ metadata.plugin = async function({__plugins, __templates, name, logger}) {
} }
//Legacy options handling //Legacy options handling
if (!Array.isArray(extras.features)) if (!Array.isArray(enabled))
throw new Error(`metrics/extras > ${name} > ${key} > extras.features is not an array`) throw new Error(`metrics/extras > ${name} > ${key} > extras.features is not an array`)
if (extras.css) { if (extras.css) {
console.warn(`metrics/extras > ${name} > ${key} > extras.css is deprecated, use extras.features with "metrics.run.puppeteer.user.css" instead`) console.warn(`metrics/extras > ${name} > ${key} > extras.css is deprecated, use extras.features with "metrics.run.puppeteer.user.css" instead`)
extras.features.push("metrics.run.puppeteer.user.css") enabled.push("metrics.run.puppeteer.user.css")
} }
if (extras.js) { if (extras.js) {
console.warn(`metrics/extras > ${name} > ${key} > extras.js is deprecated, use extras.features with "metrics.run.puppeteer.user.js" instead`) console.warn(`metrics/extras > ${name} > ${key} > extras.js is deprecated, use extras.features with "metrics.run.puppeteer.user.js" instead`)
extras.features.push("metrics.run.puppeteer.user.js") enabled.push("metrics.run.puppeteer.user.js")
} }
if (extras.presets) { if (extras.presets) {
console.warn(`metrics/extras > ${name} > ${key} > extras.presets is deprecated, use extras.features with "metrics.setup.community.presets" instead`) console.warn(`metrics/extras > ${name} > ${key} > extras.presets is deprecated, use extras.features with "metrics.setup.community.presets" instead`)
extras.features.push("metrics.setup.community.presets") enabled.push("metrics.setup.community.presets")
} }
//Check permissions //Check permissions
const missing = required.filter(permission => !extras.features.includes(permission)) const missing = required.filter(permission => !enabled.includes(permission))
if (missing.length > 0) { if (missing.length > 0) {
console.debug(`metrics/extras > ${name} > ${key} > missing permissions [${missing}]`) console.debug(`metrics/extras > ${name} > ${key} > missing permissions [${missing}]`)
throw new Error() throw new Error()