Files
Xen-Orchestra-xen-orchestra…/@xen-orchestra/backups/_extractIdsFromSimplePattern.js
2022-02-22 12:34:41 +01:00

32 lines
777 B
JavaScript

'use strict'
exports.extractIdsFromSimplePattern = function extractIdsFromSimplePattern(pattern) {
if (pattern === undefined) {
return []
}
if (pattern !== null && typeof pattern === 'object') {
let keys = Object.keys(pattern)
if (keys.length === 1 && keys[0] === 'id') {
pattern = pattern.id
if (typeof pattern === 'string') {
return [pattern]
}
if (pattern !== null && typeof pattern === 'object') {
keys = Object.keys(pattern)
if (
keys.length === 1 &&
keys[0] === '__or' &&
Array.isArray((pattern = pattern.__or)) &&
pattern.every(_ => typeof _ === 'string')
) {
return pattern
}
}
}
}
throw new Error('invalid pattern')
}