in powershell/plugins/modifiers-v2.ts [253:307]
function isWhereModelDirective(it: any): it is WhereModelDirective {
const directive = it;
const where = directive.where;
const set = directive.set;
if (where && set && (where['model-name'] || where['model-fullname'] || where['model-namespace'] || where['property-name'] || directive.select === 'model')) {
const prohibitedFilters = ['enum-name', 'enum-value-name', 'subject', 'subject-prefix', 'verb', 'variant', 'parameter-name'];
let error = getFilterError(where, prohibitedFilters, 'enum');
const prohibitedSetters = ['enum-name', 'enum-value-name', 'subject', 'subject-prefix', 'verb', 'variant', 'parameter-name', 'parameter-description', 'command-description', 'completer', 'default'];
error += getSetError(set, prohibitedSetters, 'enum');
const modelSelectNameConflict = [];
let modelSelectNameType = '';
if (where['model-name']) {
modelSelectNameType = 'model-name';
if (where['model-fullname']) {
modelSelectNameConflict.push('model-fullname');
}
if (where['model-namespace']) {
modelSelectNameConflict.push('model-namespace');
}
} else if (where['model-fullname']) {
modelSelectNameType = 'model-fullname';
if (where['model-name']) {
modelSelectNameConflict.push('model-name');
}
if (where['model-namespace']) {
modelSelectNameConflict.push('model-namespace');
}
} else if (where['model-namespace']) {
modelSelectNameType = 'model-namespace';
if (where['model-fullname']) {
modelSelectNameConflict.push('model-fullname');
}
if (where['model-name']) {
modelSelectNameConflict.push('model-name');
}
}
if (length(modelSelectNameConflict) > 0) {
error += `Can't select ${modelSelectNameType} and ${modelSelectNameConflict} at the same time`;
}
if (error) {
throw Error(`Incorrect Directive: ${JSON.stringify(it, null, 2)}.Reason: ${error}.`);
}
return true;
}
return false;
}