MCPcopy Create free account
hub / github.com/TechJeeper/Printventory / scanRecursive

Function scanRecursive

main.js:4085–4114  ·  view source on GitHub ↗
(dir)

Source from the content-addressed store, hash-verified

4083function parseSearchAnd(tokens, i, params, filters) {
4084 let [left, j] = parseSearchUnary(tokens, i, params, filters);
4085 while (j < tokens.length && tokens[j].t === 'op' && tokens[j].op === 'AND') {
4086 j++;
4087 const [right, k] = parseSearchUnary(tokens, j, params, filters);
4088 left = `(${left}) AND (${right})`;
4089 j = k;
4090 }
4091 return [left, j];
4092}
4093
4094function parseSearchOr(tokens, i, params, filters) {
4095 let [left, j] = parseSearchAnd(tokens, i, params, filters);
4096 while (j < tokens.length && tokens[j].t === 'op' && tokens[j].op === 'OR') {
4097 j++;
4098 const [right, k] = parseSearchAnd(tokens, j, params, filters);
4099 left = `(${left}) OR (${right})`;
4100 j = k;
4101 }
4102 return [left, j];
4103}
4104
4105function compileSearchTokensToSQL(tokens, params, filters) {
4106 const t = sanitizeSearchTokensForCompile(tokens);
4107 if (t.length === 0) return null;
4108 try {
4109 const [sql, end] = parseSearchOr(t, 0, params, filters);
4110 if (end !== t.length) return null;
4111 return sql;
4112 } catch (e) {
4113 console.warn('compileSearchTokensToSQL failed:', e.message);
4114 return null;
4115 }
4116}
4117

Callers 2

processBatchFunction · 0.85
scanDirectoryFunction · 0.85

Calls 1

processBatchFunction · 0.85

Tested by

no test coverage detected