0.12.0-18 Tests and Converter Fixes
This commit is contained in:
@@ -77,6 +77,45 @@ function afterMutationInvalidate(prefixes = []) {
|
||||
invalidateCachedGet(prefixes);
|
||||
}
|
||||
|
||||
function buildHandBrakePresetList(payload) {
|
||||
const existing = Array.isArray(payload?.presets) ? payload.presets : [];
|
||||
if (existing.length > 0) {
|
||||
return existing;
|
||||
}
|
||||
const options = Array.isArray(payload?.options) ? payload.options : [];
|
||||
const list = [];
|
||||
for (const option of options) {
|
||||
if (!option || option.disabled) {
|
||||
continue;
|
||||
}
|
||||
const rawValue = option.value ?? option.name ?? option.label ?? '';
|
||||
const name = String(rawValue || '').trim();
|
||||
if (!name || name.startsWith('__group__')) {
|
||||
continue;
|
||||
}
|
||||
const category = option.category ? String(option.category).trim() : '';
|
||||
list.push({
|
||||
name,
|
||||
category: category || null
|
||||
});
|
||||
}
|
||||
return list;
|
||||
}
|
||||
|
||||
function normalizeHandBrakePresetPayload(payload) {
|
||||
if (!payload || typeof payload !== 'object') {
|
||||
return payload;
|
||||
}
|
||||
const existing = Array.isArray(payload.presets) ? payload.presets : [];
|
||||
if (existing.length > 0) {
|
||||
return payload;
|
||||
}
|
||||
return {
|
||||
...payload,
|
||||
presets: buildHandBrakePresetList(payload)
|
||||
};
|
||||
}
|
||||
|
||||
async function request(path, options = {}) {
|
||||
const isFormDataBody = typeof FormData !== 'undefined' && options?.body instanceof FormData;
|
||||
const mergedHeaders = {
|
||||
@@ -324,11 +363,12 @@ export const api = {
|
||||
getDetectedDrives() {
|
||||
return request('/settings/drives');
|
||||
},
|
||||
getHandBrakePresets(options = {}) {
|
||||
return requestCachedGet('/settings/handbrake-presets', {
|
||||
async getHandBrakePresets(options = {}) {
|
||||
const result = await requestCachedGet('/settings/handbrake-presets', {
|
||||
ttlMs: 10 * 60 * 1000,
|
||||
forceRefresh: options.forceRefresh
|
||||
});
|
||||
return normalizeHandBrakePresetPayload(result);
|
||||
},
|
||||
getScripts(options = {}) {
|
||||
return requestCachedGet('/settings/scripts', {
|
||||
|
||||
Reference in New Issue
Block a user