@@ -18,20 +18,23 @@ module.exports.server = (socket, done) => done && done({
1818
1919
2020module . exports . librariesSearch = async ( data , socket , done ) => {
21- console . log ( 'loading in libs' ) ;
2221 const libs = await loadLibs ( ) ;
23- console . log ( 'done loading in libs' ) ;
2422 const limit = Math . min ( Math . max ( data . limit || 10 , 1 ) , 100 ) ;
2523 const skip = Math . max ( data . skip || 0 , 0 ) ;
2624 const reg = searchRegex ( data . search ) ;
2725 const { sortBy = 'name' } = data ;
2826 const sortDesc = ! ( typeof data . sortDesc === 'undefined' || `${ data . sortDesc } ` === 'false' ) ;
29- const res = libs . filter ( ( lib ) => reg . test ( lib . name ) ) . sort ( ( a , b ) => {
30- const ai = `${ a [ sortBy ] } ` . toLowerCase ( ) ;
31- const bi = `${ b [ sortBy ] } ` . toLowerCase ( ) ;
32- if ( ai === bi ) return 0 ;
33- return ( ai < bi ? - 1 : 1 ) * ( sortDesc ? - 1 : 1 ) ;
34- } ) ;
27+ const eq = ( a , b ) => a . toLowerCase ( ) === b . toLowerCase ( ) ;
28+ const res = [
29+ ...libs . filter ( ( lib ) => eq ( lib . name , data . search ) ) ,
30+ ...libs . filter ( ( lib ) => ! eq ( lib . name , data . search ) && reg . test ( lib . name ) )
31+ . sort ( ( a , b ) => {
32+ const ai = `${ a [ sortBy ] } ` . toLowerCase ( ) ;
33+ const bi = `${ b [ sortBy ] } ` . toLowerCase ( ) ;
34+ if ( ai === bi ) return 0 ;
35+ return ( ai < bi ? - 1 : 1 ) * ( sortDesc ? - 1 : 1 ) ;
36+ } ) ,
37+ ] ;
3538 const response = {
3639 limit, skip, total : res . length , data : res . slice ( skip * limit , ( skip + 1 ) * limit ) ,
3740 } ;
0 commit comments