type UpdatedVideoConstant = {
[name in AlterableVideoConstant]: {
- added: { key: number | string, label: string }[]
- deleted: { key: number | string, label: string }[]
+ [ npmName: string]: {
+ added: { key: number | string, label: string }[]
+ deleted: { key: number | string, label: string }[]
+ }
}
}
export class RegisterHelpers {
private readonly updatedVideoConstants: UpdatedVideoConstant = {
- playlistPrivacy: { added: [], deleted: [] },
- privacy: { added: [], deleted: [] },
- language: { added: [], deleted: [] },
- licence: { added: [], deleted: [] },
- category: { added: [], deleted: [] }
+ playlistPrivacy: { },
+ privacy: { },
+ language: { },
+ licence: { },
+ category: { }
}
private readonly transcodingProfiles: {
const { npmName, type, obj, key } = parameters
if (!obj[key]) {
- logger.warn('Cannot delete %s %s by plugin %s: key does not exist.', type, npmName, key)
+ logger.warn('Cannot delete %s by plugin %s: key %s does not exist.', type, npmName, key)
return false
}
}
}
- this.updatedVideoConstants[type][npmName].deleted.push({ key, label: obj[key] })
+ const updatedConstants = this.updatedVideoConstants[type][npmName]
+
+ const alreadyAdded = updatedConstants.added.find(a => a.key === key)
+ if (alreadyAdded) {
+ updatedConstants.added.filter(a => a.key !== key)
+ } else if (obj[key]) {
+ updatedConstants.deleted.push({ key, label: obj[key] })
+ }
+
delete obj[key]
return true