mirror of
https://github.com/verdaccio/verdaccio.git
synced 2025-02-21 07:29:37 +01:00
chore(flow): add flow for search class
This commit is contained in:
parent
d086073069
commit
dfe8007f9b
431
flow-typed/npm/lunr_vx.x.x.js
vendored
Normal file
431
flow-typed/npm/lunr_vx.x.x.js
vendored
Normal file
@ -0,0 +1,431 @@
|
||||
// flow-typed signature: e0027883db9b96a34c42414495ddfa2b
|
||||
// flow-typed version: <<STUB>>/lunr_v0.7.2/flow_v0.64.0
|
||||
|
||||
/**
|
||||
* This is an autogenerated libdef stub for:
|
||||
*
|
||||
* 'lunr'
|
||||
*
|
||||
* Fill this stub out by replacing all the `any` types.
|
||||
*
|
||||
* Once filled out, we encourage you to share your work with the
|
||||
* community by sending a pull request to:
|
||||
* https://github.com/flowtype/flow-typed
|
||||
*/
|
||||
|
||||
declare module 'lunr' {
|
||||
declare module.exports: any;
|
||||
}
|
||||
|
||||
/**
|
||||
* We include stubs for each file inside this npm package in case you need to
|
||||
* require those files directly. Feel free to delete any files that aren't
|
||||
* needed.
|
||||
*/
|
||||
declare module 'lunr/app' {
|
||||
declare module.exports: any;
|
||||
}
|
||||
|
||||
declare module 'lunr/example/app' {
|
||||
declare module.exports: any;
|
||||
}
|
||||
|
||||
declare module 'lunr/example/index_builder' {
|
||||
declare module.exports: any;
|
||||
}
|
||||
|
||||
declare module 'lunr/example/jquery' {
|
||||
declare module.exports: any;
|
||||
}
|
||||
|
||||
declare module 'lunr/example/mustache' {
|
||||
declare module.exports: any;
|
||||
}
|
||||
|
||||
declare module 'lunr/example/require' {
|
||||
declare module.exports: any;
|
||||
}
|
||||
|
||||
declare module 'lunr/example/text' {
|
||||
declare module.exports: any;
|
||||
}
|
||||
|
||||
declare module 'lunr/lib/document_store' {
|
||||
declare module.exports: any;
|
||||
}
|
||||
|
||||
declare module 'lunr/lib/event_emitter' {
|
||||
declare module.exports: any;
|
||||
}
|
||||
|
||||
declare module 'lunr/lib/index' {
|
||||
declare module.exports: any;
|
||||
}
|
||||
|
||||
declare module 'lunr/lib/lunr' {
|
||||
declare module.exports: any;
|
||||
}
|
||||
|
||||
declare module 'lunr/lib/pipeline' {
|
||||
declare module.exports: any;
|
||||
}
|
||||
|
||||
declare module 'lunr/lib/sorted_set' {
|
||||
declare module.exports: any;
|
||||
}
|
||||
|
||||
declare module 'lunr/lib/stemmer' {
|
||||
declare module.exports: any;
|
||||
}
|
||||
|
||||
declare module 'lunr/lib/stop_word_filter' {
|
||||
declare module.exports: any;
|
||||
}
|
||||
|
||||
declare module 'lunr/lib/token_store' {
|
||||
declare module.exports: any;
|
||||
}
|
||||
|
||||
declare module 'lunr/lib/tokenizer' {
|
||||
declare module.exports: any;
|
||||
}
|
||||
|
||||
declare module 'lunr/lib/trimmer' {
|
||||
declare module.exports: any;
|
||||
}
|
||||
|
||||
declare module 'lunr/lib/utils' {
|
||||
declare module.exports: any;
|
||||
}
|
||||
|
||||
declare module 'lunr/lib/vector' {
|
||||
declare module.exports: any;
|
||||
}
|
||||
|
||||
declare module 'lunr/lunr' {
|
||||
declare module.exports: any;
|
||||
}
|
||||
|
||||
declare module 'lunr/lunr.min' {
|
||||
declare module.exports: any;
|
||||
}
|
||||
|
||||
declare module 'lunr/perf/document_store_test' {
|
||||
declare module.exports: any;
|
||||
}
|
||||
|
||||
declare module 'lunr/perf/env/bench' {
|
||||
declare module.exports: any;
|
||||
}
|
||||
|
||||
declare module 'lunr/perf/env/benchmark' {
|
||||
declare module.exports: any;
|
||||
}
|
||||
|
||||
declare module 'lunr/perf/env/jquery' {
|
||||
declare module.exports: any;
|
||||
}
|
||||
|
||||
declare module 'lunr/perf/env/mustache' {
|
||||
declare module.exports: any;
|
||||
}
|
||||
|
||||
declare module 'lunr/perf/fixtures/questions' {
|
||||
declare module.exports: any;
|
||||
}
|
||||
|
||||
declare module 'lunr/perf/foo_test' {
|
||||
declare module.exports: any;
|
||||
}
|
||||
|
||||
declare module 'lunr/perf/index_test' {
|
||||
declare module.exports: any;
|
||||
}
|
||||
|
||||
declare module 'lunr/perf/pipeline_test' {
|
||||
declare module.exports: any;
|
||||
}
|
||||
|
||||
declare module 'lunr/perf/set_index_of_test' {
|
||||
declare module.exports: any;
|
||||
}
|
||||
|
||||
declare module 'lunr/perf/sorted_set_test' {
|
||||
declare module.exports: any;
|
||||
}
|
||||
|
||||
declare module 'lunr/perf/stemmer_test' {
|
||||
declare module.exports: any;
|
||||
}
|
||||
|
||||
declare module 'lunr/perf/token_store_test' {
|
||||
declare module.exports: any;
|
||||
}
|
||||
|
||||
declare module 'lunr/perf/tokenizer_test' {
|
||||
declare module.exports: any;
|
||||
}
|
||||
|
||||
declare module 'lunr/perf/vector_test' {
|
||||
declare module.exports: any;
|
||||
}
|
||||
|
||||
declare module 'lunr/server' {
|
||||
declare module.exports: any;
|
||||
}
|
||||
|
||||
declare module 'lunr/test/env/augment.min' {
|
||||
declare module.exports: any;
|
||||
}
|
||||
|
||||
declare module 'lunr/test/env/jquery' {
|
||||
declare module.exports: any;
|
||||
}
|
||||
|
||||
declare module 'lunr/test/env/qunit' {
|
||||
declare module.exports: any;
|
||||
}
|
||||
|
||||
declare module 'lunr/test/env/runner' {
|
||||
declare module.exports: any;
|
||||
}
|
||||
|
||||
declare module 'lunr/test/event_emitter_test' {
|
||||
declare module.exports: any;
|
||||
}
|
||||
|
||||
declare module 'lunr/test/index_test' {
|
||||
declare module.exports: any;
|
||||
}
|
||||
|
||||
declare module 'lunr/test/lunr_test' {
|
||||
declare module.exports: any;
|
||||
}
|
||||
|
||||
declare module 'lunr/test/pipeline_test' {
|
||||
declare module.exports: any;
|
||||
}
|
||||
|
||||
declare module 'lunr/test/search_test' {
|
||||
declare module.exports: any;
|
||||
}
|
||||
|
||||
declare module 'lunr/test/serialisation_test' {
|
||||
declare module.exports: any;
|
||||
}
|
||||
|
||||
declare module 'lunr/test/sorted_set_test' {
|
||||
declare module.exports: any;
|
||||
}
|
||||
|
||||
declare module 'lunr/test/stemmer_test' {
|
||||
declare module.exports: any;
|
||||
}
|
||||
|
||||
declare module 'lunr/test/stop_word_filter_test' {
|
||||
declare module.exports: any;
|
||||
}
|
||||
|
||||
declare module 'lunr/test/store_node_test' {
|
||||
declare module.exports: any;
|
||||
}
|
||||
|
||||
declare module 'lunr/test/store_test' {
|
||||
declare module.exports: any;
|
||||
}
|
||||
|
||||
declare module 'lunr/test/test_helper' {
|
||||
declare module.exports: any;
|
||||
}
|
||||
|
||||
declare module 'lunr/test/token_store_test' {
|
||||
declare module.exports: any;
|
||||
}
|
||||
|
||||
declare module 'lunr/test/tokenizer_test' {
|
||||
declare module.exports: any;
|
||||
}
|
||||
|
||||
declare module 'lunr/test/trimmer_test' {
|
||||
declare module.exports: any;
|
||||
}
|
||||
|
||||
declare module 'lunr/test/vector_test' {
|
||||
declare module.exports: any;
|
||||
}
|
||||
|
||||
// Filename aliases
|
||||
declare module 'lunr/app.js' {
|
||||
declare module.exports: $Exports<'lunr/app'>;
|
||||
}
|
||||
declare module 'lunr/example/app.js' {
|
||||
declare module.exports: $Exports<'lunr/example/app'>;
|
||||
}
|
||||
declare module 'lunr/example/index_builder.js' {
|
||||
declare module.exports: $Exports<'lunr/example/index_builder'>;
|
||||
}
|
||||
declare module 'lunr/example/jquery.js' {
|
||||
declare module.exports: $Exports<'lunr/example/jquery'>;
|
||||
}
|
||||
declare module 'lunr/example/mustache.js' {
|
||||
declare module.exports: $Exports<'lunr/example/mustache'>;
|
||||
}
|
||||
declare module 'lunr/example/require.js' {
|
||||
declare module.exports: $Exports<'lunr/example/require'>;
|
||||
}
|
||||
declare module 'lunr/example/text.js' {
|
||||
declare module.exports: $Exports<'lunr/example/text'>;
|
||||
}
|
||||
declare module 'lunr/lib/document_store.js' {
|
||||
declare module.exports: $Exports<'lunr/lib/document_store'>;
|
||||
}
|
||||
declare module 'lunr/lib/event_emitter.js' {
|
||||
declare module.exports: $Exports<'lunr/lib/event_emitter'>;
|
||||
}
|
||||
declare module 'lunr/lib/index.js' {
|
||||
declare module.exports: $Exports<'lunr/lib/index'>;
|
||||
}
|
||||
declare module 'lunr/lib/lunr.js' {
|
||||
declare module.exports: $Exports<'lunr/lib/lunr'>;
|
||||
}
|
||||
declare module 'lunr/lib/pipeline.js' {
|
||||
declare module.exports: $Exports<'lunr/lib/pipeline'>;
|
||||
}
|
||||
declare module 'lunr/lib/sorted_set.js' {
|
||||
declare module.exports: $Exports<'lunr/lib/sorted_set'>;
|
||||
}
|
||||
declare module 'lunr/lib/stemmer.js' {
|
||||
declare module.exports: $Exports<'lunr/lib/stemmer'>;
|
||||
}
|
||||
declare module 'lunr/lib/stop_word_filter.js' {
|
||||
declare module.exports: $Exports<'lunr/lib/stop_word_filter'>;
|
||||
}
|
||||
declare module 'lunr/lib/token_store.js' {
|
||||
declare module.exports: $Exports<'lunr/lib/token_store'>;
|
||||
}
|
||||
declare module 'lunr/lib/tokenizer.js' {
|
||||
declare module.exports: $Exports<'lunr/lib/tokenizer'>;
|
||||
}
|
||||
declare module 'lunr/lib/trimmer.js' {
|
||||
declare module.exports: $Exports<'lunr/lib/trimmer'>;
|
||||
}
|
||||
declare module 'lunr/lib/utils.js' {
|
||||
declare module.exports: $Exports<'lunr/lib/utils'>;
|
||||
}
|
||||
declare module 'lunr/lib/vector.js' {
|
||||
declare module.exports: $Exports<'lunr/lib/vector'>;
|
||||
}
|
||||
declare module 'lunr/lunr.js' {
|
||||
declare module.exports: $Exports<'lunr/lunr'>;
|
||||
}
|
||||
declare module 'lunr/lunr.min.js' {
|
||||
declare module.exports: $Exports<'lunr/lunr.min'>;
|
||||
}
|
||||
declare module 'lunr/perf/document_store_test.js' {
|
||||
declare module.exports: $Exports<'lunr/perf/document_store_test'>;
|
||||
}
|
||||
declare module 'lunr/perf/env/bench.js' {
|
||||
declare module.exports: $Exports<'lunr/perf/env/bench'>;
|
||||
}
|
||||
declare module 'lunr/perf/env/benchmark.js' {
|
||||
declare module.exports: $Exports<'lunr/perf/env/benchmark'>;
|
||||
}
|
||||
declare module 'lunr/perf/env/jquery.js' {
|
||||
declare module.exports: $Exports<'lunr/perf/env/jquery'>;
|
||||
}
|
||||
declare module 'lunr/perf/env/mustache.js' {
|
||||
declare module.exports: $Exports<'lunr/perf/env/mustache'>;
|
||||
}
|
||||
declare module 'lunr/perf/fixtures/questions.js' {
|
||||
declare module.exports: $Exports<'lunr/perf/fixtures/questions'>;
|
||||
}
|
||||
declare module 'lunr/perf/foo_test.js' {
|
||||
declare module.exports: $Exports<'lunr/perf/foo_test'>;
|
||||
}
|
||||
declare module 'lunr/perf/index_test.js' {
|
||||
declare module.exports: $Exports<'lunr/perf/index_test'>;
|
||||
}
|
||||
declare module 'lunr/perf/pipeline_test.js' {
|
||||
declare module.exports: $Exports<'lunr/perf/pipeline_test'>;
|
||||
}
|
||||
declare module 'lunr/perf/set_index_of_test.js' {
|
||||
declare module.exports: $Exports<'lunr/perf/set_index_of_test'>;
|
||||
}
|
||||
declare module 'lunr/perf/sorted_set_test.js' {
|
||||
declare module.exports: $Exports<'lunr/perf/sorted_set_test'>;
|
||||
}
|
||||
declare module 'lunr/perf/stemmer_test.js' {
|
||||
declare module.exports: $Exports<'lunr/perf/stemmer_test'>;
|
||||
}
|
||||
declare module 'lunr/perf/token_store_test.js' {
|
||||
declare module.exports: $Exports<'lunr/perf/token_store_test'>;
|
||||
}
|
||||
declare module 'lunr/perf/tokenizer_test.js' {
|
||||
declare module.exports: $Exports<'lunr/perf/tokenizer_test'>;
|
||||
}
|
||||
declare module 'lunr/perf/vector_test.js' {
|
||||
declare module.exports: $Exports<'lunr/perf/vector_test'>;
|
||||
}
|
||||
declare module 'lunr/server.js' {
|
||||
declare module.exports: $Exports<'lunr/server'>;
|
||||
}
|
||||
declare module 'lunr/test/env/augment.min.js' {
|
||||
declare module.exports: $Exports<'lunr/test/env/augment.min'>;
|
||||
}
|
||||
declare module 'lunr/test/env/jquery.js' {
|
||||
declare module.exports: $Exports<'lunr/test/env/jquery'>;
|
||||
}
|
||||
declare module 'lunr/test/env/qunit.js' {
|
||||
declare module.exports: $Exports<'lunr/test/env/qunit'>;
|
||||
}
|
||||
declare module 'lunr/test/env/runner.js' {
|
||||
declare module.exports: $Exports<'lunr/test/env/runner'>;
|
||||
}
|
||||
declare module 'lunr/test/event_emitter_test.js' {
|
||||
declare module.exports: $Exports<'lunr/test/event_emitter_test'>;
|
||||
}
|
||||
declare module 'lunr/test/index_test.js' {
|
||||
declare module.exports: $Exports<'lunr/test/index_test'>;
|
||||
}
|
||||
declare module 'lunr/test/lunr_test.js' {
|
||||
declare module.exports: $Exports<'lunr/test/lunr_test'>;
|
||||
}
|
||||
declare module 'lunr/test/pipeline_test.js' {
|
||||
declare module.exports: $Exports<'lunr/test/pipeline_test'>;
|
||||
}
|
||||
declare module 'lunr/test/search_test.js' {
|
||||
declare module.exports: $Exports<'lunr/test/search_test'>;
|
||||
}
|
||||
declare module 'lunr/test/serialisation_test.js' {
|
||||
declare module.exports: $Exports<'lunr/test/serialisation_test'>;
|
||||
}
|
||||
declare module 'lunr/test/sorted_set_test.js' {
|
||||
declare module.exports: $Exports<'lunr/test/sorted_set_test'>;
|
||||
}
|
||||
declare module 'lunr/test/stemmer_test.js' {
|
||||
declare module.exports: $Exports<'lunr/test/stemmer_test'>;
|
||||
}
|
||||
declare module 'lunr/test/stop_word_filter_test.js' {
|
||||
declare module.exports: $Exports<'lunr/test/stop_word_filter_test'>;
|
||||
}
|
||||
declare module 'lunr/test/store_node_test.js' {
|
||||
declare module.exports: $Exports<'lunr/test/store_node_test'>;
|
||||
}
|
||||
declare module 'lunr/test/store_test.js' {
|
||||
declare module.exports: $Exports<'lunr/test/store_test'>;
|
||||
}
|
||||
declare module 'lunr/test/test_helper.js' {
|
||||
declare module.exports: $Exports<'lunr/test/test_helper'>;
|
||||
}
|
||||
declare module 'lunr/test/token_store_test.js' {
|
||||
declare module.exports: $Exports<'lunr/test/token_store_test'>;
|
||||
}
|
||||
declare module 'lunr/test/tokenizer_test.js' {
|
||||
declare module.exports: $Exports<'lunr/test/tokenizer_test'>;
|
||||
}
|
||||
declare module 'lunr/test/trimmer_test.js' {
|
||||
declare module.exports: $Exports<'lunr/test/trimmer_test'>;
|
||||
}
|
||||
declare module 'lunr/test/vector_test.js' {
|
||||
declare module.exports: $Exports<'lunr/test/vector_test'>;
|
||||
}
|
@ -1,16 +1,21 @@
|
||||
/* eslint no-invalid-this: "off" */
|
||||
// @flow
|
||||
|
||||
const lunr = require('lunr');
|
||||
import lunr from 'lunr';
|
||||
import type {IStorageHandler, Version, IWebSearch} from '@verdaccio/types';
|
||||
|
||||
/**
|
||||
* Handle the search Indexer.
|
||||
*/
|
||||
class Search {
|
||||
class Search implements IWebSearch {
|
||||
|
||||
index: any;
|
||||
storage: IStorageHandler;
|
||||
|
||||
/**
|
||||
* Constructor.
|
||||
*/
|
||||
constructor() {
|
||||
/* eslint no-invalid-this: "off" */
|
||||
this.index = lunr(function() {
|
||||
this.field('name', {boost: 10});
|
||||
this.field('description', {boost: 4});
|
||||
@ -26,18 +31,18 @@ class Search {
|
||||
* @param {*} q the keyword
|
||||
* @return {Array} list of results.
|
||||
*/
|
||||
query(q) {
|
||||
return q === '*'
|
||||
? this.storage.localStorage.localList.get().map( function( pkg ) {
|
||||
query(query: string) {
|
||||
return query === '*'
|
||||
? this.storage.localStorage.localData.get().map( function( pkg ) {
|
||||
return {ref: pkg, score: 1};
|
||||
}) : this.index.search(q);
|
||||
}) : this.index.search(query);
|
||||
}
|
||||
|
||||
/**
|
||||
* Add a new element to index
|
||||
* @param {*} pkg the package
|
||||
*/
|
||||
add(pkg) {
|
||||
add(pkg: Version) {
|
||||
this.index.add({
|
||||
id: pkg.name,
|
||||
name: pkg.name,
|
||||
@ -50,7 +55,7 @@ class Search {
|
||||
* Remove an element from the index.
|
||||
* @param {*} name the id element
|
||||
*/
|
||||
remove(name) {
|
||||
remove(name: string) {
|
||||
this.index.remove({id: name});
|
||||
}
|
||||
|
||||
@ -72,7 +77,7 @@ class Search {
|
||||
* Set up the {Storage}
|
||||
* @param {*} storage An storage reference.
|
||||
*/
|
||||
configureStorage(storage) {
|
||||
configureStorage(storage: IStorageHandler) {
|
||||
this.storage = storage;
|
||||
this.reindex();
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user