From efdce070e1cea59d52d9f3bf47d468890658eceb Mon Sep 17 00:00:00 2001 From: Jacky Zhao Date: Sat, 27 Jan 2024 22:15:25 -0800 Subject: [PATCH] deps: bump flexsearch --- package-lock.json | 15 ++++----------- package.json | 3 +-- quartz/cli/handlers.js | 1 + quartz/components/scripts/search.inline.ts | 17 ++++++++--------- tsconfig.json | 2 +- 5 files changed, 15 insertions(+), 23 deletions(-) diff --git a/package-lock.json b/package-lock.json index 031422a3d..594c5ad3f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -18,7 +18,7 @@ "cli-spinner": "^0.2.10", "d3": "^7.8.5", "esbuild-sass-plugin": "^2.16.0", - "flexsearch": "0.7.21", + "flexsearch": "0.7.43", "github-slugger": "^2.0.0", "globby": "^14.0.0", "gray-matter": "^4.0.3", @@ -71,7 +71,6 @@ "devDependencies": { "@types/cli-spinner": "^0.2.3", "@types/d3": "^7.4.3", - "@types/flexsearch": "^0.7.3", "@types/hast": "^3.0.3", "@types/js-yaml": "^4.0.9", "@types/node": "^20.1.2", @@ -1038,12 +1037,6 @@ "@types/estree": "*" } }, - "node_modules/@types/flexsearch": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/@types/flexsearch/-/flexsearch-0.7.3.tgz", - "integrity": "sha512-HXwADeHEP4exXkCIwy2n1+i0f1ilP1ETQOH5KDOugjkTFZPntWo0Gr8stZOaebkxsdx+k0X/K6obU/+it07ocg==", - "dev": true - }, "node_modules/@types/geojson": { "version": "7946.0.10", "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.10.tgz", @@ -2196,9 +2189,9 @@ } }, "node_modules/flexsearch": { - "version": "0.7.21", - "resolved": "https://registry.npmjs.org/flexsearch/-/flexsearch-0.7.21.tgz", - "integrity": "sha512-W7cHV7Hrwjid6lWmy0IhsWDFQboWSng25U3VVywpHOTJnnAZNPScog67G+cVpeX9f7yDD21ih0WDrMMT+JoaYg==" + "version": "0.7.43", + "resolved": "https://registry.npmjs.org/flexsearch/-/flexsearch-0.7.43.tgz", + "integrity": "sha512-c5o/+Um8aqCSOXGcZoqZOm+NqtVwNsvVpWv6lfmSclU954O3wvQKxxK8zj74fPaSJbXpSLTs4PRhh+wnoCXnKg==" }, "node_modules/foreground-child": { "version": "3.1.1", diff --git a/package.json b/package.json index bbaa688bd..5ebe7eee1 100644 --- a/package.json +++ b/package.json @@ -43,7 +43,7 @@ "cli-spinner": "^0.2.10", "d3": "^7.8.5", "esbuild-sass-plugin": "^2.16.0", - "flexsearch": "0.7.21", + "flexsearch": "0.7.43", "github-slugger": "^2.0.0", "globby": "^14.0.0", "gray-matter": "^4.0.3", @@ -93,7 +93,6 @@ "devDependencies": { "@types/cli-spinner": "^0.2.3", "@types/d3": "^7.4.3", - "@types/flexsearch": "^0.7.3", "@types/hast": "^3.0.3", "@types/js-yaml": "^4.0.9", "@types/node": "^20.1.2", diff --git a/quartz/cli/handlers.js b/quartz/cli/handlers.js index 6f8aad1ab..8e32620b3 100644 --- a/quartz/cli/handlers.js +++ b/quartz/cli/handlers.js @@ -258,6 +258,7 @@ export async function handleBuild(argv) { }, write: false, bundle: true, + minify: true, platform: "browser", format: "esm", }) diff --git a/quartz/components/scripts/search.inline.ts b/quartz/components/scripts/search.inline.ts index df21f6b35..941d35bb3 100644 --- a/quartz/components/scripts/search.inline.ts +++ b/quartz/components/scripts/search.inline.ts @@ -1,4 +1,4 @@ -import { Document, SimpleDocumentSearchResultSetUnit } from "flexsearch" +import FlexSearch from "flexsearch" import { ContentDetails } from "../../plugins/emitters/contentIndex" import { registerEscapeHandler, removeAllChildren } from "./util" import { FullSlug, resolveRelative } from "../../util/path" @@ -11,7 +11,7 @@ interface Item { tags: string[] } -let index: Document | undefined = undefined +let index: FlexSearch.Document | undefined = undefined // Can be expanded with things like "term" in the future type SearchType = "basic" | "tags" @@ -250,7 +250,7 @@ document.addEventListener("nav", async (e: unknown) => { async function onType(e: HTMLElementEventMap["input"]) { let term = (e.target as HTMLInputElement).value - let searchResults: SimpleDocumentSearchResultSetUnit[] + let searchResults: FlexSearch.SimpleDocumentSearchResultSetUnit[] if (term.toLowerCase().startsWith("#")) { searchType = "tags" @@ -305,24 +305,23 @@ document.addEventListener("nav", async (e: unknown) => { // setup index if it hasn't been already if (!index) { - index = new Document({ + index = new FlexSearch.Document({ charset: "latin:extra", - optimize: true, encode: encoder, document: { id: "id", index: [ { field: "title", - tokenize: "reverse", + tokenize: "forward", }, { field: "content", - tokenize: "reverse", + tokenize: "forward", }, { field: "tags", - tokenize: "reverse", + tokenize: "forward", }, ], }, @@ -340,7 +339,7 @@ document.addEventListener("nav", async (e: unknown) => { * @param index index to fill * @param data data to fill index with */ -async function fillDocument(index: Document, data: any) { +async function fillDocument(index: FlexSearch.Document, data: any) { let id = 0 for (const [slug, fileData] of Object.entries(data)) { await index.addAsync(id, { diff --git a/tsconfig.json b/tsconfig.json index 784ab231b..df6e2ddfe 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -4,7 +4,7 @@ "experimentalDecorators": true, "module": "esnext", "target": "esnext", - "moduleResolution": "node", + "moduleResolution": "bundler", "strict": true, "incremental": true, "resolveJsonModule": true,