summaryrefslogtreecommitdiffstats
path: root/packages/gitbook-plugin-search
diff options
context:
space:
mode:
authorSamy Pesse <samypesse@gmail.com>2016-10-05 13:36:38 +0200
committerSamy Pesse <samypesse@gmail.com>2016-10-05 13:36:38 +0200
commit86848e7acb5e5308297a0e4aaf0a164e7f9bf5f2 (patch)
tree745ec1374b3a051fb5c0660c4f4a6154e9abc70a /packages/gitbook-plugin-search
parent9ce3646d6e0d10035b6528e5384189fbed3d18c6 (diff)
downloadgitbook-86848e7acb5e5308297a0e4aaf0a164e7f9bf5f2.zip
gitbook-86848e7acb5e5308297a0e4aaf0a164e7f9bf5f2.tar.gz
gitbook-86848e7acb5e5308297a0e4aaf0a164e7f9bf5f2.tar.bz2
Fix format of lunr results
Diffstat (limited to 'packages/gitbook-plugin-search')
-rw-r--r--packages/gitbook-plugin-search/src/actions/search.js8
-rw-r--r--packages/gitbook-plugin-search/src/models/Result.js14
2 files changed, 17 insertions, 5 deletions
diff --git a/packages/gitbook-plugin-search/src/actions/search.js b/packages/gitbook-plugin-search/src/actions/search.js
index 8c1c08c..6f8f8ad 100644
--- a/packages/gitbook-plugin-search/src/actions/search.js
+++ b/packages/gitbook-plugin-search/src/actions/search.js
@@ -1,6 +1,8 @@
const { Promise, Immutable } = require('gitbook-core');
const { List } = Immutable;
+
const TYPES = require('./types');
+const Result = require('../models/Result');
/*
Search workflow:
@@ -49,6 +51,9 @@ function handleQuery(q) {
handlers.toArray(),
(results, handler) => {
return Promise.resolve(handler(q, dispatch, getState, actions))
+ .then(handlerResults => {
+ return handlerResults.map(result => new Result(result));
+ })
.then(handlerResults => results.concat(handlerResults));
},
List()
@@ -56,9 +61,6 @@ function handleQuery(q) {
.then(
results => {
dispatch({ type: TYPES.END, query: q, results });
- },
- error => {
- console.error(error);
}
);
};
diff --git a/packages/gitbook-plugin-search/src/models/Result.js b/packages/gitbook-plugin-search/src/models/Result.js
index 71c6d9d..0012b2b 100644
--- a/packages/gitbook-plugin-search/src/models/Result.js
+++ b/packages/gitbook-plugin-search/src/models/Result.js
@@ -1,10 +1,20 @@
const GitBook = require('gitbook-core');
const { Record } = GitBook.Immutable;
-const Result = Record({
+const DEFAULTS = {
url: String(''),
title: String(''),
body: String('')
-});
+};
+
+class Result extends Record(DEFAULTS) {
+ constructor(spec) {
+ if (!spec.url || !spec.title) {
+ throw new Error('"url" and "title" are required to create a search result');
+ }
+
+ super(spec);
+ }
+}
module.exports = Result;