deps: bump flexsearch

This commit is contained in:
Jacky Zhao 2024-01-27 22:15:25 -08:00
parent 2739457c86
commit efdce070e1
5 changed files with 15 additions and 23 deletions

15
package-lock.json generated
View file

@ -18,7 +18,7 @@
"cli-spinner": "^0.2.10", "cli-spinner": "^0.2.10",
"d3": "^7.8.5", "d3": "^7.8.5",
"esbuild-sass-plugin": "^2.16.0", "esbuild-sass-plugin": "^2.16.0",
"flexsearch": "0.7.21", "flexsearch": "0.7.43",
"github-slugger": "^2.0.0", "github-slugger": "^2.0.0",
"globby": "^14.0.0", "globby": "^14.0.0",
"gray-matter": "^4.0.3", "gray-matter": "^4.0.3",
@ -71,7 +71,6 @@
"devDependencies": { "devDependencies": {
"@types/cli-spinner": "^0.2.3", "@types/cli-spinner": "^0.2.3",
"@types/d3": "^7.4.3", "@types/d3": "^7.4.3",
"@types/flexsearch": "^0.7.3",
"@types/hast": "^3.0.3", "@types/hast": "^3.0.3",
"@types/js-yaml": "^4.0.9", "@types/js-yaml": "^4.0.9",
"@types/node": "^20.1.2", "@types/node": "^20.1.2",
@ -1038,12 +1037,6 @@
"@types/estree": "*" "@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": { "node_modules/@types/geojson": {
"version": "7946.0.10", "version": "7946.0.10",
"resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.10.tgz", "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.10.tgz",
@ -2196,9 +2189,9 @@
} }
}, },
"node_modules/flexsearch": { "node_modules/flexsearch": {
"version": "0.7.21", "version": "0.7.43",
"resolved": "https://registry.npmjs.org/flexsearch/-/flexsearch-0.7.21.tgz", "resolved": "https://registry.npmjs.org/flexsearch/-/flexsearch-0.7.43.tgz",
"integrity": "sha512-W7cHV7Hrwjid6lWmy0IhsWDFQboWSng25U3VVywpHOTJnnAZNPScog67G+cVpeX9f7yDD21ih0WDrMMT+JoaYg==" "integrity": "sha512-c5o/+Um8aqCSOXGcZoqZOm+NqtVwNsvVpWv6lfmSclU954O3wvQKxxK8zj74fPaSJbXpSLTs4PRhh+wnoCXnKg=="
}, },
"node_modules/foreground-child": { "node_modules/foreground-child": {
"version": "3.1.1", "version": "3.1.1",

View file

@ -43,7 +43,7 @@
"cli-spinner": "^0.2.10", "cli-spinner": "^0.2.10",
"d3": "^7.8.5", "d3": "^7.8.5",
"esbuild-sass-plugin": "^2.16.0", "esbuild-sass-plugin": "^2.16.0",
"flexsearch": "0.7.21", "flexsearch": "0.7.43",
"github-slugger": "^2.0.0", "github-slugger": "^2.0.0",
"globby": "^14.0.0", "globby": "^14.0.0",
"gray-matter": "^4.0.3", "gray-matter": "^4.0.3",
@ -93,7 +93,6 @@
"devDependencies": { "devDependencies": {
"@types/cli-spinner": "^0.2.3", "@types/cli-spinner": "^0.2.3",
"@types/d3": "^7.4.3", "@types/d3": "^7.4.3",
"@types/flexsearch": "^0.7.3",
"@types/hast": "^3.0.3", "@types/hast": "^3.0.3",
"@types/js-yaml": "^4.0.9", "@types/js-yaml": "^4.0.9",
"@types/node": "^20.1.2", "@types/node": "^20.1.2",

View file

@ -258,6 +258,7 @@ export async function handleBuild(argv) {
}, },
write: false, write: false,
bundle: true, bundle: true,
minify: true,
platform: "browser", platform: "browser",
format: "esm", format: "esm",
}) })

View file

@ -1,4 +1,4 @@
import { Document, SimpleDocumentSearchResultSetUnit } from "flexsearch" import FlexSearch from "flexsearch"
import { ContentDetails } from "../../plugins/emitters/contentIndex" import { ContentDetails } from "../../plugins/emitters/contentIndex"
import { registerEscapeHandler, removeAllChildren } from "./util" import { registerEscapeHandler, removeAllChildren } from "./util"
import { FullSlug, resolveRelative } from "../../util/path" import { FullSlug, resolveRelative } from "../../util/path"
@ -11,7 +11,7 @@ interface Item {
tags: string[] tags: string[]
} }
let index: Document<Item> | undefined = undefined let index: FlexSearch.Document<Item> | undefined = undefined
// Can be expanded with things like "term" in the future // Can be expanded with things like "term" in the future
type SearchType = "basic" | "tags" type SearchType = "basic" | "tags"
@ -250,7 +250,7 @@ document.addEventListener("nav", async (e: unknown) => {
async function onType(e: HTMLElementEventMap["input"]) { async function onType(e: HTMLElementEventMap["input"]) {
let term = (e.target as HTMLInputElement).value let term = (e.target as HTMLInputElement).value
let searchResults: SimpleDocumentSearchResultSetUnit[] let searchResults: FlexSearch.SimpleDocumentSearchResultSetUnit[]
if (term.toLowerCase().startsWith("#")) { if (term.toLowerCase().startsWith("#")) {
searchType = "tags" searchType = "tags"
@ -305,24 +305,23 @@ document.addEventListener("nav", async (e: unknown) => {
// setup index if it hasn't been already // setup index if it hasn't been already
if (!index) { if (!index) {
index = new Document({ index = new FlexSearch.Document({
charset: "latin:extra", charset: "latin:extra",
optimize: true,
encode: encoder, encode: encoder,
document: { document: {
id: "id", id: "id",
index: [ index: [
{ {
field: "title", field: "title",
tokenize: "reverse", tokenize: "forward",
}, },
{ {
field: "content", field: "content",
tokenize: "reverse", tokenize: "forward",
}, },
{ {
field: "tags", field: "tags",
tokenize: "reverse", tokenize: "forward",
}, },
], ],
}, },
@ -340,7 +339,7 @@ document.addEventListener("nav", async (e: unknown) => {
* @param index index to fill * @param index index to fill
* @param data data to fill index with * @param data data to fill index with
*/ */
async function fillDocument(index: Document<Item, false>, data: any) { async function fillDocument(index: FlexSearch.Document<Item, false>, data: any) {
let id = 0 let id = 0
for (const [slug, fileData] of Object.entries<ContentDetails>(data)) { for (const [slug, fileData] of Object.entries<ContentDetails>(data)) {
await index.addAsync(id, { await index.addAsync(id, {

View file

@ -4,7 +4,7 @@
"experimentalDecorators": true, "experimentalDecorators": true,
"module": "esnext", "module": "esnext",
"target": "esnext", "target": "esnext",
"moduleResolution": "node", "moduleResolution": "bundler",
"strict": true, "strict": true,
"incremental": true, "incremental": true,
"resolveJsonModule": true, "resolveJsonModule": true,