hk-bus-eta 2.1.5 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (61) hide show
  1. package/dist/ctb.d.ts +3 -3
  2. package/dist/ctb.js +10 -8
  3. package/dist/ctb.js.map +1 -1
  4. package/dist/gmb.d.ts +3 -3
  5. package/dist/gmb.js +12 -10
  6. package/dist/gmb.js.map +1 -1
  7. package/dist/index.d.ts +3 -2
  8. package/dist/index.js +22 -15
  9. package/dist/index.js.map +1 -1
  10. package/dist/kmb.d.ts +6 -6
  11. package/dist/kmb.js +13 -11
  12. package/dist/kmb.js.map +1 -1
  13. package/dist/lightRail.d.ts +3 -3
  14. package/dist/lightRail.js +25 -21
  15. package/dist/lightRail.js.map +1 -1
  16. package/dist/lrtfeeder.d.ts +2 -2
  17. package/dist/lrtfeeder.js +32 -17
  18. package/dist/lrtfeeder.js.map +1 -1
  19. package/dist/mtr.d.ts +5 -4
  20. package/dist/mtr.js +13 -13
  21. package/dist/mtr.js.map +1 -1
  22. package/dist/nlb.d.ts +2 -2
  23. package/dist/nlb.js +16 -12
  24. package/dist/nlb.js.map +1 -1
  25. package/dist/type.d.ts +11 -3
  26. package/esm/ctb.d.ts +3 -3
  27. package/esm/ctb.js +10 -8
  28. package/esm/ctb.js.map +1 -1
  29. package/esm/gmb.d.ts +3 -3
  30. package/esm/gmb.js +12 -10
  31. package/esm/gmb.js.map +1 -1
  32. package/esm/index.d.ts +3 -2
  33. package/esm/index.js +29 -22
  34. package/esm/index.js.map +1 -1
  35. package/esm/kmb.d.ts +6 -6
  36. package/esm/kmb.js +13 -11
  37. package/esm/kmb.js.map +1 -1
  38. package/esm/lightRail.d.ts +3 -3
  39. package/esm/lightRail.js +25 -21
  40. package/esm/lightRail.js.map +1 -1
  41. package/esm/lrtfeeder.d.ts +2 -2
  42. package/esm/lrtfeeder.js +32 -17
  43. package/esm/lrtfeeder.js.map +1 -1
  44. package/esm/mtr.d.ts +5 -4
  45. package/esm/mtr.js +13 -13
  46. package/esm/mtr.js.map +1 -1
  47. package/esm/nlb.d.ts +2 -2
  48. package/esm/nlb.js +16 -12
  49. package/esm/nlb.js.map +1 -1
  50. package/esm/type.d.ts +11 -3
  51. package/package.json +1 -1
  52. package/src/ctb.ts +30 -20
  53. package/src/gmb.ts +37 -24
  54. package/src/index.ts +80 -44
  55. package/src/kmb.ts +55 -41
  56. package/src/lightRail.ts +61 -38
  57. package/src/lrtfeeder.ts +69 -36
  58. package/src/mtr.ts +35 -23
  59. package/src/nlb.ts +30 -24
  60. package/src/type.ts +59 -50
  61. package/src/utils.ts +1 -1
package/dist/ctb.d.ts CHANGED
@@ -1,9 +1,9 @@
1
1
  import type { Eta, RouteListEntry } from "./type";
2
2
  interface fetchEtasProps {
3
- route: RouteListEntry['route'];
4
- bound: RouteListEntry['bound']['ctb'];
3
+ route: RouteListEntry["route"];
4
+ bound: RouteListEntry["bound"]["ctb"];
5
5
  stopId: string;
6
6
  seq: number;
7
7
  }
8
- export default function fetchEtas({ stopId, route, bound, seq }: fetchEtasProps): Promise<Eta[]>;
8
+ export default function fetchEtas({ stopId, route, bound, seq, }: fetchEtasProps): Promise<Eta[]>;
9
9
  export {};
package/dist/ctb.js CHANGED
@@ -1,12 +1,14 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const utils_1 = require("./utils");
4
- function fetchEtas({ stopId, route, bound, seq }) {
5
- return (fetch(`https://rt.data.gov.hk//v2/transport/citybus/eta/CTB/${stopId}/${route}`, {
6
- cache: utils_1.isSafari ? 'default' : 'no-store'
7
- }).then(response => response.json()).then(({ data }) => (data
4
+ function fetchEtas({ stopId, route, bound, seq, }) {
5
+ return fetch(`https://rt.data.gov.hk//v2/transport/citybus/eta/CTB/${stopId}/${route}`, {
6
+ cache: utils_1.isSafari ? "default" : "no-store",
7
+ })
8
+ .then((response) => response.json())
9
+ .then(({ data }) => data
8
10
  .filter((eta) => eta.eta && bound.includes(eta.dir))
9
- // filter the eta by the stop sequence information
11
+ // filter the eta by the stop sequence information
10
12
  // as the route data may not 100% match
11
13
  // use the nearest seq
12
14
  .sort((a, b) => Math.abs(a.seq - seq) < Math.abs(b.seq - seq) ? -1 : 1)
@@ -15,10 +17,10 @@ function fetchEtas({ stopId, route, bound, seq }) {
15
17
  eta: e.eta,
16
18
  remark: {
17
19
  zh: e.rmk_tc,
18
- en: e.rmk_en
20
+ en: e.rmk_en,
19
21
  },
20
- co: 'ctb'
21
- })))));
22
+ co: "ctb",
23
+ })));
22
24
  }
23
25
  exports.default = fetchEtas;
24
26
  //# sourceMappingURL=ctb.js.map
package/dist/ctb.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"ctb.js","sourceRoot":"","sources":["../src/ctb.ts"],"names":[],"mappings":";;AAAA,mCAAmC;AAUnC,SAAwB,SAAS,CAAE,EAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAkB;IAC7E,OAAO,CACL,KAAK,CAAC,wDAAwD,MAAM,IAAI,KAAK,EAAE,EAAE;QAC/E,KAAK,EAAE,gBAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU;KACzC,CAAC,CAAC,IAAI,CACL,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,CAC5B,CAAC,IAAI,CAAC,CAAC,EAAC,IAAI,EAAC,EAAE,EAAE,CAAC,CACjB,IAAI;SACD,MAAM,CAAC,CAAC,GAAQ,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACzD,mDAAmD;QACnD,uCAAuC;QACvC,sBAAsB;SACrB,IAAI,CAAC,CAAC,CAAM,EAAE,CAAM,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE;SACjF,MAAM,CAAC,CAAC,GAAQ,EAAE,CAAS,EAAE,IAAgB,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;SAC1E,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC;QAChB,GAAG,EAAE,CAAC,CAAC,GAAG;QACV,MAAM,EAAE;YACN,EAAE,EAAE,CAAC,CAAC,MAAM;YACZ,EAAE,EAAE,CAAC,CAAC,MAAM;SACb;QACD,EAAE,EAAE,KAAK;KACV,CAAC,CAAC,CACN,CAAC,CACH,CAAC;AACJ,CAAC;AAxBD,4BAwBC"}
1
+ {"version":3,"file":"ctb.js","sourceRoot":"","sources":["../src/ctb.ts"],"names":[],"mappings":";;AAAA,mCAAmC;AAUnC,SAAwB,SAAS,CAAC,EAChC,MAAM,EACN,KAAK,EACL,KAAK,EACL,GAAG,GACY;IACf,OAAO,KAAK,CACV,wDAAwD,MAAM,IAAI,KAAK,EAAE,EACzE;QACE,KAAK,EAAE,gBAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU;KACzC,CACF;SACE,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;SACnC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CACjB,IAAI;SACD,MAAM,CAAC,CAAC,GAAQ,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACzD,kDAAkD;QAClD,uCAAuC;QACvC,sBAAsB;SACrB,IAAI,CAAC,CAAC,CAAM,EAAE,CAAM,EAAE,EAAE,CACvB,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CACvD;SACA,MAAM,CACL,CAAC,GAAQ,EAAE,CAAS,EAAE,IAAgB,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CACnE;SACA,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC;QAChB,GAAG,EAAE,CAAC,CAAC,GAAG;QACV,MAAM,EAAE;YACN,EAAE,EAAE,CAAC,CAAC,MAAM;YACZ,EAAE,EAAE,CAAC,CAAC,MAAM;SACb;QACD,EAAE,EAAE,KAAK;KACV,CAAC,CAAC,CACN,CAAC;AACN,CAAC;AAlCD,4BAkCC"}
package/dist/gmb.d.ts CHANGED
@@ -1,9 +1,9 @@
1
1
  import type { Eta, RouteListEntry } from "./type";
2
2
  interface fetchEtasProps {
3
- gtfsId: RouteListEntry['gtfsId'];
4
- bound: RouteListEntry['bound']['gmb'];
3
+ gtfsId: RouteListEntry["gtfsId"];
4
+ bound: RouteListEntry["bound"]["gmb"];
5
5
  stopId: string;
6
6
  seq: number;
7
7
  }
8
- export default function fetchEtas({ gtfsId, stopId, bound, seq }: fetchEtasProps): Promise<Eta[]>;
8
+ export default function fetchEtas({ gtfsId, stopId, bound, seq, }: fetchEtasProps): Promise<Eta[]>;
9
9
  export {};
package/dist/gmb.js CHANGED
@@ -1,12 +1,14 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const utils_1 = require("./utils");
4
- function fetchEtas({ gtfsId, stopId, bound, seq }) {
5
- return (fetch(`https://data.etagmb.gov.hk/eta/route-stop/${gtfsId}/${stopId}`, {
6
- cache: utils_1.isSafari ? 'default' : 'no-store'
7
- }).then(response => response.json())
8
- .then(({ data }) => (data
9
- .filter(({ route_seq }) => (bound === 'O' && route_seq === 1) || (bound === 'I' && route_seq === 2))
4
+ function fetchEtas({ gtfsId, stopId, bound, seq, }) {
5
+ return fetch(`https://data.etagmb.gov.hk/eta/route-stop/${gtfsId}/${stopId}`, {
6
+ cache: utils_1.isSafari ? "default" : "no-store",
7
+ })
8
+ .then((response) => response.json())
9
+ .then(({ data }) => data
10
+ .filter(({ route_seq }) => (bound === "O" && route_seq === 1) ||
11
+ (bound === "I" && route_seq === 2))
10
12
  .filter(({ stop_seq }) => stop_seq === seq + 1)
11
13
  .reduce((acc, { eta }) => [
12
14
  ...acc,
@@ -14,11 +16,11 @@ function fetchEtas({ gtfsId, stopId, bound, seq }) {
14
16
  eta: data.timestamp,
15
17
  remark: {
16
18
  zh: data.remarks_tc,
17
- en: data.remarks_en
19
+ en: data.remarks_en,
18
20
  },
19
- co: 'gmb'
20
- }))
21
- ], []))));
21
+ co: "gmb",
22
+ })),
23
+ ], []));
22
24
  }
23
25
  exports.default = fetchEtas;
24
26
  //# sourceMappingURL=gmb.js.map
package/dist/gmb.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"gmb.js","sourceRoot":"","sources":["../src/gmb.ts"],"names":[],"mappings":";;AACA,mCAAmC;AASnC,SAAwB,SAAS,CAAE,EAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAiB;IAC7E,OAAO,CACL,KAAK,CAAC,6CAA6C,MAAM,IAAI,MAAM,EAAE,EAAE;QACrE,KAAK,EAAE,gBAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU;KACzC,CAAC,CAAC,IAAI,CAAE,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAE;SACrC,IAAI,CAAC,CAAC,EAAC,IAAI,EAAC,EAAE,EAAE,CAAC,CAChB,IAAI;SACD,MAAM,CAAC,CAAC,EAAC,SAAS,EAAM,EAAE,EAAE,CAAC,CAAE,KAAK,KAAK,GAAG,IAAI,SAAS,KAAK,CAAC,CAAE,IAAI,CAAE,KAAK,KAAK,GAAG,IAAI,SAAS,KAAK,CAAC,CAAE,CAAE;SAC3G,MAAM,CAAC,CAAC,EAAC,QAAQ,EAAM,EAAE,EAAE,CAAC,QAAQ,KAAK,GAAG,GAAG,CAAC,CAAC;SACjD,MAAM,CAAE,CAAC,GAAU,EAAE,EAAC,GAAG,EAAM,EAAE,EAAE,CAAC;QACnC,GAAG,GAAG;QACN,GAAG,GAAG,CAAC,GAAG,CAAE,CAAC,IAAS,EAAE,EAAE,CAAC,CAAC;YAC1B,GAAG,EAAE,IAAI,CAAC,SAAS;YACnB,MAAM,EAAE;gBACN,EAAE,EAAE,IAAI,CAAC,UAAU;gBACnB,EAAE,EAAE,IAAI,CAAC,UAAU;aACpB;YACD,EAAE,EAAE,KAAK;SACV,CAAC,CAAC;KACJ,EAAE,EAAE,CAAE,CACV,CAAC,CACH,CAAC;AACJ,CAAC;AAtBD,4BAsBC"}
1
+ {"version":3,"file":"gmb.js","sourceRoot":"","sources":["../src/gmb.ts"],"names":[],"mappings":";;AACA,mCAAmC;AASnC,SAAwB,SAAS,CAAC,EAChC,MAAM,EACN,MAAM,EACN,KAAK,EACL,GAAG,GACY;IACf,OAAO,KAAK,CACV,6CAA6C,MAAM,IAAI,MAAM,EAAE,EAC/D;QACE,KAAK,EAAE,gBAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU;KACzC,CACF;SACE,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;SACnC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CACjB,IAAI;SACD,MAAM,CACL,CAAC,EAAE,SAAS,EAAO,EAAE,EAAE,CACrB,CAAC,KAAK,KAAK,GAAG,IAAI,SAAS,KAAK,CAAC,CAAC;QAClC,CAAC,KAAK,KAAK,GAAG,IAAI,SAAS,KAAK,CAAC,CAAC,CACrC;SACA,MAAM,CAAC,CAAC,EAAE,QAAQ,EAAO,EAAE,EAAE,CAAC,QAAQ,KAAK,GAAG,GAAG,CAAC,CAAC;SACnD,MAAM,CACL,CAAC,GAAU,EAAE,EAAE,GAAG,EAAO,EAAE,EAAE,CAAC;QAC5B,GAAG,GAAG;QACN,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,IAAS,EAAE,EAAE,CAAC,CAAC;YACzB,GAAG,EAAE,IAAI,CAAC,SAAS;YACnB,MAAM,EAAE;gBACN,EAAE,EAAE,IAAI,CAAC,UAAU;gBACnB,EAAE,EAAE,IAAI,CAAC,UAAU;aACpB;YACD,EAAE,EAAE,KAAK;SACV,CAAC,CAAC;KACJ,EACD,EAAE,CACH,CACJ,CAAC;AACN,CAAC;AApCD,4BAoCC"}
package/dist/index.d.ts CHANGED
@@ -1,9 +1,10 @@
1
- import { RouteListEntry, EtaDb, Eta } from './type';
1
+ import { RouteListEntry, EtaDb, Eta, StopList } from "./type";
2
2
  interface fetchEtasProps extends RouteListEntry {
3
+ stopList: StopList;
3
4
  language: "zh" | "en";
4
5
  seq: number;
5
6
  }
6
- export declare function fetchEtas({ route, stops, bound, dest, seq, serviceType, co, nlbId, gtfsId, language }: fetchEtasProps): Promise<Eta[]>;
7
+ export declare function fetchEtas({ route, stops, bound, dest, seq, serviceType, co, nlbId, gtfsId, stopList, language, }: fetchEtasProps): Promise<Eta[]>;
7
8
  export declare function fetchEtaDb(): Promise<EtaDb>;
8
9
  export declare function fetchEtaDbMd5(): Promise<string>;
9
10
  export type * from "./type";
package/dist/index.js CHANGED
@@ -20,43 +20,50 @@ const lrtfeeder_1 = __importDefault(require("./lrtfeeder"));
20
20
  const gmb_1 = __importDefault(require("./gmb"));
21
21
  const lightRail_1 = __importDefault(require("./lightRail"));
22
22
  const mtr_1 = __importDefault(require("./mtr"));
23
- function fetchEtas({ route, stops, bound, dest, seq, serviceType, co, nlbId, gtfsId, language }) {
23
+ function fetchEtas({ route, stops, bound, dest, seq, serviceType, co, nlbId, gtfsId, stopList, language, }) {
24
24
  return __awaiter(this, void 0, void 0, function* () {
25
25
  try {
26
26
  let _etas = [];
27
27
  for (const company_id of co) {
28
- if (company_id === 'kmb' && stops.kmb) {
28
+ if (company_id === "kmb" && stops.kmb) {
29
29
  _etas = _etas.concat(yield (0, kmb_1.default)({
30
30
  route,
31
31
  stops: stops.kmb,
32
32
  stopId: stops.kmb[seq],
33
- seq, co,
34
- serviceType, bound: bound.kmb,
33
+ seq,
34
+ co,
35
+ serviceType,
36
+ bound: bound.kmb,
35
37
  }));
36
38
  }
37
- else if (company_id === 'ctb' && stops.ctb) {
39
+ else if (company_id === "ctb" && stops.ctb) {
38
40
  _etas = _etas.concat(yield (0, ctb_1.default)({ stopId: stops.ctb[seq], route, bound: bound.ctb, seq }));
39
41
  }
40
- else if (company_id === 'nlb' && stops.nlb) {
42
+ else if (company_id === "nlb" && stops.nlb) {
41
43
  _etas = _etas.concat(yield (0, nlb_1.default)({ stopId: stops.nlb[seq], nlbId }));
42
44
  }
43
- else if (company_id === 'lrtfeeder' && stops.lrtfeeder) {
45
+ else if (company_id === "lrtfeeder" && stops.lrtfeeder) {
44
46
  _etas = _etas.concat(yield (0, lrtfeeder_1.default)({ stopId: stops.lrtfeeder[seq], route, language }));
45
47
  }
46
- else if (company_id === 'gmb' && stops.gmb) {
48
+ else if (company_id === "gmb" && stops.gmb) {
47
49
  _etas = _etas.concat(yield (0, gmb_1.default)({ stopId: stops.gmb[seq], gtfsId, seq, bound: bound.gmb }));
48
50
  }
49
- else if (company_id === 'lightRail' && stops.lightRail) {
51
+ else if (company_id === "lightRail" && stops.lightRail) {
50
52
  _etas = _etas.concat(yield (0, lightRail_1.default)({ stopId: stops.lightRail[seq], route, dest }));
51
53
  }
52
- else if (company_id === 'mtr' && stops.mtr) {
53
- _etas = _etas.concat(yield (0, mtr_1.default)({ stopId: stops.mtr[seq], route, bound: bound.mtr }));
54
+ else if (company_id === "mtr" && stops.mtr) {
55
+ _etas = _etas.concat(yield (0, mtr_1.default)({
56
+ stopId: stops.mtr[seq],
57
+ route,
58
+ stopList,
59
+ bound: bound.mtr,
60
+ }));
54
61
  }
55
62
  }
56
63
  return _etas.sort((a, b) => {
57
- if (a.eta === '')
64
+ if (a.eta === "")
58
65
  return 1;
59
- else if (b.eta === '')
66
+ else if (b.eta === "")
60
67
  return -1;
61
68
  return a.eta < b.eta ? -1 : 1;
62
69
  });
@@ -70,13 +77,13 @@ function fetchEtas({ route, stops, bound, dest, seq, serviceType, co, nlbId, gtf
70
77
  exports.fetchEtas = fetchEtas;
71
78
  function fetchEtaDb() {
72
79
  return __awaiter(this, void 0, void 0, function* () {
73
- return fetch("https://hkbus.github.io/hk-bus-crawling/routeFareList.min.json").then(r => r.json());
80
+ return fetch("https://hkbus.github.io/hk-bus-crawling/routeFareList.min.json").then((r) => r.json());
74
81
  });
75
82
  }
76
83
  exports.fetchEtaDb = fetchEtaDb;
77
84
  function fetchEtaDbMd5() {
78
85
  return __awaiter(this, void 0, void 0, function* () {
79
- return fetch('https://hkbus.github.io/hk-bus-crawling/routeFareList.md5').then(r => r.text());
86
+ return fetch("https://hkbus.github.io/hk-bus-crawling/routeFareList.md5").then((r) => r.text());
80
87
  });
81
88
  }
82
89
  exports.fetchEtaDbMd5 = fetchEtaDbMd5;
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/kmb.d.ts CHANGED
@@ -1,12 +1,12 @@
1
1
  import type { Eta, RouteListEntry } from "./type";
2
2
  interface fetchEtasProps {
3
- route: RouteListEntry['route'];
4
- co: RouteListEntry['co'];
5
- serviceType: RouteListEntry['serviceType'];
6
- bound: RouteListEntry['bound']['kmb'];
7
- stops: RouteListEntry['stops']['kmb'];
3
+ route: RouteListEntry["route"];
4
+ co: RouteListEntry["co"];
5
+ serviceType: RouteListEntry["serviceType"];
6
+ bound: RouteListEntry["bound"]["kmb"];
7
+ stops: RouteListEntry["stops"]["kmb"];
8
8
  stopId: string;
9
9
  seq: number;
10
10
  }
11
- export default function fetchEtas({ stopId, route, seq, serviceType, stops, co, bound }: fetchEtasProps): Promise<Eta[]>;
11
+ export default function fetchEtas({ stopId, route, seq, serviceType, stops, co, bound, }: fetchEtasProps): Promise<Eta[]>;
12
12
  export {};
package/dist/kmb.js CHANGED
@@ -2,18 +2,20 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const utils_1 = require("./utils");
4
4
  // parameter seq is 0-indexed here
5
- function fetchEtas({ stopId, route, seq, serviceType, stops, co, bound }) {
6
- return (fetch(`https://data.etabus.gov.hk/v1/transport/kmb/eta/${stopId}/${route}/${serviceType}`, {
7
- cache: utils_1.isSafari ? 'default' : 'no-store'
5
+ function fetchEtas({ stopId, route, seq, serviceType, stops, co, bound, }) {
6
+ return fetch(`https://data.etabus.gov.hk/v1/transport/kmb/eta/${stopId}/${route}/${serviceType}`, {
7
+ cache: utils_1.isSafari ? "default" : "no-store",
8
8
  })
9
- .then(response => response.json())
10
- .then(({ data }) => (data.filter((e) => e.eta !== null
11
- && e.dir === bound)
9
+ .then((response) => response.json())
10
+ .then(({ data }) => data
11
+ .filter((e) => e.eta !== null && e.dir === bound)
12
12
  .sort((a, b) => Math.abs(a.seq - seq) < Math.abs(b.seq - seq) ? -1 : 1)
13
13
  .filter((eta, _, self) => eta.seq === self[0].seq)
14
- // if KMB is the only service provider and the service type is matched,
14
+ // if KMB is the only service provider and the service type is matched,
15
15
  // then sequence number should be exact matched, noted that eta.seq is 1-indexed
16
- .filter((eta) => co.length > 1 || serviceType !== eta.service_type || eta.seq === seq + 1)
16
+ .filter((eta) => co.length > 1 ||
17
+ serviceType !== eta.service_type ||
18
+ eta.seq === seq + 1)
17
19
  .filter((eta) => {
18
20
  if (stops[stops.length - 1] === stops[0]) {
19
21
  // handle circular route
@@ -27,10 +29,10 @@ function fetchEtas({ stopId, route, seq, serviceType, stops, co, bound }) {
27
29
  eta: e.eta,
28
30
  remark: {
29
31
  zh: e.rmk_tc,
30
- en: e.rmk_en
32
+ en: e.rmk_en,
31
33
  },
32
- co: 'kmb'
33
- })))));
34
+ co: "kmb",
35
+ })));
34
36
  }
35
37
  exports.default = fetchEtas;
36
38
  //# sourceMappingURL=kmb.js.map
package/dist/kmb.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"kmb.js","sourceRoot":"","sources":["../src/kmb.ts"],"names":[],"mappings":";;AACA,mCAAmC;AAYnC,kCAAkC;AAClC,SAAwB,SAAS,CAAE,EAAC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAiB;IACpG,OAAO,CACL,KAAK,CAAC,mDAAmD,MAAM,IAAI,KAAK,IAAI,WAAW,EAAE,EAAC;QACxF,KAAK,EAAE,gBAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU;KACzC,CAAC;SACD,IAAI,CAAE,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAE;SACnC,IAAI,CAAC,CAAC,EAAC,IAAI,EAAC,EAAE,EAAE,CAAC,CAChB,IAAI,CAAC,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CACrB,CAAC,CAAC,GAAG,KAAK,IAAI;WACX,CAAC,CAAC,GAAG,KAAK,KAAK,CACnB;SACA,IAAI,CAAC,CAAC,CAAM,EAAE,CAAM,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE;SACjF,MAAM,CAAC,CAAC,GAAQ,EAAE,CAAS,EAAE,IAAW,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QACtE,wEAAwE;QACxE,gFAAgF;SAC/E,MAAM,CAAC,CAAC,GAAQ,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC,IAAI,WAAW,KAAK,GAAG,CAAC,YAAY,IAAI,GAAG,CAAC,GAAG,KAAK,GAAG,GAAG,CAAC,CAAC;SAC9F,MAAM,CAAC,CAAC,GAAQ,EAAE,EAAE;QACnB,IAAK,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,EAAG;YAC1C,wBAAwB;YACxB,IAAK,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,EAAG;gBACzB,OAAO,GAAG,CAAC,GAAG,KAAK,GAAG,GAAG,CAAC,CAAA;aAC3B;SACF;QACD,OAAO,IAAI,CAAA;IACb,CAAC,CAAC;SACD,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC;QAChB,GAAG,EAAE,CAAC,CAAC,GAAG;QACV,MAAM,EAAE;YACN,EAAE,EAAE,CAAC,CAAC,MAAM;YACZ,EAAE,EAAE,CAAC,CAAC,MAAM;SACb;QACD,EAAE,EAAE,KAAK;KACV,CAAC,CAAC,CACJ,CAAC,CACH,CAAC;AACJ,CAAC;AAnCD,4BAmCC"}
1
+ {"version":3,"file":"kmb.js","sourceRoot":"","sources":["../src/kmb.ts"],"names":[],"mappings":";;AACA,mCAAmC;AAYnC,kCAAkC;AAClC,SAAwB,SAAS,CAAC,EAChC,MAAM,EACN,KAAK,EACL,GAAG,EACH,WAAW,EACX,KAAK,EACL,EAAE,EACF,KAAK,GACU;IACf,OAAO,KAAK,CACV,mDAAmD,MAAM,IAAI,KAAK,IAAI,WAAW,EAAE,EACnF;QACE,KAAK,EAAE,gBAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU;KACzC,CACF;SACE,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;SACnC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CACjB,IAAI;SACD,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,IAAI,IAAI,CAAC,CAAC,GAAG,KAAK,KAAK,CAAC;SACrD,IAAI,CAAC,CAAC,CAAM,EAAE,CAAM,EAAE,EAAE,CACvB,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CACvD;SACA,MAAM,CAAC,CAAC,GAAQ,EAAE,CAAS,EAAE,IAAW,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QACtE,uEAAuE;QACvE,gFAAgF;SAC/E,MAAM,CACL,CAAC,GAAQ,EAAE,EAAE,CACX,EAAE,CAAC,MAAM,GAAG,CAAC;QACb,WAAW,KAAK,GAAG,CAAC,YAAY;QAChC,GAAG,CAAC,GAAG,KAAK,GAAG,GAAG,CAAC,CACtB;SACA,MAAM,CAAC,CAAC,GAAQ,EAAE,EAAE;QACnB,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE;YACxC,wBAAwB;YACxB,IAAI,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE;gBACvB,OAAO,GAAG,CAAC,GAAG,KAAK,GAAG,GAAG,CAAC,CAAC;aAC5B;SACF;QACD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;SACD,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC;QAChB,GAAG,EAAE,CAAC,CAAC,GAAG;QACV,MAAM,EAAE;YACN,EAAE,EAAE,CAAC,CAAC,MAAM;YACZ,EAAE,EAAE,CAAC,CAAC,MAAM;SACb;QACD,EAAE,EAAE,KAAK;KACV,CAAC,CAAC,CACN,CAAC;AACN,CAAC;AAjDD,4BAiDC"}
@@ -1,8 +1,8 @@
1
1
  import type { Eta, RouteListEntry } from "./type";
2
2
  interface fetchEtasProps {
3
- route: RouteListEntry['route'];
4
- dest: RouteListEntry['dest'];
3
+ route: RouteListEntry["route"];
4
+ dest: RouteListEntry["dest"];
5
5
  stopId: string;
6
6
  }
7
- export default function fetchEtas({ stopId, route, dest }: fetchEtasProps): Promise<Eta[]>;
7
+ export default function fetchEtas({ stopId, route, dest, }: fetchEtasProps): Promise<Eta[]>;
8
8
  export {};
package/dist/lightRail.js CHANGED
@@ -1,23 +1,23 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const utils_1 = require("./utils");
4
- function fetchEtas({ stopId, route, dest }) {
5
- return (fetch(`https://rt.data.gov.hk/v1/transport/mtr/lrt/getSchedule?station_id=${stopId.slice(2)}`, {
6
- cache: utils_1.isSafari ? 'default' : 'no-store',
7
- }).then(response => response.json())
8
- .then(({ platform_list }) => (platform_list
9
- .reduce((acc, { route_list, platform_id }) => [
4
+ function fetchEtas({ stopId, route, dest, }) {
5
+ return fetch(`https://rt.data.gov.hk/v1/transport/mtr/lrt/getSchedule?station_id=${stopId.slice(2)}`, {
6
+ cache: utils_1.isSafari ? "default" : "no-store",
7
+ })
8
+ .then((response) => response.json())
9
+ .then(({ platform_list }) => platform_list.reduce((acc, { route_list, platform_id }) => [
10
10
  ...acc,
11
11
  ...route_list
12
- .filter(({ route_no, dest_ch, dest_en, stop }) => (route === route_no
13
- && (dest_ch === dest.zh || dest_en.includes('Circular'))
14
- && stop === 0))
12
+ .filter(({ route_no, dest_ch, dest_en, stop }) => route === route_no &&
13
+ (dest_ch === dest.zh || dest_en.includes("Circular")) &&
14
+ stop === 0)
15
15
  .map(({ time_en, train_length }) => {
16
16
  let waitTime = 0;
17
17
  switch (time_en.toLowerCase()) {
18
- case 'arriving':
19
- case 'departing':
20
- case '-':
18
+ case "arriving":
19
+ case "departing":
20
+ case "-":
21
21
  waitTime = 0;
22
22
  break;
23
23
  default:
@@ -26,20 +26,24 @@ function fetchEtas({ stopId, route, dest }) {
26
26
  }
27
27
  const etaDate = new Date(Date.now() + waitTime * 60 * 1000 + 8 * 3600000);
28
28
  return {
29
- eta: `${etaDate.getUTCFullYear()}-${`0${etaDate.getUTCMonth() + 1}`.slice(-2)}-${`0${etaDate.getUTCDate()}`.slice(-2)}`
30
- + `T${`0${etaDate.getUTCHours()}`.slice(-2)}:${`0${etaDate.getMinutes()}`.slice(-2)}:${`0${etaDate.getSeconds()}`.slice(-2)}+08:00`,
29
+ eta: `${etaDate.getUTCFullYear()}-${`0${etaDate.getUTCMonth() + 1}`.slice(-2)}-${`0${etaDate.getUTCDate()}`.slice(-2)}` +
30
+ `T${`0${etaDate.getUTCHours()}`.slice(-2)}:${`0${etaDate.getMinutes()}`.slice(-2)}:${`0${etaDate.getSeconds()}`.slice(-2)}+08:00`,
31
31
  remark: {
32
- zh: `${platform_id}號月台 - ${Array(train_length).fill("▭").join("")}`,
33
- en: `Platform ${platform_id} - ${Array(train_length).fill("▭").join("")}`
32
+ zh: `${platform_id}號月台 - ${Array(train_length)
33
+ .fill("▭")
34
+ .join("")}`,
35
+ en: `Platform ${platform_id} - ${Array(train_length)
36
+ .fill("▭")
37
+ .join("")}`,
34
38
  },
35
- co: 'lightRail'
39
+ co: "lightRail",
36
40
  };
37
- }, [])
38
- ], [])))
39
- .catch(e => {
41
+ }, []),
42
+ ], []))
43
+ .catch((e) => {
40
44
  console.error(e);
41
45
  return [];
42
- }));
46
+ });
43
47
  }
44
48
  exports.default = fetchEtas;
45
49
  //# sourceMappingURL=lightRail.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"lightRail.js","sourceRoot":"","sources":["../src/lightRail.ts"],"names":[],"mappings":";;AACA,mCAAmC;AAQnC,SAAwB,SAAS,CAAE,EAAC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAkB;IACvE,OAAO,CACL,KAAK,CAAC,sEAAsE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;QAC7F,KAAK,EAAE,gBAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU;KAEzC,CAAC,CAAC,IAAI,CAAE,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAE;SACrC,IAAI,CAAC,CAAC,EAAC,aAAa,EAAC,EAAE,EAAE,CAAC,CACzB,aAAa;SACV,MAAM,CAAC,CAAC,GAAU,EAAE,EAAC,UAAU,EAAE,WAAW,EAAM,EAAE,EAAE,CAAC;QACtD,GAAG,GAAG;QACN,GAAG,UAAU;aACV,MAAM,CAAC,CAAC,EAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAM,EAAE,EAAE,CAAC,CACnD,KAAK,KAAK,QAAQ;eACf,CAAE,OAAO,KAAK,IAAI,CAAC,EAAE,IAAI,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAE;eACvD,IAAI,KAAK,CAAC,CACd,CAAC;aACD,GAAG,CAAE,CAAC,EAAC,OAAO,EAAE,YAAY,EAAM,EAAE,EAAE;YACrC,IAAI,QAAQ,GAAG,CAAC,CAAA;YAChB,QAAS,OAAO,CAAC,WAAW,EAAE,EAAG;gBAC/B,KAAK,UAAU,CAAC;gBAChB,KAAK,WAAW,CAAC;gBACjB,KAAK,GAAG;oBACN,QAAQ,GAAG,CAAC,CAAC;oBACb,MAAM;gBACR;oBACE,QAAQ,GAAG,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,CAAA;oBAChC,MAAM;aACT;YACD,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,GAAG,EAAE,GAAG,IAAI,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC;YAC1E,OAAO;gBACL,GAAG,EAAE,GAAG,OAAO,CAAC,cAAc,EAAE,IAAI,IAAI,OAAO,CAAC,WAAW,EAAE,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE;sBACpH,IAAI,IAAI,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ;gBACpI,MAAM,EAAE;oBACN,EAAE,EAAE,GAAG,WAAW,SAAS,KAAK,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;oBACnE,EAAE,EAAE,YAAY,WAAW,MAAM,KAAK,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;iBAC1E;gBACD,EAAE,EAAE,WAAW;aAChB,CAAA;QACH,CAAC,EAAE,EAAE,CAAC;KACT,EAAE,EAAE,CAAC,CACT,CAAC;SACD,KAAK,CAAC,CAAC,CAAC,EAAE;QACT,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACjB,OAAO,EAAE,CAAC;IACZ,CAAC,CAAC,CACH,CAAC;AACJ,CAAC;AA9CD,4BA8CC"}
1
+ {"version":3,"file":"lightRail.js","sourceRoot":"","sources":["../src/lightRail.ts"],"names":[],"mappings":";;AACA,mCAAmC;AAQnC,SAAwB,SAAS,CAAC,EAChC,MAAM,EACN,KAAK,EACL,IAAI,GACW;IACf,OAAO,KAAK,CACV,sEAAsE,MAAM,CAAC,KAAK,CAChF,CAAC,CACF,EAAE,EACH;QACE,KAAK,EAAE,gBAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU;KACzC,CACF;SACE,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;SACnC,IAAI,CAAC,CAAC,EAAE,aAAa,EAAE,EAAE,EAAE,CAC1B,aAAa,CAAC,MAAM,CAClB,CAAC,GAAU,EAAE,EAAE,UAAU,EAAE,WAAW,EAAO,EAAE,EAAE,CAAC;QAChD,GAAG,GAAG;QACN,GAAG,UAAU;aACV,MAAM,CACL,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAO,EAAE,EAAE,CAC5C,KAAK,KAAK,QAAQ;YAClB,CAAC,OAAO,KAAK,IAAI,CAAC,EAAE,IAAI,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;YACrD,IAAI,KAAK,CAAC,CACb;aACA,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,YAAY,EAAO,EAAE,EAAE;YACtC,IAAI,QAAQ,GAAG,CAAC,CAAC;YACjB,QAAQ,OAAO,CAAC,WAAW,EAAE,EAAE;gBAC7B,KAAK,UAAU,CAAC;gBAChB,KAAK,WAAW,CAAC;gBACjB,KAAK,GAAG;oBACN,QAAQ,GAAG,CAAC,CAAC;oBACb,MAAM;gBACR;oBACE,QAAQ,GAAG,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;oBACjC,MAAM;aACT;YACD,MAAM,OAAO,GAAG,IAAI,IAAI,CACtB,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,GAAG,EAAE,GAAG,IAAI,GAAG,CAAC,GAAG,OAAO,CAChD,CAAC;YACF,OAAO;gBACL,GAAG,EACD,GAAG,OAAO,CAAC,cAAc,EAAE,IAAI,IAC7B,OAAO,CAAC,WAAW,EAAE,GAAG,CAC1B,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE;oBACtD,IAAI,IAAI,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,KAAK,CACnC,CAAC,CAAC,CACH,IAAI,IAAI,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,KAAK,CACnC,CAAC,CAAC,CACH,IAAI,IAAI,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ;gBACnD,MAAM,EAAE;oBACN,EAAE,EAAE,GAAG,WAAW,SAAS,KAAK,CAAC,YAAY,CAAC;yBAC3C,IAAI,CAAC,GAAG,CAAC;yBACT,IAAI,CAAC,EAAE,CAAC,EAAE;oBACb,EAAE,EAAE,YAAY,WAAW,MAAM,KAAK,CAAC,YAAY,CAAC;yBACjD,IAAI,CAAC,GAAG,CAAC;yBACT,IAAI,CAAC,EAAE,CAAC,EAAE;iBACd;gBACD,EAAE,EAAE,WAAW;aAChB,CAAC;QACJ,CAAC,EAAE,EAAE,CAAC;KACT,EACD,EAAE,CACH,CACF;SACA,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;QACX,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACjB,OAAO,EAAE,CAAC;IACZ,CAAC,CAAC,CAAC;AACP,CAAC;AArED,4BAqEC"}
@@ -1,8 +1,8 @@
1
1
  import type { Eta, RouteListEntry } from "./type";
2
2
  interface fetchEtasProps {
3
- route: RouteListEntry['route'];
3
+ route: RouteListEntry["route"];
4
4
  language: "zh" | "en";
5
5
  stopId: string;
6
6
  }
7
- export default function fetchEtas({ stopId, route, language }: fetchEtasProps): Promise<Eta[]>;
7
+ export default function fetchEtas({ stopId, route, language, }: fetchEtasProps): Promise<Eta[]>;
8
8
  export {};
package/dist/lrtfeeder.js CHANGED
@@ -1,34 +1,49 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const utils_1 = require("./utils");
4
- function fetchEtas({ stopId, route, language }) {
5
- return (fetch(`https://rt.data.gov.hk/v1/transport/mtr/bus/getSchedule`, {
4
+ function fetchEtas({ stopId, route, language, }) {
5
+ return fetch(`https://rt.data.gov.hk/v1/transport/mtr/bus/getSchedule`, {
6
6
  method: "POST",
7
- cache: utils_1.isSafari ? 'default' : 'no-store',
7
+ cache: utils_1.isSafari ? "default" : "no-store",
8
8
  headers: {
9
- 'Content-Type': 'application/json'
9
+ "Content-Type": "application/json",
10
10
  },
11
11
  body: JSON.stringify({
12
- 'language': language,
13
- 'routeName': route
14
- })
15
- }).then(response => response.json())
16
- .then(({ busStop }) => busStop.filter(({ busStopId }) => busStopId === stopId)
17
- .reduce((ret, { bus: buses }) => ([...ret, ...buses.reduce((etas, bus) => {
12
+ language: language,
13
+ routeName: route,
14
+ }),
15
+ })
16
+ .then((response) => response.json())
17
+ .then(({ busStop }) => busStop
18
+ .filter(({ busStopId }) => busStopId === stopId)
19
+ .reduce((ret, { bus: buses }) => [
20
+ ...ret,
21
+ ...buses.reduce((etas, bus) => {
18
22
  // hackily use +8 hours and use UTC hour to resolve timezone issue
19
- const etaDate = new Date(Date.now() + parseInt(bus.arrivalTimeInSecond === "108000" ? bus.departureTimeInSecond : bus.arrivalTimeInSecond, 10) * 1000 + 8 * 3600000);
23
+ const etaDate = new Date(Date.now() +
24
+ parseInt(bus.arrivalTimeInSecond === "108000"
25
+ ? bus.departureTimeInSecond
26
+ : bus.arrivalTimeInSecond, 10) *
27
+ 1000 +
28
+ 8 * 3600000);
20
29
  return [
21
30
  ...etas,
22
31
  {
23
- eta: `${etaDate.getUTCFullYear()}-${`0${etaDate.getUTCMonth() + 1}`.slice(-2)}-${`0${etaDate.getUTCDate()}`.slice(-2)}`
24
- + `T${`0${etaDate.getUTCHours()}`.slice(-2)}:${`0${etaDate.getMinutes()}`.slice(-2)}:${`0${etaDate.getSeconds()}`.slice(-2)}+08:00`,
32
+ eta: `${etaDate.getUTCFullYear()}-${`0${etaDate.getUTCMonth() + 1}`.slice(-2)}-${`0${etaDate.getUTCDate()}`.slice(-2)}` +
33
+ `T${`0${etaDate.getUTCHours()}`.slice(-2)}:${`0${etaDate.getMinutes()}`.slice(-2)}:${`0${etaDate.getSeconds()}`.slice(-2)}+08:00`,
25
34
  remark: {
26
- [language]: bus.busRemark || (bus.isScheduled === "1" ? (language === "en" ? "Scheduled" : "預定班次") : "")
35
+ [language]: bus.busRemark ||
36
+ (bus.isScheduled === "1"
37
+ ? language === "en"
38
+ ? "Scheduled"
39
+ : "預定班次"
40
+ : ""),
27
41
  },
28
- co: 'lrtfeeder'
29
- }
42
+ co: "lrtfeeder",
43
+ },
30
44
  ];
31
- }, [])]), [])));
45
+ }, []),
46
+ ], []));
32
47
  }
33
48
  exports.default = fetchEtas;
34
49
  //# sourceMappingURL=lrtfeeder.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"lrtfeeder.js","sourceRoot":"","sources":["../src/lrtfeeder.ts"],"names":[],"mappings":";;AACA,mCAAmC;AAQnC,SAAwB,SAAS,CAAE,EAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAiB;IAC1E,OAAO,CACL,KAAK,CAAC,yDAAyD,EAAE;QAC/D,MAAM,EAAE,MAAM;QACd,KAAK,EAAE,gBAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU;QACxC,OAAO,EAAE;YACP,cAAc,EAAE,kBAAkB;SACnC;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;YACnB,UAAU,EAAE,QAAQ;YACpB,WAAW,EAAE,KAAK;SACnB,CAAC;KACH,CAAC,CAAC,IAAI,CAAE,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAE;SACrC,IAAI,CAAC,CAAC,EAAC,OAAO,EAAC,EAAE,EAAE,CAClB,OAAO,CAAC,MAAM,CAAC,CAAC,EAAC,SAAS,EAAM,EAAE,EAAE,CAAC,SAAS,KAAK,MAAM,CAAC;SACzD,MAAM,CAAC,CAAC,GAAQ,EAAE,EAAC,GAAG,EAAE,KAAK,EAAM,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE,GAAG,KAAK,CAAC,MAAM,CAAE,CAAC,IAAW,EAAE,GAAQ,EAAE,EAAE;YAC5F,kEAAkE;YAClE,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAC,GAAG,CAAC,mBAAmB,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC,CAAC,GAAG,CAAC,mBAAmB,EAAE,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC;YAErK,OAAO;gBACL,GAAG,IAAI;gBACP;oBACE,GAAG,EAAE,GAAG,OAAO,CAAC,cAAc,EAAE,IAAI,IAAI,OAAO,CAAC,WAAW,EAAE,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE;0BAClH,IAAI,IAAI,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ;oBACtI,MAAM,EAAE;wBACN,CAAC,QAAQ,CAAC,EAAE,GAAG,CAAC,SAAS,IAAI,CAAE,GAAG,CAAC,WAAW,KAAK,GAAG,CAAC,CAAC,CAAC,CAAE,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAE,CAAC,CAAC,CAAC,EAAE,CAAE;qBAC7G;oBACD,EAAE,EAAE,WAAW;iBAChB;aACF,CAAA;QACH,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CACd,CACF,CAAC;AACJ,CAAC;AAjCD,4BAiCC"}
1
+ {"version":3,"file":"lrtfeeder.js","sourceRoot":"","sources":["../src/lrtfeeder.ts"],"names":[],"mappings":";;AACA,mCAAmC;AAQnC,SAAwB,SAAS,CAAC,EAChC,MAAM,EACN,KAAK,EACL,QAAQ,GACO;IACf,OAAO,KAAK,CAAC,yDAAyD,EAAE;QACtE,MAAM,EAAE,MAAM;QACd,KAAK,EAAE,gBAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU;QACxC,OAAO,EAAE;YACP,cAAc,EAAE,kBAAkB;SACnC;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;YACnB,QAAQ,EAAE,QAAQ;YAClB,SAAS,EAAE,KAAK;SACjB,CAAC;KACH,CAAC;SACC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;SACnC,IAAI,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CACpB,OAAO;SACJ,MAAM,CAAC,CAAC,EAAE,SAAS,EAAO,EAAE,EAAE,CAAC,SAAS,KAAK,MAAM,CAAC;SACpD,MAAM,CACL,CAAC,GAAQ,EAAE,EAAE,GAAG,EAAE,KAAK,EAAO,EAAE,EAAE,CAAC;QACjC,GAAG,GAAG;QACN,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAW,EAAE,GAAQ,EAAE,EAAE;YACxC,kEAAkE;YAClE,MAAM,OAAO,GAAG,IAAI,IAAI,CACtB,IAAI,CAAC,GAAG,EAAE;gBACR,QAAQ,CACN,GAAG,CAAC,mBAAmB,KAAK,QAAQ;oBAClC,CAAC,CAAC,GAAG,CAAC,qBAAqB;oBAC3B,CAAC,CAAC,GAAG,CAAC,mBAAmB,EAC3B,EAAE,CACH;oBACC,IAAI;gBACN,CAAC,GAAG,OAAO,CACd,CAAC;YAEF,OAAO;gBACL,GAAG,IAAI;gBACP;oBACE,GAAG,EACD,GAAG,OAAO,CAAC,cAAc,EAAE,IAAI,IAC7B,OAAO,CAAC,WAAW,EAAE,GAAG,CAC1B,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE;wBACtD,IAAI,IAAI,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,KAAK,CACnC,CAAC,CAAC,CACH,IAAI,IAAI,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,KAAK,CACnC,CAAC,CAAC,CACH,IAAI,IAAI,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ;oBACnD,MAAM,EAAE;wBACN,CAAC,QAAQ,CAAC,EACR,GAAG,CAAC,SAAS;4BACb,CAAC,GAAG,CAAC,WAAW,KAAK,GAAG;gCACtB,CAAC,CAAC,QAAQ,KAAK,IAAI;oCACjB,CAAC,CAAC,WAAW;oCACb,CAAC,CAAC,MAAM;gCACV,CAAC,CAAC,EAAE,CAAC;qBACV;oBACD,EAAE,EAAE,WAAW;iBAChB;aACF,CAAC;QACJ,CAAC,EAAE,EAAE,CAAC;KACP,EACD,EAAE,CACH,CACJ,CAAC;AACN,CAAC;AAlED,4BAkEC"}
package/dist/mtr.d.ts CHANGED
@@ -1,8 +1,9 @@
1
- import type { Eta, RouteListEntry } from "./type";
1
+ import type { Eta, RouteListEntry, StopList } from "./type";
2
2
  interface fetchEtasProps {
3
- route: RouteListEntry['route'];
4
- bound: RouteListEntry['bound']['mtr'];
3
+ route: RouteListEntry["route"];
4
+ bound: RouteListEntry["bound"]["mtr"];
5
5
  stopId: string;
6
+ stopList: StopList;
6
7
  }
7
- export default function fetchEtas({ stopId, route, bound }: fetchEtasProps): Promise<Eta[]>;
8
+ export default function fetchEtas({ stopId, route, bound, stopList, }: fetchEtasProps): Promise<Eta[]>;
8
9
  export {};
package/dist/mtr.js CHANGED
@@ -1,24 +1,24 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const utils_1 = require("./utils");
4
- function fetchEtas({ stopId, route, bound }) {
5
- return (fetch(`https://rt.data.gov.hk/v1/transport/mtr/getSchedule.php?line=${route}&sta=${stopId}`, {
6
- cache: utils_1.isSafari ? 'default' : 'no-store',
7
- }).then(response => response.json())
8
- .then(({ data, status }) => (status === 0
4
+ function fetchEtas({ stopId, route, bound, stopList, }) {
5
+ return fetch(`https://rt.data.gov.hk/v1/transport/mtr/getSchedule.php?line=${route}&sta=${stopId}`, {
6
+ cache: utils_1.isSafari ? "default" : "no-store",
7
+ })
8
+ .then((response) => response.json())
9
+ .then(({ data, status }) => status === 0
9
10
  ? []
10
- : data[`${route}-${stopId}`][bound.slice(-2, 1) === 'U' ? 'UP' : 'DOWN']
11
- .reduce((acc, { time, plat }) => [
11
+ : data[`${route}-${stopId}`][bound.slice(-2, 1) === "U" ? "UP" : "DOWN"].reduce((acc, { time, plat, dest }) => [
12
12
  ...acc,
13
13
  {
14
- eta: time.replace(' ', 'T') + '+08:00',
14
+ eta: time.replace(" ", "T") + "+08:00",
15
15
  remark: {
16
- zh: `${plat}號月台`,
17
- en: `Platform ${plat}`
16
+ zh: `${plat}號月台 往${stopList[dest].name.zh}`,
17
+ en: `Platform ${plat} to ${stopList[dest].name.en}`,
18
18
  },
19
- co: 'mtr'
20
- }
21
- ], []))));
19
+ co: "mtr",
20
+ },
21
+ ], []));
22
22
  }
23
23
  exports.default = fetchEtas;
24
24
  //# sourceMappingURL=mtr.js.map
package/dist/mtr.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"mtr.js","sourceRoot":"","sources":["../src/mtr.ts"],"names":[],"mappings":";;AACA,mCAAmC;AAQnC,SAAwB,SAAS,CAAE,EAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAkB;IACxE,OAAO,CACL,KAAK,CAAC,gEAAgE,KAAK,QAAQ,MAAM,EAAE,EAAE;QAC3F,KAAK,EAAE,gBAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU;KACzC,CAAC,CAAC,IAAI,CAAE,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAE;SACrC,IAAI,CAAC,CAAC,EAAC,IAAI,EAAE,MAAM,EAAC,EAAE,EAAE,CAAC,CACxB,MAAM,KAAK,CAAC;QACV,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC,IAAI,CAAC,GAAG,KAAK,IAAI,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC;aAClE,MAAM,CAAC,CAAC,GAAU,EAAE,EAAC,IAAI,EAAE,IAAI,EAAM,EAAE,EAAE,CAAC;YACzC,GAAG,GAAG;YACN;gBACE,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,GAAC,QAAQ;gBACpC,MAAM,EAAE;oBACN,EAAE,EAAE,GAAG,IAAI,KAAK;oBAChB,EAAE,EAAE,YAAY,IAAI,EAAE;iBACvB;gBACD,EAAE,EAAE,KAAK;aACV;SACF,EAAE,EAAE,CAAC,CACb,CAAC,CACH,CAAC;AACJ,CAAC;AAtBD,4BAsBC"}
1
+ {"version":3,"file":"mtr.js","sourceRoot":"","sources":["../src/mtr.ts"],"names":[],"mappings":";;AACA,mCAAmC;AASnC,SAAwB,SAAS,CAAC,EAChC,MAAM,EACN,KAAK,EACL,KAAK,EACL,QAAQ,GACO;IACf,OAAO,KAAK,CACV,gEAAgE,KAAK,QAAQ,MAAM,EAAE,EACrF;QACE,KAAK,EAAE,gBAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU;KACzC,CACF;SACE,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;SACnC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CACzB,MAAM,KAAK,CAAC;QACV,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC,IAAI,CAAC,GAAG,KAAK,IAAI,MAAM,EAAE,CAAC,CACxB,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAC3C,CAAC,MAAM,CACN,CAAC,GAAU,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAO,EAAE,EAAE,CAAC;YACzC,GAAG,GAAG;YACN;gBACE,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,QAAQ;gBACtC,MAAM,EAAE;oBACN,EAAE,EAAE,GAAG,IAAI,QAAQ,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE;oBAC3C,EAAE,EAAE,YAAY,IAAI,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE;iBACpD;gBACD,EAAE,EAAE,KAAK;aACV;SACF,EACD,EAAE,CACH,CACN,CAAC;AACN,CAAC;AAjCD,4BAiCC"}
package/dist/nlb.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import type { Eta, RouteListEntry } from "./type";
2
2
  interface fetchEtasProps {
3
3
  stopId: string;
4
- nlbId: RouteListEntry['nlbId'];
4
+ nlbId: RouteListEntry["nlbId"];
5
5
  }
6
- export default function fetchEtas({ stopId, nlbId }: fetchEtasProps): Promise<Eta[]>;
6
+ export default function fetchEtas({ stopId, nlbId, }: fetchEtasProps): Promise<Eta[]>;
7
7
  export {};