@@ -11,6 +11,7 @@ Promise.promisifyAll(bscoords);
1111
1212const setCache = instance => {
1313 rg . setCache ( instance ) ;
14+ cellocator . setClient ( { client : instance } ) ;
1415} ;
1516
1617const getImei = raw => {
@@ -69,23 +70,34 @@ const addAddress = data => {
6970 } ) ;
7071} ;
7172
72- const parse = ( raw , options ) => {
73+ const enableLoc = ( data , options ) => {
7374 return new Promise ( ( resolve , reject ) => {
7475 options = options || { } ;
75- let data = { raw : raw . toString ( ) } ;
76- if ( tz . isTz ( raw ) ) {
77- data = tz . parse ( raw ) ;
78- } else if ( meitrack . isMeitrack ( raw ) ) {
79- data = meitrack . parse ( raw ) ;
80- } else if ( cellocator . isCello ( raw ) ) {
81- data = cellocator . parse ( raw ) ;
82- }
8376 if ( data . type !== 'data' ) return resolve ( data ) ;
8477 data . gps = data . loc ? 'enable' : 'disable' ;
8578 addLoc ( data , options ) . then ( addAddress ) . then ( resolve ) . catch ( reject ) ;
8679 } ) ;
8780} ;
8881
82+ const parse = ( raw , options ) => {
83+ options = options || { } ;
84+ let data = { raw : raw . toString ( ) } ;
85+ if ( tz . isTz ( raw ) ) {
86+ data = tz . parse ( raw ) ;
87+ } else if ( meitrack . isMeitrack ( raw ) ) {
88+ data = meitrack . parse ( raw ) ;
89+ } else if ( cellocator . isCello ( raw ) ) {
90+ return cellocator . parse ( raw ) . then ( data => {
91+ if ( Object . prototype . toString . call ( data ) === '[object Array]' ) {
92+ return Promise . all ( data . map ( x => enableLoc ( x , options ) ) ) ;
93+ } else {
94+ return enableLoc ( data , options ) ;
95+ }
96+ } ) ;
97+ }
98+ return enableLoc ( data , options ) ;
99+ } ;
100+
89101const parseCommand = data => {
90102 let command = null ;
91103 if ( data . device === 'tz' ) {
0 commit comments