From c5ef33cc785315768e2280d0a23b8a803598d5be Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Sun, 24 May 2020 01:39:07 -0700 Subject: [PATCH] Upgrade Fuse (#6012) --- hassio/src/components/hassio-filter-addons.ts | 8 ++++---- package.json | 2 +- src/dialogs/config-flow/step-flow-pick-handler.ts | 8 ++++---- .../config/integrations/ha-config-integrations.ts | 14 +++++++------- .../lovelace/editor/card-editor/hui-card-picker.ts | 8 ++++---- yarn.lock | 8 ++++---- 6 files changed, 24 insertions(+), 24 deletions(-) diff --git a/hassio/src/components/hassio-filter-addons.ts b/hassio/src/components/hassio-filter-addons.ts index 270c8e7612..ddb56188aa 100644 --- a/hassio/src/components/hassio-filter-addons.ts +++ b/hassio/src/components/hassio-filter-addons.ts @@ -1,13 +1,13 @@ -import * as Fuse from "fuse.js"; +import Fuse from "fuse.js"; import { HassioAddonInfo } from "../../../src/data/hassio/addon"; export function filterAndSort(addons: HassioAddonInfo[], filter: string) { - const options: Fuse.FuseOptions = { + const options: Fuse.IFuseOptions = { keys: ["name", "description", "slug"], - caseSensitive: false, + isCaseSensitive: false, minMatchCharLength: 2, threshold: 0.2, }; const fuse = new Fuse(addons, options); - return fuse.search(filter); + return fuse.search(filter).map((result) => result.item); } diff --git a/package.json b/package.json index cb89179ba0..b6485dd03d 100644 --- a/package.json +++ b/package.json @@ -86,7 +86,7 @@ "deep-freeze": "^0.0.1", "es6-object-assign": "^1.1.0", "fecha": "^4.2.0", - "fuse.js": "^3.4.4", + "fuse.js": "^6.0.0", "google-timezones-json": "^1.0.2", "hls.js": "^0.12.4", "home-assistant-js-websocket": "^5.1.2", diff --git a/src/dialogs/config-flow/step-flow-pick-handler.ts b/src/dialogs/config-flow/step-flow-pick-handler.ts index 879824a657..68a54c92dd 100644 --- a/src/dialogs/config-flow/step-flow-pick-handler.ts +++ b/src/dialogs/config-flow/step-flow-pick-handler.ts @@ -1,7 +1,7 @@ import "@polymer/paper-item/paper-icon-item"; import "@polymer/paper-item/paper-item-body"; import "@polymer/paper-spinner/paper-spinner-lite"; -import * as Fuse from "fuse.js"; +import Fuse from "fuse.js"; import { css, CSSResult, @@ -52,14 +52,14 @@ class StepFlowPickHandler extends LitElement { }); if (filter) { - const options: Fuse.FuseOptions = { + const options: Fuse.IFuseOptions = { keys: ["name", "slug"], - caseSensitive: false, + isCaseSensitive: false, minMatchCharLength: 2, threshold: 0.2, }; const fuse = new Fuse(handlers, options); - return fuse.search(filter); + return fuse.search(filter).map((result) => result.item); } return handlers.sort((a, b) => a.name.toUpperCase() < b.name.toUpperCase() ? -1 : 1 diff --git a/src/panels/config/integrations/ha-config-integrations.ts b/src/panels/config/integrations/ha-config-integrations.ts index 9fb28efcb8..0de2540d1d 100644 --- a/src/panels/config/integrations/ha-config-integrations.ts +++ b/src/panels/config/integrations/ha-config-integrations.ts @@ -11,7 +11,7 @@ import { TemplateResult, } from "lit-element"; import memoizeOne from "memoize-one"; -import * as Fuse from "fuse.js"; +import Fuse from "fuse.js"; import { caseInsensitiveCompare } from "../../../common/string/compare"; import { computeRTL } from "../../../common/util/compute_rtl"; import { nextRender } from "../../../common/util/render-status"; @@ -149,14 +149,14 @@ class HaConfigIntegrations extends SubscribeMixin(LitElement) { if (!filter) { return [...configEntries]; } - const options: Fuse.FuseOptions = { + const options: Fuse.IFuseOptions = { keys: ["domain", "localized_domain_name", "title"], - caseSensitive: false, + isCaseSensitive: false, minMatchCharLength: 2, threshold: 0.2, }; const fuse = new Fuse(configEntries, options); - return fuse.search(filter); + return fuse.search(filter).map((result) => result.item); } ); @@ -193,14 +193,14 @@ class HaConfigIntegrations extends SubscribeMixin(LitElement) { if (!filter) { return configEntriesInProgress; } - const options: Fuse.FuseOptions = { + const options: Fuse.IFuseOptions = { keys: ["handler", "localized_title"], - caseSensitive: false, + isCaseSensitive: false, minMatchCharLength: 2, threshold: 0.2, }; const fuse = new Fuse(configEntriesInProgress, options); - return fuse.search(filter); + return fuse.search(filter).map((result) => result.item); } ); diff --git a/src/panels/lovelace/editor/card-editor/hui-card-picker.ts b/src/panels/lovelace/editor/card-editor/hui-card-picker.ts index 9b0216d155..14bd738d1d 100644 --- a/src/panels/lovelace/editor/card-editor/hui-card-picker.ts +++ b/src/panels/lovelace/editor/card-editor/hui-card-picker.ts @@ -1,4 +1,4 @@ -import * as Fuse from "fuse.js"; +import Fuse from "fuse.js"; import { css, CSSResult, @@ -60,14 +60,14 @@ export class HuiCardPicker extends LitElement { let cards = cardElements.map( (cardElement: CardElement) => cardElement.card ); - const options: Fuse.FuseOptions = { + const options: Fuse.IFuseOptions = { keys: ["type", "name", "description"], - caseSensitive: false, + isCaseSensitive: false, minMatchCharLength: 2, threshold: 0.2, }; const fuse = new Fuse(cards, options); - cards = fuse.search(filter); + cards = fuse.search(filter).map((result) => result.item); cardElements = cardElements.filter((cardElement: CardElement) => cards.includes(cardElement.card) ); diff --git a/yarn.lock b/yarn.lock index 55bef23820..14e56d7066 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7907,10 +7907,10 @@ functional-red-black-tree@^1.0.1: resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= -fuse.js@^3.4.4: - version "3.4.4" - resolved "https://registry.yarnpkg.com/fuse.js/-/fuse.js-3.4.4.tgz#f98f55fcb3b595cf6a3e629c5ffaf10982103e95" - integrity sha512-pyLQo/1oR5Ywf+a/tY8z4JygnIglmRxVUOiyFAbd11o9keUDpUJSMGRWJngcnkURj30kDHPmhoKY8ChJiz3EpQ== +fuse.js@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/fuse.js/-/fuse.js-6.0.0.tgz#6fc16cd7555648deda392892402d4188553552b2" + integrity sha512-e5Ap6mhF/WQ9bKqsMFTTR5/DS9qbYab4VXHtMdxCanH+VZkdUV2LqcgMO31etSQv53NXsguQF1bdqkrrPAM2HQ== g-status@^2.0.2: version "2.0.2"