+
+function convertCustomConfigBody (body: CustomConfig) {
+ function keyConverter (k: string) {
+ // Transcoding resolutions exception
+ if (/^\d{3,4}p$/.exec(k)) return k
+
+ return snakeCase(k)
+ }
+
+ function valueConverter (v: any) {
+ if (isNumeric(v + '')) return parseInt('' + v, 10)
+
+ return v
+ }
+
+ return objectConverter(body, keyConverter, valueConverter)
+}
+
+function getRegisteredThemes () {
+ return PluginManager.Instance.getRegisteredThemes()
+ .map(t => ({
+ name: t.name,
+ version: t.version,
+ description: t.description,
+ css: t.css,
+ clientScripts: t.clientScripts
+ }))
+}
+
+function getEnabledResolutions () {
+ return Object.keys(CONFIG.TRANSCODING.RESOLUTIONS)
+ .filter(key => CONFIG.TRANSCODING.ENABLED && CONFIG.TRANSCODING.RESOLUTIONS[ key ] === true)
+ .map(r => parseInt(r, 10))
+}
+
+function getRegisteredPlugins () {
+ return PluginManager.Instance.getRegisteredPlugins()
+ .map(p => ({
+ name: p.name,
+ version: p.version,
+ description: p.description,
+ clientScripts: p.clientScripts
+ }))
+}