hk-bus-eta 3.3.2 → 3.3.4

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.
@@ -1,11 +1,13 @@
1
- import type { Eta, StopList } from "./type";
1
+ import type { Eta, EtaDb, RouteListEntry, StopList } from "./type";
2
2
  interface fetchEtasProps {
3
- route: string;
4
3
  stops: {
5
4
  fortuneferry: string[];
6
5
  };
7
6
  seq: number;
8
7
  stopList: StopList;
8
+ freq: RouteListEntry["freq"];
9
+ holidays: EtaDb["holidays"];
10
+ serviceDayMap: EtaDb["serviceDayMap"];
9
11
  }
10
- export default function fetchEtas({ route, stops: { fortuneferry: stops }, seq, stopList }: fetchEtasProps): Promise<Eta[]>;
12
+ export default function fetchEtas({ stops: { fortuneferry }, seq, holidays, freq, serviceDayMap }: fetchEtasProps): Promise<Eta[]>;
11
13
  export {};
@@ -31,40 +31,62 @@ const getCode = (zhName) => {
31
31
  }
32
32
  return "CL";
33
33
  };
34
- function fetchEtas({ route, stops: { fortuneferry: stops }, seq, stopList }) {
35
- if (stops.length === seq - 1)
34
+ function fetchEtas({ stops: { fortuneferry: stops }, seq, holidays, freq, serviceDayMap }) {
35
+ if (seq >= 1)
36
36
  return Promise.resolve([]);
37
- const u = getCode(stopList[stops[seq]].name.zh);
38
- const v = getCode(stopList[stops[seq + 1]].name.zh);
39
- return fetch(`https://www.hongkongwatertaxi.com.hk/eta/?route=${u}${v}`, {
40
- cache: utils_1.isSafari ? "default" : "no-store",
41
- })
42
- .then((response) => response.json())
43
- .then(({ data }) => {
44
- if (!data)
45
- return [];
37
+ const now = new Date();
38
+ return Promise.resolve((0, utils_1.getUpcomingFerry)({ holidays, serviceDayMap, freq, date: new Date() })
39
+ .filter(v => (new Date(v)).getTime() - now.getTime() < 180 * 60 * 1000)
40
+ .map(eta => ({
41
+ eta: eta,
42
+ remark: {
43
+ zh: "預定班次",
44
+ en: "Scheduled",
45
+ },
46
+ dest: {
47
+ zh: "",
48
+ en: "",
49
+ },
50
+ co: "fortuneferry",
51
+ })));
52
+ /*
53
+ * the official API is broken most of the time, keep it for reference
54
+
55
+ const v = getCode(stopList[stops[seq+1]].name.zh)
56
+ const u = getCode(stopList[stops[seq]].name.zh)
57
+ return fetch(
58
+ `https://www.hongkongwatertaxi.com.hk/eta/?route=${u}${v}`,
59
+ {
60
+ cache: isSafari ? "default" : "no-store",
61
+ },
62
+ )
63
+ .then((response) => response.json())
64
+ .then(({ data }) => {
65
+ if (!data) return [];
66
+
46
67
  return data
47
- .map(({ depart_time, rmk_tc, rmk_en }) => {
68
+ .map(({ depart_time, rmk_tc, rmk_en }: any) => {
48
69
  const date = new Date();
49
- let guess = `${date.getFullYear()}-${('0' + (date.getMonth() + 1)).slice(-2)}-${('0' + date.getDate()).slice(-2)}T${depart_time}:00+08:00`;
50
- if ((new Date(guess)) < date) {
51
- date.setDate(date.getDate() + 1);
52
- guess = `${date.getFullYear()}-${('0' + (date.getMonth() + 1)).slice(-2)}-${('0' + date.getDate()).slice(-2)}T${depart_time}:00+08:00`;
70
+ let guess = `${date.getFullYear()}-${('0'+(date.getMonth()+1)).slice(-2)}-${('0'+date.getDate()).slice(-2)}T${depart_time}:00+08:00`
71
+ if ( (new Date(guess)) < date ) {
72
+ date.setDate(date.getDate() + 1)
73
+ guess = `${date.getFullYear()}-${('0'+(date.getMonth()+1)).slice(-2)}-${('0'+date.getDate()).slice(-2)}T${depart_time}:00+08:00`
53
74
  }
54
75
  return {
55
- eta: guess,
56
- remark: {
57
- zh: rmk_tc,
58
- en: rmk_en,
59
- },
60
- dest: {
61
- zh: "",
62
- en: "",
63
- },
64
- co: "fortuneferry",
65
- };
66
- });
67
- });
76
+ eta: guess,
77
+ remark: {
78
+ zh: rmk_tc,
79
+ en: rmk_en,
80
+ },
81
+ dest: {
82
+ zh: "",
83
+ en: "",
84
+ },
85
+ co: "fortuneferry",
86
+ }
87
+ });
88
+ });
89
+ */
68
90
  }
69
91
  exports.default = fetchEtas;
70
92
  //# sourceMappingURL=fortuneferry.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fortuneferry.js","sourceRoot":"","sources":["../src/fortuneferry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fortuneferry.js","sourceRoot":"","sources":["../src/fortuneferry.ts"],"names":[],"mappings":";;AACA,mCAAqD;AAarD,MAAM,OAAO,GAAG,CAAC,MAAc,EAAE,EAAE;IACjC,IAAK,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAG;QAC3B,OAAO,IAAI,CAAA;KACZ;SAAM,IAAK,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAG;QAClC,OAAO,IAAI,CAAA;KACZ;SAAM,IAAK,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAG;QAClC,OAAO,IAAI,CAAA;KACZ;SAAM,IAAK,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAG;QAClC,OAAO,IAAI,CAAA;KACZ;SAAM,IAAK,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAG;QAClC,OAAO,KAAK,CAAA;KACb;SAAM,IAAK,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAG;QAClC,OAAO,IAAI,CAAA;KACZ;SAAM,IAAK,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAG;QAClC,OAAO,IAAI,CAAA;KACZ;SAAM,IAAK,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAG;QACnC,OAAO,KAAK,CAAA;KACb;SAAM,IAAK,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAG;QAClC,OAAO,IAAI,CAAA;KACZ;IACD,OAAO,IAAI,CAAC;AACd,CAAC,CAAA;AAED,SAAwB,SAAS,CAAC,EAChC,KAAK,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,EAAE,GAAG,EACnC,QAAQ,EAAE,IAAI,EAAE,aAAa,EACd;IACf,IAAK,GAAG,IAAI,CAAC;QAAG,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC3C,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAA;IACtB,OAAO,OAAO,CAAC,OAAO,CACpB,IAAA,wBAAgB,EAAC,EAAC,QAAQ,EAAE,aAAa,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,IAAI,EAAE,EAAC,CAAC;SAChE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,GAAG,GAAG,CAAC,OAAO,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,IAAI,CAAE;SACvE,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACX,GAAG,EAAE,GAAG;QACN,MAAM,EAAE;YACN,EAAE,EAAE,MAAM;YACV,EAAE,EAAE,WAAW;SAChB;QACD,IAAI,EAAE;YACJ,EAAE,EAAE,EAAE;YACN,EAAE,EAAE,EAAE;SACP;QACD,EAAE,EAAE,cAAc;KACrB,CAAC,CAAC,CACN,CAAA;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAqCE;AACJ,CAAC;AA7DD,4BA6DC"}
package/dist/hkkf.d.ts CHANGED
@@ -1,8 +1,9 @@
1
- import type { Eta, RouteListEntry } from "./type";
1
+ import type { Eta, EtaDb, RouteListEntry } from "./type";
2
2
  interface fetchEtasProps {
3
- route: string;
4
- bound: RouteListEntry["bound"]["hkkf"];
3
+ freq: RouteListEntry["freq"];
5
4
  seq: number;
5
+ holidays: EtaDb["holidays"];
6
+ serviceDayMap: EtaDb["serviceDayMap"];
6
7
  }
7
- export default function fetchEtas({ route, bound, seq }: fetchEtasProps): Promise<Eta[]>;
8
+ export default function fetchEtas({ freq, seq, holidays, serviceDayMap, }: fetchEtasProps): Promise<Eta[]>;
8
9
  export {};
package/dist/hkkf.js CHANGED
@@ -1,32 +1,53 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const utils_1 = require("./utils");
4
- function fetchEtas({ route, bound, seq }) {
5
- if (seq === 0)
4
+ function fetchEtas({ freq, seq, holidays, serviceDayMap, }) {
5
+ if (seq >= 1)
6
6
  return Promise.resolve([]);
7
- return fetch(`https://www.hkkfeta.com/opendata/eta/${route.slice(2)}/${bound === "I" ? "inbound" : "outbound"}`, {
8
- cache: utils_1.isSafari ? "default" : "no-store",
9
- })
10
- .then((response) => response.json())
11
- .then(({ data }) => {
12
- if (!data)
13
- return [];
7
+ const now = new Date();
8
+ return Promise.resolve((0, utils_1.getUpcomingFerry)({ holidays, serviceDayMap, freq, date: new Date() })
9
+ .filter(v => (new Date(v)).getTime() - now.getTime() < 180 * 60 * 1000)
10
+ .map(eta => ({
11
+ eta: eta,
12
+ remark: {
13
+ zh: "預定班次",
14
+ en: "Scheduled",
15
+ },
16
+ dest: {
17
+ zh: "",
18
+ en: "",
19
+ },
20
+ co: "fortuneferry",
21
+ })));
22
+ /*
23
+ * the official API is broken most of the time, keep it for reference
24
+ return fetch(
25
+ `https://www.hkkfeta.com/opendata/eta/${route.slice(2)}/${bound === "I" ? "inbound" : "outbound"}`,
26
+ {
27
+ cache: isSafari ? "default" : "no-store",
28
+ },
29
+ )
30
+ .then((response) => response.json())
31
+ .then(({ data }) => {
32
+ if (!data) return [];
33
+
14
34
  return data
15
- .map(({ ETA }) => {
35
+ .map(({ETA}: any) => {
16
36
  return {
17
- eta: ETA,
18
- remark: {
19
- zh: "",
20
- en: "",
21
- },
22
- dest: {
23
- zh: "",
24
- en: "",
25
- },
26
- co: "hkkf",
27
- };
28
- });
29
- });
37
+ eta: ETA,
38
+ remark: {
39
+ zh: "",
40
+ en: "",
41
+ },
42
+ dest: {
43
+ zh: "",
44
+ en: "",
45
+ },
46
+ co: "hkkf",
47
+ }
48
+ });
49
+ });
50
+ */
30
51
  }
31
52
  exports.default = fetchEtas;
32
53
  //# sourceMappingURL=hkkf.js.map
package/dist/hkkf.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"hkkf.js","sourceRoot":"","sources":["../src/hkkf.ts"],"names":[],"mappings":";;AACA,mCAAmC;AAQnC,SAAwB,SAAS,CAAC,EAChC,KAAK,EAAE,KAAK,EAAE,GAAG,EACF;IACf,IAAK,GAAG,KAAK,CAAC;QAAG,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;IAC3C,OAAO,KAAK,CACV,wCAAwC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,EAAE,EAClG;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;QACjB,IAAI,CAAC,IAAI;YAAE,OAAO,EAAE,CAAC;QAErB,OAAO,IAAI;aACR,GAAG,CAAC,CAAC,EAAC,GAAG,EAAM,EAAE,EAAE;YAClB,OAAO;gBACL,GAAG,EAAE,GAAG;gBACR,MAAM,EAAE;oBACN,EAAE,EAAE,EAAE;oBACN,EAAE,EAAE,EAAE;iBACP;gBACD,IAAI,EAAE;oBACJ,EAAE,EAAE,EAAE;oBACN,EAAE,EAAE,EAAE;iBACP;gBACD,EAAE,EAAE,MAAM;aACX,CAAA;QACH,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC;AA9BD,4BA8BC"}
1
+ {"version":3,"file":"hkkf.js","sourceRoot":"","sources":["../src/hkkf.ts"],"names":[],"mappings":";;AACA,mCAAqD;AASrD,SAAwB,SAAS,CAAC,EAChC,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,aAAa,GACnB;IACf,IAAK,GAAG,IAAI,CAAC;QAAG,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;IAC1C,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAA;IACtB,OAAO,OAAO,CAAC,OAAO,CACpB,IAAA,wBAAgB,EAAC,EAAC,QAAQ,EAAE,aAAa,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,IAAI,EAAE,EAAC,CAAC;SAChE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,GAAG,GAAG,CAAC,OAAO,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,IAAI,CAAE;SACvE,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACX,GAAG,EAAE,GAAG;QACN,MAAM,EAAE;YACN,EAAE,EAAE,MAAM;YACV,EAAE,EAAE,WAAW;SAChB;QACD,IAAI,EAAE;YACJ,EAAE,EAAE,EAAE;YACN,EAAE,EAAE,EAAE;SACP;QACD,EAAE,EAAE,cAAc;KACrB,CAAC,CAAC,CACN,CAAA;IACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;QA4BI;AACN,CAAC;AAlDD,4BAkDC"}
package/dist/index.d.ts CHANGED
@@ -1,10 +1,12 @@
1
1
  import { RouteListEntry, EtaDb, Eta, StopList } from "./type";
2
2
  interface fetchEtasProps extends RouteListEntry {
3
3
  stopList: StopList;
4
+ holidays: EtaDb["holidays"];
5
+ serviceDayMap: EtaDb["serviceDayMap"];
4
6
  language: "zh" | "en";
5
7
  seq: number;
6
8
  }
7
- export declare function fetchEtas({ route, stops, bound, dest, seq, serviceType, co, nlbId, gtfsId, stopList, language, }: fetchEtasProps): Promise<Eta[]>;
9
+ export declare function fetchEtas({ route, stops, bound, dest, freq, seq, serviceType, co, nlbId, gtfsId, stopList, language, holidays, serviceDayMap, }: fetchEtasProps): Promise<Eta[]>;
8
10
  export declare function fetchEtaDb(): Promise<EtaDb>;
9
11
  export declare function fetchEtaDbMd5(): Promise<string>;
10
12
  export type * from "./type";
package/dist/index.js CHANGED
@@ -23,7 +23,7 @@ const mtr_1 = __importDefault(require("./mtr"));
23
23
  const sunferry_1 = __importDefault(require("./sunferry"));
24
24
  const fortuneferry_1 = __importDefault(require("./fortuneferry"));
25
25
  const hkkf_1 = __importDefault(require("./hkkf"));
26
- function fetchEtas({ route, stops, bound, dest, seq, serviceType, co, nlbId, gtfsId, stopList, language, }) {
26
+ function fetchEtas({ route, stops, bound, dest, freq, seq, serviceType, co, nlbId, gtfsId, stopList, language, holidays, serviceDayMap, }) {
27
27
  return __awaiter(this, void 0, void 0, function* () {
28
28
  try {
29
29
  let _etas = [];
@@ -64,14 +64,14 @@ function fetchEtas({ route, stops, bound, dest, seq, serviceType, co, nlbId, gtf
64
64
  }
65
65
  else if (company_id === "fortuneferry" && stops.fortuneferry) {
66
66
  _etas = _etas.concat(yield (0, fortuneferry_1.default)({
67
- route, stops, seq, stopList
67
+ stops, seq, stopList, freq, serviceDayMap, holidays,
68
68
  }));
69
69
  }
70
70
  else if (company_id === "sunferry" && stops.sunferry) {
71
- _etas = _etas.concat(yield (0, sunferry_1.default)({ route, seq }));
71
+ _etas = _etas.concat(yield (0, sunferry_1.default)({ route, seq, holidays, serviceDayMap, freq }));
72
72
  }
73
73
  else if (company_id === "hkkf" && stops.hkkf) {
74
- _etas = _etas.concat(yield (0, hkkf_1.default)({ route, bound: bound.hkkf, seq }));
74
+ _etas = _etas.concat(yield (0, hkkf_1.default)({ freq, seq, holidays, serviceDayMap }));
75
75
  }
76
76
  }
77
77
  return _etas.sort((a, b) => {
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":";;;;;;;;;;;;;;;AAAA,gDAAwB;AACxB,gDAAwB;AACxB,gDAAwB;AACxB,4DAAoC;AACpC,gDAAwB;AACxB,4DAAoC;AACpC,gDAAwB;AACxB,0DAAiC;AACjC,kEAA0C;AAC1C,kDAA0B;AAW1B,SAAsB,SAAS,CAAC,EAC9B,KAAK,EACL,KAAK,EACL,KAAK,EACL,IAAI,EACJ,IAAI,EACJ,GAAG,EACH,WAAW,EACX,EAAE,EACF,KAAK,EACL,MAAM,EACN,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,aAAa,GACE;;QACf,IAAI;YACF,IAAI,KAAK,GAAU,EAAE,CAAC;YACtB,KAAK,MAAM,UAAU,IAAI,EAAE,EAAE;gBAC3B,IAAI,UAAU,KAAK,KAAK,IAAI,KAAK,CAAC,GAAG,EAAE;oBACrC,KAAK,GAAG,KAAK,CAAC,MAAM,CAClB,MAAM,IAAA,aAAG,EAAC;wBACR,KAAK;wBACL,KAAK,EAAE,KAAK,CAAC,GAAG;wBAChB,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC;wBACtB,GAAG;wBACH,EAAE;wBACF,WAAW;wBACX,KAAK,EAAE,KAAK,CAAC,GAAG;qBACjB,CAAC,CACH,CAAC;iBACH;qBAAM,IAAI,UAAU,KAAK,KAAK,IAAI,KAAK,CAAC,GAAG,EAAE;oBAC5C,KAAK,GAAG,KAAK,CAAC,MAAM,CAClB,MAAM,IAAA,aAAG,EAAC,EAAE,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CACpE,CAAC;iBACH;qBAAM,IAAI,UAAU,KAAK,KAAK,IAAI,KAAK,CAAC,GAAG,EAAE;oBAC5C,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,IAAA,aAAG,EAAC,EAAE,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;iBACpE;qBAAM,IAAI,UAAU,KAAK,WAAW,IAAI,KAAK,CAAC,SAAS,EAAE;oBACxD,KAAK,GAAG,KAAK,CAAC,MAAM,CAClB,MAAM,IAAA,mBAAS,EAAC,EAAE,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CACnE,CAAC;iBACH;qBAAM,IAAI,UAAU,KAAK,KAAK,IAAI,KAAK,CAAC,GAAG,EAAE;oBAC5C,KAAK,GAAG,KAAK,CAAC,MAAM,CAClB,MAAM,IAAA,aAAG,EAAC,EAAE,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,CACrE,CAAC;iBACH;qBAAM,IAAI,UAAU,KAAK,WAAW,IAAI,KAAK,CAAC,SAAS,EAAE;oBACxD,KAAK,GAAG,KAAK,CAAC,MAAM,CAClB,MAAM,IAAA,mBAAS,EAAC,EAAE,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAC/D,CAAC;iBACH;qBAAM,IAAI,UAAU,KAAK,KAAK,IAAI,KAAK,CAAC,GAAG,EAAE;oBAC5C,KAAK,GAAG,KAAK,CAAC,MAAM,CAClB,MAAM,IAAA,aAAG,EAAC;wBACR,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC;wBACtB,KAAK;wBACL,QAAQ;wBACR,KAAK,EAAE,KAAK,CAAC,GAAG;qBACjB,CAAC,CACH,CAAC;iBACH;qBAAM,IAAI,UAAU,KAAK,cAAc,IAAI,KAAK,CAAC,YAAY,EAAE;oBAC9D,KAAK,GAAG,KAAK,CAAC,MAAM,CAClB,MAAM,IAAA,sBAAY,EAAC;wBACjB,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ;qBACpD,CAAC,CACH,CAAA;iBACF;qBAAM,IAAI,UAAU,KAAK,UAAU,IAAI,KAAK,CAAC,QAAQ,EAAE;oBACtD,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,IAAA,kBAAQ,EAAC,EAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,aAAa,EAAE,IAAI,EAAC,CAAC,CAAC,CAAA;iBAClF;qBAAM,IAAI,UAAU,KAAK,MAAM,IAAI,KAAK,CAAC,IAAI,EAAE;oBAC9C,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,IAAA,cAAI,EAAC,EAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,aAAa,EAAC,CAAC,CAAC,CAAA;iBACvE;aACF;YAED,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;gBACzB,IAAI,CAAC,CAAC,GAAG,KAAK,EAAE;oBAAE,OAAO,CAAC,CAAC;qBACtB,IAAI,CAAC,CAAC,GAAG,KAAK,EAAE;oBAAE,OAAO,CAAC,CAAC,CAAC;gBACjC,OAAO,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAChC,CAAC,CAAC,CAAC;SACJ;QAAC,OAAO,GAAG,EAAE;YACZ,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACnB,OAAO,EAAE,CAAC;SACX;IACH,CAAC;CAAA;AAhFD,8BAgFC;AAED,SAAsB,UAAU;;QAC9B,OAAO,KAAK,CAAC,+CAA+C,EAAE,EAAC,KAAK,EAAE,UAAU,EAAC,CAAC;aAC/E,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;aACrB,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,gEAAgE,EAAE,EAAC,KAAK,EAAE,UAAU,EAAC,CAAC;aACtG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CACrB,CAAC;IACN,CAAC;CAAA;AAND,gCAMC;AAED,SAAsB,aAAa;;QACjC,OAAO,KAAK,CAAC,0CAA0C,EAAE,EAAC,KAAK,EAAE,UAAU,EAAC,CAAC;aAC1E,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;aACrB,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,2DAA2D,EAAE,EAAC,KAAK,EAAE,UAAU,EAAC,CAAC;aACjG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CACrB,CAAC;IACN,CAAC;CAAA;AAND,sCAMC"}
@@ -1,7 +1,10 @@
1
- import type { Eta } from "./type";
1
+ import type { Eta, EtaDb, RouteListEntry } from "./type";
2
2
  interface fetchEtasProps {
3
+ freq: RouteListEntry["freq"];
3
4
  route: string;
4
5
  seq: number;
6
+ holidays: EtaDb["holidays"];
7
+ serviceDayMap: EtaDb["serviceDayMap"];
5
8
  }
6
- export default function fetchEtas({ route, seq }: fetchEtasProps): Promise<Eta[]>;
9
+ export default function fetchEtas({ route, seq, freq, holidays, serviceDayMap, }: fetchEtasProps): Promise<Eta[]>;
7
10
  export {};
package/dist/sunferry.js CHANGED
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const utils_1 = require("./utils");
4
- function fetchEtas({ route, seq }) {
4
+ function fetchEtas({ route, seq, freq, holidays, serviceDayMap, }) {
5
5
  if (seq === 1)
6
6
  return Promise.resolve([]);
7
7
  return fetch(`https://www.sunferry.com.hk/eta/?route=${route}`, {
@@ -9,6 +9,7 @@ function fetchEtas({ route, seq }) {
9
9
  })
10
10
  .then((response) => response.json())
11
11
  .then(({ data }) => {
12
+ throw new Error("");
12
13
  if (!data)
13
14
  return [];
14
15
  return data
@@ -32,6 +33,24 @@ function fetchEtas({ route, seq }) {
32
33
  co: "sunferry",
33
34
  };
34
35
  });
36
+ })
37
+ .catch(() => {
38
+ // the API gives CORS error, the below handling is for browser
39
+ const now = new Date();
40
+ return (0, utils_1.getUpcomingFerry)({ holidays, serviceDayMap, freq, date: new Date() })
41
+ .filter(v => (new Date(v)).getTime() - now.getTime() < 180 * 60 * 1000)
42
+ .map(eta => ({
43
+ eta: eta,
44
+ remark: {
45
+ zh: "預定班次",
46
+ en: "Scheduled",
47
+ },
48
+ dest: {
49
+ zh: "",
50
+ en: "",
51
+ },
52
+ co: "sunferry",
53
+ }));
35
54
  });
36
55
  }
37
56
  exports.default = fetchEtas;
@@ -1 +1 @@
1
- {"version":3,"file":"sunferry.js","sourceRoot":"","sources":["../src/sunferry.ts"],"names":[],"mappings":";;AACA,mCAAmC;AAOnC,SAAwB,SAAS,CAAC,EAChC,KAAK,EAAE,GAAG,EACK;IACf,IAAK,GAAG,KAAK,CAAC;QAAG,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;IAC3C,OAAO,KAAK,CACV,0CAA0C,KAAK,EAAE,EACjD;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;QACjB,IAAI,CAAC,IAAI;YAAE,OAAO,EAAE,CAAC;QAErB,OAAO,IAAI;aACR,GAAG,CAAC,CAAC,EAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAM,EAAE,EAAE;YAC9D,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;YACxB,IAAI,KAAK,GAAG,GAAG,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,GAAG,GAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,GAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,WAAW,WAAW,CAAA;YACpI,IAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,EAAG;gBAC9B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAA;gBAChC,KAAK,GAAG,GAAG,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,GAAG,GAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,GAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,WAAW,WAAW,CAAA;aACjI;YACD,OAAO;gBACL,GAAG,EAAE,KAAK;gBACV,MAAM,EAAE;oBACN,EAAE,EAAE,MAAM;oBACV,EAAE,EAAE,MAAM;iBACX;gBACD,IAAI,EAAE;oBACJ,EAAE,EAAE,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;oBAC5B,EAAE,EAAE,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;iBAC7B;gBACD,EAAE,EAAE,UAAU;aACf,CAAA;QACH,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC;AApCD,4BAoCC"}
1
+ {"version":3,"file":"sunferry.js","sourceRoot":"","sources":["../src/sunferry.ts"],"names":[],"mappings":"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"}
package/dist/type.d.ts CHANGED
@@ -49,13 +49,13 @@ export type EtaDb = {
49
49
  stopList: StopList;
50
50
  stopMap: StopMap;
51
51
  serviceDayMap: Record<string, [
52
- 0 | 1,
53
- 0 | 1,
54
- 0 | 1,
55
- 0 | 1,
56
- 0 | 1,
57
- 0 | 1,
58
- 0 | 1
52
+ "0" | "1",
53
+ "0" | "1",
54
+ "0" | "1",
55
+ "0" | "1",
56
+ "0" | "1",
57
+ "0" | "1",
58
+ "0" | "1"
59
59
  ]>;
60
60
  };
61
61
  export type Eta = {
@@ -70,5 +70,5 @@ export type Eta = {
70
70
  };
71
71
  co: Company;
72
72
  lat?: number;
73
- lng: number;
73
+ lng?: number;
74
74
  };
package/dist/utils.d.ts CHANGED
@@ -1 +1,8 @@
1
+ import { EtaDb, RouteListEntry } from "./type";
1
2
  export declare const isSafari: boolean;
3
+ export declare const getUpcomingFerry: ({ holidays, serviceDayMap, date, freq, }: {
4
+ holidays: string[];
5
+ serviceDayMap: EtaDb["serviceDayMap"];
6
+ freq: RouteListEntry["freq"];
7
+ date: Date;
8
+ }) => string[];
package/dist/utils.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isSafari = void 0;
3
+ exports.getUpcomingFerry = exports.isSafari = void 0;
4
4
  exports.isSafari = (() => {
5
5
  try {
6
6
  return Boolean(navigator &&
@@ -13,4 +13,50 @@ exports.isSafari = (() => {
13
13
  return false;
14
14
  }
15
15
  })();
16
+ // fancy handling for timezone, not recommend to use it unless you know what's going on
17
+ // i.e, calling isHoliday(holidays, new Date()) is checking if it was being a holiday at the moment of 8 hours ago
18
+ const isHoliday = (holidays, utcDate) => {
19
+ if (utcDate.getDay() === 0)
20
+ return true;
21
+ return holidays.includes(String(utcDate.getUTCFullYear()) +
22
+ String(utcDate.getUTCMonth() + 1).padStart(2, "0") +
23
+ String(utcDate.getUTCDate()).padStart(2, "0"));
24
+ };
25
+ const getUpcomingFerry = ({ holidays, serviceDayMap, date, freq, }) => {
26
+ if (freq === null) {
27
+ return [];
28
+ }
29
+ const getEta = (serviceFreq, date) => (Object.keys(serviceFreq).sort((a, b) => a < b ? -1 : 1).reduce((acc, tp) => {
30
+ const ferryTime = new Date(date.getTime());
31
+ ferryTime.setUTCHours(parseInt(tp.slice(0, 2), 10));
32
+ ferryTime.setUTCMinutes(parseInt(tp.slice(2), 10));
33
+ if (ferryTime >= date) {
34
+ acc.push(String(ferryTime.getUTCFullYear()) + "-" +
35
+ String(ferryTime.getUTCMonth() + 1).padStart(2, "0") + "-" +
36
+ String(ferryTime.getUTCDate()).padStart(2, "0") + "T" +
37
+ String(ferryTime.getUTCHours()).padStart(2, "0") + ":" +
38
+ String(ferryTime.getUTCMinutes()).padStart(2, "0") + ":00" +
39
+ ".000+08:00");
40
+ }
41
+ return acc;
42
+ }, []));
43
+ // obtain all ETAs sampling for next 24 hours, fancy handling for timezone
44
+ const ret = Array(24).fill(0).reduce((acc, _, idx) => {
45
+ const refDate = new Date(date.getTime());
46
+ refDate.setUTCHours(refDate.getUTCHours() + 8 + idx);
47
+ for (let serviceKey in freq) {
48
+ if (isHoliday(holidays, refDate)) {
49
+ if (serviceDayMap[serviceKey][0] === '1') {
50
+ return acc.concat(getEta(freq[serviceKey], refDate));
51
+ }
52
+ }
53
+ else if (serviceDayMap[serviceKey][refDate.getDay()]) {
54
+ return acc.concat(getEta(freq[serviceKey], refDate)).sort();
55
+ }
56
+ }
57
+ return acc;
58
+ }, []);
59
+ return [...new Set(ret)].sort((a, b) => a < b ? -1 : 1);
60
+ };
61
+ exports.getUpcomingFerry = getUpcomingFerry;
16
62
  //# sourceMappingURL=utils.js.map
package/dist/utils.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";;;AAAa,QAAA,QAAQ,GAAG,CAAC,GAAG,EAAE;IAC5B,IAAI;QACF,OAAO,OAAO,CACZ,SAAS;YACP,SAAS,CAAC,SAAS;YACnB,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC;YACvC,CAAC,CACC,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC;gBACvC,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,CAC1C,CACJ,CAAC;KACH;IAAC,WAAM;QACN,OAAO,KAAK,CAAC;KACd;AACH,CAAC,CAAC,EAAE,CAAC"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,13 @@
1
- import type { Eta, StopList } from "./type";
1
+ import type { Eta, EtaDb, RouteListEntry, StopList } from "./type";
2
2
  interface fetchEtasProps {
3
- route: string;
4
3
  stops: {
5
4
  fortuneferry: string[];
6
5
  };
7
6
  seq: number;
8
7
  stopList: StopList;
8
+ freq: RouteListEntry["freq"];
9
+ holidays: EtaDb["holidays"];
10
+ serviceDayMap: EtaDb["serviceDayMap"];
9
11
  }
10
- export default function fetchEtas({ route, stops: { fortuneferry: stops }, seq, stopList }: fetchEtasProps): Promise<Eta[]>;
12
+ export default function fetchEtas({ stops: { fortuneferry }, seq, holidays, freq, serviceDayMap }: fetchEtasProps): Promise<Eta[]>;
11
13
  export {};
@@ -1,4 +1,4 @@
1
- import { isSafari } from "./utils";
1
+ import { getUpcomingFerry } from "./utils";
2
2
  const getCode = (zhName) => {
3
3
  if (zhName.includes("中環")) {
4
4
  return "CL";
@@ -29,39 +29,61 @@ const getCode = (zhName) => {
29
29
  }
30
30
  return "CL";
31
31
  };
32
- export default function fetchEtas({ route, stops: { fortuneferry: stops }, seq, stopList }) {
33
- if (stops.length === seq - 1)
32
+ export default function fetchEtas({ stops: { fortuneferry: stops }, seq, holidays, freq, serviceDayMap }) {
33
+ if (seq >= 1)
34
34
  return Promise.resolve([]);
35
- const u = getCode(stopList[stops[seq]].name.zh);
36
- const v = getCode(stopList[stops[seq + 1]].name.zh);
37
- return fetch(`https://www.hongkongwatertaxi.com.hk/eta/?route=${u}${v}`, {
35
+ const now = new Date();
36
+ return Promise.resolve(getUpcomingFerry({ holidays, serviceDayMap, freq, date: new Date() })
37
+ .filter(v => (new Date(v)).getTime() - now.getTime() < 180 * 60 * 1000)
38
+ .map(eta => ({
39
+ eta: eta,
40
+ remark: {
41
+ zh: "預定班次",
42
+ en: "Scheduled",
43
+ },
44
+ dest: {
45
+ zh: "",
46
+ en: "",
47
+ },
48
+ co: "fortuneferry",
49
+ })));
50
+ /*
51
+ * the official API is broken most of the time, keep it for reference
52
+
53
+ const v = getCode(stopList[stops[seq+1]].name.zh)
54
+ const u = getCode(stopList[stops[seq]].name.zh)
55
+ return fetch(
56
+ `https://www.hongkongwatertaxi.com.hk/eta/?route=${u}${v}`,
57
+ {
38
58
  cache: isSafari ? "default" : "no-store",
39
- })
40
- .then((response) => response.json())
41
- .then(({ data }) => {
42
- if (!data)
43
- return [];
59
+ },
60
+ )
61
+ .then((response) => response.json())
62
+ .then(({ data }) => {
63
+ if (!data) return [];
64
+
44
65
  return data
45
- .map(({ depart_time, rmk_tc, rmk_en }) => {
66
+ .map(({ depart_time, rmk_tc, rmk_en }: any) => {
46
67
  const date = new Date();
47
- let guess = `${date.getFullYear()}-${('0' + (date.getMonth() + 1)).slice(-2)}-${('0' + date.getDate()).slice(-2)}T${depart_time}:00+08:00`;
48
- if ((new Date(guess)) < date) {
49
- date.setDate(date.getDate() + 1);
50
- guess = `${date.getFullYear()}-${('0' + (date.getMonth() + 1)).slice(-2)}-${('0' + date.getDate()).slice(-2)}T${depart_time}:00+08:00`;
68
+ let guess = `${date.getFullYear()}-${('0'+(date.getMonth()+1)).slice(-2)}-${('0'+date.getDate()).slice(-2)}T${depart_time}:00+08:00`
69
+ if ( (new Date(guess)) < date ) {
70
+ date.setDate(date.getDate() + 1)
71
+ guess = `${date.getFullYear()}-${('0'+(date.getMonth()+1)).slice(-2)}-${('0'+date.getDate()).slice(-2)}T${depart_time}:00+08:00`
51
72
  }
52
73
  return {
53
- eta: guess,
54
- remark: {
55
- zh: rmk_tc,
56
- en: rmk_en,
57
- },
58
- dest: {
59
- zh: "",
60
- en: "",
61
- },
62
- co: "fortuneferry",
63
- };
64
- });
65
- });
74
+ eta: guess,
75
+ remark: {
76
+ zh: rmk_tc,
77
+ en: rmk_en,
78
+ },
79
+ dest: {
80
+ zh: "",
81
+ en: "",
82
+ },
83
+ co: "fortuneferry",
84
+ }
85
+ });
86
+ });
87
+ */
66
88
  }
67
89
  //# sourceMappingURL=fortuneferry.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fortuneferry.js","sourceRoot":"","sources":["../src/fortuneferry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fortuneferry.js","sourceRoot":"","sources":["../src/fortuneferry.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAY,MAAM,SAAS,CAAC;AAarD,MAAM,OAAO,GAAG,CAAC,MAAc,EAAE,EAAE;IACjC,IAAK,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAG;QAC3B,OAAO,IAAI,CAAA;KACZ;SAAM,IAAK,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAG;QAClC,OAAO,IAAI,CAAA;KACZ;SAAM,IAAK,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAG;QAClC,OAAO,IAAI,CAAA;KACZ;SAAM,IAAK,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAG;QAClC,OAAO,IAAI,CAAA;KACZ;SAAM,IAAK,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAG;QAClC,OAAO,KAAK,CAAA;KACb;SAAM,IAAK,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAG;QAClC,OAAO,IAAI,CAAA;KACZ;SAAM,IAAK,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAG;QAClC,OAAO,IAAI,CAAA;KACZ;SAAM,IAAK,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAG;QACnC,OAAO,KAAK,CAAA;KACb;SAAM,IAAK,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAG;QAClC,OAAO,IAAI,CAAA;KACZ;IACD,OAAO,IAAI,CAAC;AACd,CAAC,CAAA;AAED,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,EAChC,KAAK,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,EAAE,GAAG,EACnC,QAAQ,EAAE,IAAI,EAAE,aAAa,EACd;IACf,IAAK,GAAG,IAAI,CAAC;QAAG,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC3C,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAA;IACtB,OAAO,OAAO,CAAC,OAAO,CACpB,gBAAgB,CAAC,EAAC,QAAQ,EAAE,aAAa,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,IAAI,EAAE,EAAC,CAAC;SAChE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,GAAG,GAAG,CAAC,OAAO,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,IAAI,CAAE;SACvE,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACX,GAAG,EAAE,GAAG;QACN,MAAM,EAAE;YACN,EAAE,EAAE,MAAM;YACV,EAAE,EAAE,WAAW;SAChB;QACD,IAAI,EAAE;YACJ,EAAE,EAAE,EAAE;YACN,EAAE,EAAE,EAAE;SACP;QACD,EAAE,EAAE,cAAc;KACrB,CAAC,CAAC,CACN,CAAA;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAqCE;AACJ,CAAC"}
package/esm/hkkf.d.ts CHANGED
@@ -1,8 +1,9 @@
1
- import type { Eta, RouteListEntry } from "./type";
1
+ import type { Eta, EtaDb, RouteListEntry } from "./type";
2
2
  interface fetchEtasProps {
3
- route: string;
4
- bound: RouteListEntry["bound"]["hkkf"];
3
+ freq: RouteListEntry["freq"];
5
4
  seq: number;
5
+ holidays: EtaDb["holidays"];
6
+ serviceDayMap: EtaDb["serviceDayMap"];
6
7
  }
7
- export default function fetchEtas({ route, bound, seq }: fetchEtasProps): Promise<Eta[]>;
8
+ export default function fetchEtas({ freq, seq, holidays, serviceDayMap, }: fetchEtasProps): Promise<Eta[]>;
8
9
  export {};