throw error on multiple buffer matched

This commit is contained in:
Shin'ya Ueoka 2017-08-30 21:06:31 +09:00
parent ed992e0674
commit 3e2820a6b4

View file

@ -33,19 +33,17 @@ const selectAt = (index) => {
const selectByKeyword = (keyword) => { const selectByKeyword = (keyword) => {
chrome.tabs.query({ currentWindow: true }, (tabs) => { chrome.tabs.query({ currentWindow: true }, (tabs) => {
let tab = tabs.find((tab) => tab.url.includes(keyword)) let matched = tabs.filter((t) => {
if (tab) { return t.url.includes(keyword) || t.title.includes(keyword)
chrome.tabs.update(tab.id, { active: true }); })
return;
if (matched.length == 0) {
throw new RangeError('No matching buffer for ' + keyword);
} else if (matched.length >= 2) {
throw new RangeError('More than one match for ' + keyword);
} }
tab = tabs.find((tab) => tab.title.includes(keyword)) chrome.tabs.update(matched[0].id, { active: true });
if (tab) {
chrome.tabs.update(tab.id, { active: true });
return;
}
throw new RangeError('No matching buffer for ' + keyword);
}) })
} }