1
1
import Service , { inject as service } from '@ember/service' ;
2
- import { task } from 'ember-concurrency' ;
2
+ import { restartableTask } from 'ember-concurrency' ;
3
3
import { set } from '@ember/object' ;
4
4
import { A as emberArray } from '@ember/array' ;
5
+ // eslint-disable-next-line ember/no-computed-properties-in-native-classes
5
6
import { alias } from '@ember/object/computed' ;
6
7
7
- export default Service . extend ( {
8
- _algoliaService : service ( 'algolia' ) ,
9
- _projectService : service ( 'project' ) ,
10
- _projectVersion : alias ( '_projectService.version' ) ,
8
+ export default class SearchService extends Service {
9
+ @service ( 'algolia' ) _algoliaService ;
10
+ @service ( 'project' ) _projectService ;
11
+
12
+ @alias ( '_projectService.version' ) _projectVersion ;
11
13
12
14
/** @type {?string } */
13
- _lastQueriedProjectVersion : null ,
15
+ _lastQueriedProjectVersion = null ;
14
16
15
- results : emberArray ( ) ,
17
+ results = emberArray ( ) ;
16
18
17
- search : task ( function * ( query ) {
19
+ search = restartableTask ( async ( query ) => {
18
20
const projectVersion = this . _projectVersion ;
19
21
20
22
const params = {
@@ -35,14 +37,14 @@ export default Service.extend({
35
37
36
38
this . _lastQueriedProjectVersion = projectVersion ;
37
39
38
- return set ( this , 'results' , yield this . doSearch ( searchObj , params ) ) ;
39
- } ) . restartable ( ) ,
40
+ return set ( this , 'results' , await this . doSearch ( searchObj , params ) ) ;
41
+ } ) ;
40
42
41
43
doSearch ( searchObj , params ) {
42
44
return this . _algoliaService
43
45
. search ( searchObj , params )
44
46
. then ( ( results ) => results . hits ) ;
45
- } ,
47
+ }
46
48
47
49
/**
48
50
* Whenever the version changes in service:project, the results in this
@@ -55,9 +57,9 @@ export default Service.extend({
55
57
this . _lastQueriedProjectVersion !== null &&
56
58
this . _projectVersion !== this . _lastQueriedProjectVersion
57
59
) ;
58
- } ,
60
+ }
59
61
60
62
clearResults ( ) {
61
63
set ( this , 'results' , emberArray ( ) ) ;
62
- } ,
63
- } ) ;
64
+ }
65
+ }
0 commit comments