Skip to content

Commit da87eda

Browse files
committed
feat(cellocator): Add setClient in setCache
1 parent ce55532 commit da87eda

File tree

1 file changed

+21
-9
lines changed

1 file changed

+21
-9
lines changed

src/index.js

Lines changed: 21 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ Promise.promisifyAll(bscoords);
1111

1212
const setCache = instance => {
1313
rg.setCache(instance);
14+
cellocator.setClient({client: instance});
1415
};
1516

1617
const 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+
89101
const parseCommand = data => {
90102
let command = null;
91103
if (data.device === 'tz') {

0 commit comments

Comments
 (0)