in client/src/utils.ts [187:213]
function convertNode(node: Node): string {
switch (node.type) {
case NodeType.separator:
return separator;
break;
case NodeType.text:
return node.value;
break;
case NodeType.questionMark:
return fileChar;
break;
case NodeType.star:
return `${fileChar}*?`;
break;
case NodeType.globStar:
return `(?:${fileChar}|(?:(?:${fileChar}${separator})+${fileChar}))*?`;
case NodeType.bracket:
return `[${node.value}]`;
case NodeType.brace: {
let buffer: string[] = [];
for (const child of node.alternatives) {
buffer.push(convertNode(child));
}
return `(?:${buffer.join('|')})`;
}
}
}