UNPKG

1.02 kBPlain TextView Raw
1import { SearchParams, SolrCore, DataStore } from './DataStore';
2import * as _ from 'lodash';
3
4interface PageParams {
5 page: string;
6 query: string;
7 facets: { [ key: string ]: string[] };
8}
9
10function namespace(params: SearchParams, core: SolrCore<{}>, ns: string): [SolrCore<{}>, SearchParams] {
11 const result: [SolrCore<{}>, SearchParams] = [core, {
12 // TODO NAMESPACING
13 type: 'QUERY',
14 query: params.query,
15 start: params.start
16 }];
17
18 return result;
19}
20
21function fixParams(params: PageParams): SearchParams {
22 return {
23 type: 'QUERY',
24 query: params.query,
25 start: (parseInt(params.page || '1', 50) - 1) * 50
26 };
27}
28
29function initializePage(dataStore: DataStore, params: PageParams) {
30 return _.map(
31 dataStore.cores,
32 (core, i) => namespace(fixParams(params), core, 'glass')
33 ).map(
34 (thisCore: [SolrCore<object>, SearchParams]) =>
35 thisCore[0].stateTransition(thisCore[1])
36 );
37}
38
39export {
40 PageParams,
41 initializePage
42};