aboutsummaryrefslogtreecommitdiff
path: root/src/background/shared/completions
diff options
context:
space:
mode:
Diffstat (limited to 'src/background/shared/completions')
-rw-r--r--src/background/shared/completions/bookmarks.js23
-rw-r--r--src/background/shared/completions/histories.js27
-rw-r--r--src/background/shared/completions/index.js116
3 files changed, 77 insertions, 89 deletions
diff --git a/src/background/shared/completions/bookmarks.js b/src/background/shared/completions/bookmarks.js
index 1adb350..bd753af 100644
--- a/src/background/shared/completions/bookmarks.js
+++ b/src/background/shared/completions/bookmarks.js
@@ -1,15 +1,14 @@
-const getCompletions = (keywords) => {
- return browser.bookmarks.search({ query: keywords }).then((items) => {
- return items.filter((item) => {
- let url = undefined;
- try {
- url = new URL(item.url);
- } catch (e) {
- return false;
- }
- return item.type === 'bookmark' && url.protocol !== 'place:';
- }).slice(0, 10);
- });
+const getCompletions = async(keywords) => {
+ let items = await browser.bookmarks.search({ query: keywords });
+ return items.filter((item) => {
+ let url = undefined;
+ try {
+ url = new URL(item.url);
+ } catch (e) {
+ return false;
+ }
+ return item.type === 'bookmark' && url.protocol !== 'place:';
+ }).slice(0, 10);
};
export { getCompletions };
diff --git a/src/background/shared/completions/histories.js b/src/background/shared/completions/histories.js
index a7d3d47..2d35401 100644
--- a/src/background/shared/completions/histories.js
+++ b/src/background/shared/completions/histories.js
@@ -61,23 +61,22 @@ const reduceByOrigin = (items, min) => {
return filtered;
};
-const getCompletions = (keyword) => {
- return browser.history.search({
+const getCompletions = async(keyword) => {
+ let historyItems = await browser.history.search({
text: keyword,
startTime: 0,
- }).then((historyItems) => {
- return [historyItems.map(item => [item, new URL(item.url)])]
- .map(filterEmptyTitle)
- .map(filterHttp)
- .map(filterClosedPath)
- .map(items => reduceByPathname(items, 10))
- .map(items => reduceByOrigin(items, 10))
- .map(items => items
- .sort((x, y) => x[0].visitCount < y[0].visitCount)
- .slice(0, 10)
- .map(item => item[0])
- )[0];
});
+ return [historyItems.map(item => [item, new URL(item.url)])]
+ .map(filterEmptyTitle)
+ .map(filterHttp)
+ .map(filterClosedPath)
+ .map(items => reduceByPathname(items, 10))
+ .map(items => reduceByOrigin(items, 10))
+ .map(items => items
+ .sort((x, y) => x[0].visitCount < y[0].visitCount)
+ .slice(0, 10)
+ .map(item => item[0])
+ )[0];
};
export { getCompletions };
diff --git a/src/background/shared/completions/index.js b/src/background/shared/completions/index.js
index 728cee7..d5875fe 100644
--- a/src/background/shared/completions/index.js
+++ b/src/background/shared/completions/index.js
@@ -12,76 +12,66 @@ const getSearchCompletions = (command, keywords, searchConfig) => {
return Promise.resolve(engineItems);
};
-const getHistoryCompletions = (command, keywords) => {
- return histories.getCompletions(keywords).then((pages) => {
- return pages.map((page) => {
- return {
- caption: page.title,
- content: command + ' ' + page.url,
- url: page.url
- };
- });
+const getHistoryCompletions = async(command, keywords) => {
+ let items = await histories.getCompletions(keywords);
+ return items.map((page) => {
+ return {
+ caption: page.title,
+ content: command + ' ' + page.url,
+ url: page.url
+ };
});
};
-const getBookmarksCompletions = (command, keywords) => {
- return bookmarks.getCompletions(keywords).then((items) => {
- return items.map((item) => {
- return {
- caption: item.title,
- content: command + ' ' + item.url,
- url: item.url,
- };
- });
- });
+const getBookmarksCompletions = async(command, keywords) => {
+ let items = await bookmarks.getCompletions(keywords);
+ return items.map(item => ({
+ caption: item.title,
+ content: command + ' ' + item.url,
+ url: item.url,
+ }));
};
-const getOpenCompletions = (command, keywords, searchConfig) => {
- return Promise.all([
- getSearchCompletions(command, keywords, searchConfig),
- getHistoryCompletions(command, keywords),
- getBookmarksCompletions(command, keywords),
- ]).then(([engineItems, historyItems, bookmarkItems]) => {
- let completions = [];
- if (engineItems.length > 0) {
- completions.push({
- name: 'Search Engines',
- items: engineItems
- });
- }
- if (historyItems.length > 0) {
- completions.push({
- name: 'History',
- items: historyItems
- });
- }
- if (bookmarkItems.length > 0) {
- completions.push({
- name: 'Bookmarks',
- items: bookmarkItems
- });
- }
- return completions;
- });
+const getOpenCompletions = async(command, keywords, searchConfig) => {
+ let engineItems = await getSearchCompletions(command, keywords, searchConfig);
+ let historyItems = await getHistoryCompletions(command, keywords);
+ let bookmarkItems = await getBookmarksCompletions(command, keywords);
+ let completions = [];
+ if (engineItems.length > 0) {
+ completions.push({
+ name: 'Search Engines',
+ items: engineItems
+ });
+ }
+ if (historyItems.length > 0) {
+ completions.push({
+ name: 'History',
+ items: historyItems
+ });
+ }
+ if (bookmarkItems.length > 0) {
+ completions.push({
+ name: 'Bookmarks',
+ items: bookmarkItems
+ });
+ }
+ return completions;
};
-const getBufferCompletions = (command, keywords, excludePinned) => {
- return tabs.getCompletions(keywords, excludePinned).then((got) => {
- let items = got.map((tab) => {
- return {
- caption: tab.title,
- content: command + ' ' + tab.title,
- url: tab.url,
- icon: tab.favIconUrl
- };
- });
- return [
- {
- name: 'Buffers',
- items: items
- }
- ];
- });
+const getBufferCompletions = async(command, keywords, excludePinned) => {
+ let items = await tabs.getCompletions(keywords, excludePinned);
+ items = items.map(tab => ({
+ caption: tab.title,
+ content: command + ' ' + tab.title,
+ url: tab.url,
+ icon: tab.favIconUrl
+ }));
+ return [
+ {
+ name: 'Buffers',
+ items: items
+ }
+ ];
};
const getCompletions = (line, settings) => {