/* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ /** * Escape special characters for regular expressions from a string. * * @param {string} string * The string to sanitize. * @returns {string} The sanitized string. */ export function escapeRegExp(string) { return string.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"); } /** * Search a tab list for items that match the given query. */ export function searchTabList(query, tabList) { const regex = RegExp(escapeRegExp(query), "i"); return tabList.filter( ({ title, url }) => regex.test(title) || regex.test(url) ); }