1 | import { parse } from '../fsw/fsw-parse';
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
8 |
|
9 |
|
10 |
|
11 |
|
12 |
|
13 |
|
14 |
|
15 |
|
16 |
|
17 |
|
18 |
|
19 |
|
20 |
|
21 | const fsw2query = (fswSign, flags) => {
|
22 | let query = '';
|
23 | const parsed = parse.sign(fswSign);
|
24 |
|
25 | if (parsed.box) {
|
26 | const A_flag = flags.indexOf('A') > -1;
|
27 | const a_flag = flags.indexOf('a') > -1;
|
28 | const S_flag = flags.indexOf('S') > -1;
|
29 | const s_flag = flags.indexOf('s') > -1;
|
30 | const L_flag = flags.indexOf('L') > -1;
|
31 |
|
32 | if (A_flag || a_flag || S_flag || s_flag) {
|
33 | if ((A_flag || a_flag) && parsed.sequence) {
|
34 | query += 'A';
|
35 | query += parsed.sequence.map(sym => sym.slice(0, 4) + (a_flag ? 'uu' : sym.slice(4, 6))).join('');
|
36 | query += 'T';
|
37 | }
|
38 |
|
39 | if ((S_flag || s_flag) && parsed.spatials) {
|
40 | query += parsed.spatials.map(spatial => spatial.symbol.slice(0, 4) + (s_flag ? 'uu' : spatial.symbol.slice(4, 6)) + (L_flag ? spatial.coord.join('x') : '')).join('');
|
41 | }
|
42 | }
|
43 | return query ? "Q" + query : undefined;
|
44 | } else {
|
45 | return undefined;
|
46 | }
|
47 | }
|
48 |
|
49 | export { fsw2query } |
\ | No newline at end of file |