UNPKG

@codeque/core

Version:

Multiline code search for every language. Structural code search for JavaScript, TypeScript, HTML and CSS

107 lines (87 loc) 2.33 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.searchInStrings = exports.default = void 0; var _utils = require("./utils"); var _parseQuery = require("./parseQuery"); var _searchFileContent = require("./searchStages/searchFileContent"); var _textSearch = require("./textSearch"); var _logger = require("./logger"); var _index = require("./parserSettings/index"); var _testOnlyConfig = require("./testOnlyConfig"); const searchInStrings = ({ queryCodes, files, mode, debug = false, caseInsensitive = false, parser = 'babel' }) => { if (mode === 'text') { const getFileContent = filePath => { return files.find(file => file.path === filePath)?.content; }; return (0, _textSearch.textSearch)({ getFileContent, filePaths: files.map(file => file.path), mode, queryCodes, caseInsensitive }); } const parserSettings = _index.parserSettingsMap[_testOnlyConfig.testParserTypeOverride ?? parser](); const settings = { mode, caseInsensitive, logger: (0, _logger.createLogger)(debug), parserSettings }; const { log } = settings.logger; const allMatches = []; const [queries, parseOk] = (0, _parseQuery.parseQueries)(queryCodes, caseInsensitive, parserSettings); if (!parseOk) { return { matches: [], errors: queries.filter(queryResult => queryResult.error), hints: queries.map(({ hints }) => hints) }; } const searchErrors = []; for (const file of files) { try { const fileMatches = (0, _searchFileContent.searchFileContent)({ queries: queries, filePath: file.path, fileContent: file.content, ...settings }); // console.log('file matches', fileMatches) allMatches.push(...fileMatches); if (fileMatches.length > 0) { if (debug) { break; } } } catch (e) { searchErrors.push(e.message); if (debug) { console.error(file.path, e); break; } } } return { matches: (0, _utils.dedupMatches)(allMatches), errors: searchErrors, hints: queries.map(({ hints }) => hints) }; }; exports.searchInStrings = searchInStrings; var _default = searchInStrings; exports.default = _default;