@golemio/pid 2.2.4-dev.546885184 → 2.2.4-dev.546964568
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.
- package/db/example/09_departureboards_testdata_nogapfilter.sql +1541 -0
- package/dist/output-gateway/pid/PIDRouter.js +9 -1
- package/dist/output-gateway/pid/PIDRouter.js.map +1 -1
- package/dist/output-gateway/pid/index.d.ts +3 -1
- package/dist/output-gateway/pid/index.js +2 -0
- package/dist/output-gateway/pid/index.js.map +1 -1
- package/dist/output-gateway/pid/models/helpers/FilterHelper.d.ts +21 -0
- package/dist/output-gateway/pid/models/helpers/FilterHelper.js +39 -0
- package/dist/output-gateway/pid/models/helpers/FilterHelper.js.map +1 -0
- package/dist/output-gateway/pid/models/helpers/PIDDepartureModel.d.ts +3 -3
- package/dist/output-gateway/pid/models/helpers/PIDDepartureModel.js +27 -34
- package/dist/output-gateway/pid/models/helpers/PIDDepartureModel.js.map +1 -1
- package/package.json +1 -1
|
@@ -48,7 +48,15 @@ class PIDRouter extends BaseRouter_1.BaseRouter {
|
|
|
48
48
|
this.validationEnums = {
|
|
49
49
|
departureMode: ["departures", "arrivals", "mixed"],
|
|
50
50
|
order: ["real", "timetable"],
|
|
51
|
-
filter: [
|
|
51
|
+
filter: [
|
|
52
|
+
"none",
|
|
53
|
+
"routeOnce",
|
|
54
|
+
"routeHeadingOnce",
|
|
55
|
+
"routeOnceFill",
|
|
56
|
+
"routeHeadingOnceFill",
|
|
57
|
+
"routeHeadingOnceNoGap",
|
|
58
|
+
"routeHeadingOnceNoGapFill",
|
|
59
|
+
],
|
|
52
60
|
skip: ["untracked", "canceled", "atStop" /*, "onInfotext"*/],
|
|
53
61
|
// creates whitelist of timezone names
|
|
54
62
|
prefferedTimezone: moment_timezone_1.default.tz.names().concat(moment_timezone_1.default.tz
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PIDRouter.js","sourceRoot":"","sources":["../../../src/output-gateway/pid/PIDRouter.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;AAEH,sCAA8C;AAC9C,+FAA6F;AAC7F,qEAAkE;AAClE,mEAA6E;AAC7E,oFAAiF;AACjF,6EAAkH;AAClH,+DAA4F;AAC5F,mFAA2E;AAC3E,6EAAuE;AACvE,gGAA2E;AAC3E,
|
|
1
|
+
{"version":3,"file":"PIDRouter.js","sourceRoot":"","sources":["../../../src/output-gateway/pid/PIDRouter.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;AAEH,sCAA8C;AAC9C,+FAA6F;AAC7F,qEAAkE;AAClE,mEAA6E;AAC7E,oFAAiF;AACjF,6EAAkH;AAClH,+DAA4F;AAC5F,mFAA2E;AAC3E,6EAAuE;AACvE,gGAA2E;AAC3E,mCAAkC;AAClC,wBAA4C;AAE5C,MAAa,SAAU,SAAQ,uBAAU;IA0CrC;QACI,KAAK,EAAE,CAAC;QA1CZ,iDAAiD;QAC1C,WAAM,GAAW,IAAA,gBAAM,GAAE,CAAC;QAIzB,2BAAsB,GAAQ;YAClC,KAAK,EAAE,EAAE;YACT,KAAK,EAAE,EAAE;YACT,MAAM,EAAE,CAAC;YACT,YAAY,EAAE,GAAG;YACjB,aAAa,EAAE,CAAC;YAChB,kBAAkB,EAAE;gBAChB,WAAW,EAAE,CAAC;gBACd,UAAU,EAAE,CAAC,GAAG,EAAE;aACrB;SACJ,CAAC;QAEM,oBAAe,GAAQ;YAC3B,aAAa,EAAE,CAAC,YAAY,EAAE,UAAU,EAAE,OAAO,CAAC;YAClD,KAAK,EAAE,CAAC,MAAM,EAAE,WAAW,CAAC;YAC5B,MAAM,EAAE;gBACJ,MAAM;gBACN,WAAW;gBACX,kBAAkB;gBAClB,eAAe;gBACf,sBAAsB;gBACtB,uBAAuB;gBACvB,2BAA2B;aAC9B;YACD,IAAI,EAAE,CAAC,WAAW,EAAE,UAAU,EAAE,QAAQ,CAAC,kBAAkB,CAAC;YAC5D,sCAAsC;YACtC,iBAAiB,EAAE,yBAAM,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,MAAM,CACvC,yBAAM,CAAC,EAAE;iBACJ,KAAK,EAAE;gBACR,iDAAiD;iBAChD,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBACpC,0BAA0B;iBACzB,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAC/C;SACJ,CAAC;QAQK,sBAAiB,GAAG,CAAO,GAAY,EAAE,GAAa,EAAE,IAAkB,EAAE,EAAE;YACjF,MAAM,MAAM,GAAa,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;YACrE,MAAM,MAAM,GAAa,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;YACrE,MAAM,OAAO,GAAa,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;YACnE,MAAM,KAAK,GAAa,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;YACnE,MAAM,IAAI,GAAa,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;YACjE,MAAM,KAAK,GAAW,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC,sBAAsB,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACzF,MAAM,KAAK,GAAW,IAAA,iBAAQ,EAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC;YACzD,MAAM,iBAAiB,GAAG,yBAAgB,CAAC,yBAAyB,CAAC,GAAG,CAAC,KAAK,CAAC,iBAAiB,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YAEzH,oDAAoD;YACpD,cAAc;YACd,uBAAuB;YACvB,0BAA0B;YAC1B,yBAAyB;YACzB,4BAA4B;YAC5B,MAAM,qBAAqB,GAAW,uDAAuD,CAAC;YAC9F,+DAA+D;YAC/D,MAAM,QAAQ,GAAuB,GAAG,CAAC,KAAK,CAAC,QAAQ;gBACnD,CAAC,CAAE,GAAG,CAAC,KAAK,CAAC,QAAmB,CAAC,KAAK,CAAC,qBAAqB,CAAC;oBACzD,CAAC,CAAC,IAAA,yBAAM,EAAC,GAAG,CAAC,KAAK,CAAC,QAAkB,CAAC;oBACtC,CAAC,CAAC,yBAAM,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,iBAAiB,CAAC;gBACtD,CAAC,CAAC,SAAS,CAAC;YAEhB,MAAM,IAAI,GAAG,IAAA,gCAAe,EAAC,6BAA6B,EAAE,eAAM,CAAC,SAAS,CAAC,CAAC;YAC9E,IAAI;gBACA,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC;oBAChD,MAAM;oBACN,MAAM;oBACN,OAAO;oBACP,KAAK;oBACL,YAAY,EAAE,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,YAAY,IAAI,IAAI,CAAC,sBAAsB,CAAC,YAAY,EAAE,EAAE,CAAC;oBAC9F,aAAa,EAAE,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,aAAa,IAAI,IAAI,CAAC,sBAAsB,CAAC,aAAa,EAAE,EAAE,CAAC;oBACjG,QAAQ;oBACR,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,IAAc;oBAC9B,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,KAAe;oBAChC,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,MAAgB;oBAClC,IAAI;oBACJ,KAAK;oBACL,MAAM,EAAE,IAAA,iBAAQ,EAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,SAAS;oBAC/C,KAAK;oBACL,QAAQ,EAAE,iBAAiB;iBAC9B,CAAC,CAAC;gBACH,oCAAoC;gBACpC,GAAG,CAAC,SAAS,CAAC,+BAA+B,EAAE,MAAM,CAAC,CAAC;gBACvD,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;oBACjB,KAAK,EAAE,IAAI,CAAC,KAAK;oBACjB,UAAU,EAAE,IAAI,CAAC,UAAU;oBAC3B,SAAS,EAAE,IAAI,CAAC,SAAS;iBAC5B,CAAC,CAAC;aACN;YAAC,OAAO,GAAG,EAAE;gBACV,IAAI,CAAC,GAAG,CAAC,CAAC;aACb;oBAAS;gBACN,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,GAAG,EAAE,CAAC;aACf;QACL,CAAC,CAAA,CAAC;QAEF;;;WAGG;QACK,4BAAuB,GAAG,CAAC,UAAmB,EAAE,EAAE;YACtD,OAAO,CAAC,GAAY,EAAE,GAAa,EAAE,IAAkB,EAAE,EAAE;gBACvD,MAAM,aAAa,GAAG,IAAA,yBAAM,GAAE,CAAC;gBAC/B,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAA,yBAAM,EAAC,GAAG,CAAC,KAAK,CAAC,QAAkB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;gBAClF,IACI,QAAQ;oBACR,CAAC,QAAQ,CAAC,SAAS,CACf,aAAa,CAAC,KAAK,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,sBAAsB,CAAC,kBAAkB,CAAC,WAAW,EAAE,OAAO,CAAC,EACnG,aAAa,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,sBAAsB,CAAC,kBAAkB,CAAC,UAAU,EAAE,OAAO,CAAC,EAC7F,SAAS,EACT,IAAI,CACP,EACH;oBACE,OAAO,IAAI,CACP,IAAI,4BAAW,CAAC,mDAAmD,EAAE,IAAI,EAAE,UAAU,IAAI,YAAY,EAAE,GAAG,CAAC,CAC9G,CAAC;iBACL;gBACD,OAAO,IAAI,EAAE,CAAC;YAClB,CAAC,CAAC;QACN,CAAC,CAAC;QAEF;;WAEG;QACK,eAAU,GAAG,GAAS,EAAE;YAC5B,IAAI,CAAC,4BAA4B,CAAC,WAAW,CAAC,CAAC;QACnD,CAAC,CAAC;QAEM,iCAA4B,GAAG,CAAC,MAAwB,EAAQ,EAAE;YACtE,qCAAqC;YAErC,IAAI,CAAC,MAAM,CAAC,GAAG,CACX,kBAAkB,EAClB;gBACI,IAAA,yBAAK,EAAC;oBACF,IAAA,yBAAK,EAAC,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE;oBAC/B,IAAA,yBAAK,EAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE;oBAClC,IAAA,yBAAK,EAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE;oBAClC,IAAA,yBAAK,EAAC,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;oBAChC,IAAA,yBAAK,EAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;oBACnC,IAAA,yBAAK,EAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;oBACnC,IAAA,yBAAK,EAAC,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE;oBACjC,IAAA,yBAAK,EAAC,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;iBACrC,CAAC;gBACF,IAAA,yBAAK,EAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;gBACpC,IAAA,yBAAK,EAAC,UAAU,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;gBACvC,IAAA,yBAAK,EAAC,UAAU,CAAC,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE;gBACpC,IAAA,yBAAK,EAAC,SAAS,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;gBACtC,IAAA,yBAAK,EAAC,eAAe,CAAC,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE;gBACzC,IAAA,yBAAK,EAAC,cAAc,CAAC,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE;gBACxC,IAAA,yBAAK,EAAC,mBAAmB,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC;gBAC7F,IAAA,yBAAK,EAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC;gBACjE,IAAA,yBAAK,EAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC;gBACrE,IAAA,yBAAK,EAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC;gBACvE,IAAA,yBAAK,EAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;gBACxD,IAAA,yBAAK,EAAC,UAAU,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,SAAS,EAAE;gBACnD,IAAA,yBAAK,EAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE;gBACjC,IAAA,yBAAK,EAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE;gBAClC,IAAA,yBAAK,EAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE;aACpC,EACD,uBAAU,EACV,wBAAW,EACX,IAAI,CAAC,uBAAuB,CAAC,uBAAuB,CAAC,EACrD,IAAA,sCAAyB,EAAC,uBAAuB,CAAC,EAClD,IAAA,0BAAkB,EAAC,MAAM,CAAC,EAC1B,IAAI,CAAC,iBAAiB,CACzB,CAAC;QACN,CAAC,CAAC;QApIE,IAAI,CAAC,oBAAoB,GAAG,IAAI,0BAAuB,EAAE,CAAC;QAC1D,IAAI,CAAC,UAAU,EAAE,CAAC;IACtB,CAAC;CAmIJ;AAjLD,8BAiLC;AAED,MAAM,SAAS,GAAW,IAAI,SAAS,EAAE,CAAC,MAAM,CAAC;AAExC,8BAAS"}
|
|
@@ -128,7 +128,9 @@ export declare enum DepartureFilter {
|
|
|
128
128
|
ROUTE_ONCE = "routeOnce",
|
|
129
129
|
ROUTE_HEADING_ONCE = "routeHeadingOnce",
|
|
130
130
|
ROUTE_ONCE_FILL = "routeOnceFill",
|
|
131
|
-
ROUTE_HEADING_ONCE_FILL = "routeHeadingOnceFill"
|
|
131
|
+
ROUTE_HEADING_ONCE_FILL = "routeHeadingOnceFill",
|
|
132
|
+
ROUTE_HEADING_ONCE_NOGAP = "routeHeadingOnceNoGap",
|
|
133
|
+
ROUTE_HEADING_ONCE_NOGAP_FILL = "routeHeadingOnceNoGapFill"
|
|
132
134
|
}
|
|
133
135
|
export declare enum DepartureSkip {
|
|
134
136
|
UNTRACKED = "untracked",
|
|
@@ -35,6 +35,8 @@ var DepartureFilter;
|
|
|
35
35
|
DepartureFilter["ROUTE_HEADING_ONCE"] = "routeHeadingOnce";
|
|
36
36
|
DepartureFilter["ROUTE_ONCE_FILL"] = "routeOnceFill";
|
|
37
37
|
DepartureFilter["ROUTE_HEADING_ONCE_FILL"] = "routeHeadingOnceFill";
|
|
38
|
+
DepartureFilter["ROUTE_HEADING_ONCE_NOGAP"] = "routeHeadingOnceNoGap";
|
|
39
|
+
DepartureFilter["ROUTE_HEADING_ONCE_NOGAP_FILL"] = "routeHeadingOnceNoGapFill";
|
|
38
40
|
})(DepartureFilter = exports.DepartureFilter || (exports.DepartureFilter = {}));
|
|
39
41
|
var DepartureSkip;
|
|
40
42
|
(function (DepartureSkip) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/output-gateway/pid/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAGA,2CAAyB;AACzB,8CAA4B;AAsH5B,IAAY,aAIX;AAJD,WAAY,aAAa;IACrB,0CAAyB,CAAA;IACzB,sCAAqB,CAAA;IACrB,gCAAe,CAAA;AACnB,CAAC,EAJW,aAAa,GAAb,qBAAa,KAAb,qBAAa,QAIxB;AAED,IAAY,cAGX;AAHD,WAAY,cAAc;IACtB,+BAAa,CAAA;IACb,yCAAuB,CAAA;AAC3B,CAAC,EAHW,cAAc,GAAd,sBAAc,KAAd,sBAAc,QAGzB;AAED,IAAY,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/output-gateway/pid/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAGA,2CAAyB;AACzB,8CAA4B;AAsH5B,IAAY,aAIX;AAJD,WAAY,aAAa;IACrB,0CAAyB,CAAA;IACzB,sCAAqB,CAAA;IACrB,gCAAe,CAAA;AACnB,CAAC,EAJW,aAAa,GAAb,qBAAa,KAAb,qBAAa,QAIxB;AAED,IAAY,cAGX;AAHD,WAAY,cAAc;IACtB,+BAAa,CAAA;IACb,yCAAuB,CAAA;AAC3B,CAAC,EAHW,cAAc,GAAd,sBAAc,KAAd,sBAAc,QAGzB;AAED,IAAY,eAQX;AARD,WAAY,eAAe;IACvB,gCAAa,CAAA;IACb,2CAAwB,CAAA;IACxB,0DAAuC,CAAA;IACvC,oDAAiC,CAAA;IACjC,mEAAgD,CAAA;IAChD,qEAAkD,CAAA;IAClD,8EAA2D,CAAA;AAC/D,CAAC,EARW,eAAe,GAAf,uBAAe,KAAf,uBAAe,QAQ1B;AAED,IAAY,aAKX;AALD,WAAY,aAAa;IACrB,wCAAuB,CAAA;IACvB,sCAAqB,CAAA;IACrB,mCAAkB,CAAA;IAClB,8BAA8B;AAClC,CAAC,EALW,aAAa,GAAb,qBAAa,KAAb,qBAAa,QAKxB"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { DepartureFilter, IPIDDeparture } from "../..";
|
|
2
|
+
/** SplitDepartures type
|
|
3
|
+
* Departures in once array are the ones we want to show on Departure board.
|
|
4
|
+
* Fill array is only used for some filters allowing to fill final result with
|
|
5
|
+
* departures with secondary importance/ that were filter out by filter condition
|
|
6
|
+
*
|
|
7
|
+
*/
|
|
8
|
+
export declare type SplitDepartures = {
|
|
9
|
+
once: IPIDDeparture[];
|
|
10
|
+
fill: IPIDDeparture[];
|
|
11
|
+
};
|
|
12
|
+
export declare type AccumulatorCondition = (accumulator: SplitDepartures, currentDeparture: IPIDDeparture) => boolean;
|
|
13
|
+
export declare class FilterHelper {
|
|
14
|
+
static routeOnceHeadingCondition: AccumulatorCondition;
|
|
15
|
+
static routeOnceHeadingNoGapCondition: AccumulatorCondition;
|
|
16
|
+
static routeOnceCondition: AccumulatorCondition;
|
|
17
|
+
static isFillFilterType(filter: DepartureFilter): boolean;
|
|
18
|
+
private static isInFillBucket;
|
|
19
|
+
private static isInOnceBucketWithHeading;
|
|
20
|
+
private static isInOnceBucket;
|
|
21
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var _a;
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.FilterHelper = void 0;
|
|
5
|
+
const pid_1 = require("../..");
|
|
6
|
+
class FilterHelper {
|
|
7
|
+
static isFillFilterType(filter) {
|
|
8
|
+
return (filter === pid_1.DepartureFilter.ROUTE_ONCE_FILL ||
|
|
9
|
+
filter === pid_1.DepartureFilter.ROUTE_HEADING_ONCE_FILL ||
|
|
10
|
+
filter === pid_1.DepartureFilter.ROUTE_HEADING_ONCE_NOGAP_FILL);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
exports.FilterHelper = FilterHelper;
|
|
14
|
+
_a = FilterHelper;
|
|
15
|
+
FilterHelper.routeOnceHeadingCondition = (accumulator, currentDeparture) => {
|
|
16
|
+
// only the first departure to respone for trips with same route_id and heading
|
|
17
|
+
return !_a.isInOnceBucketWithHeading(accumulator, currentDeparture);
|
|
18
|
+
};
|
|
19
|
+
FilterHelper.routeOnceHeadingNoGapCondition = (accumulator, currentDeparture) => {
|
|
20
|
+
// extension of routeOnceHeading filter, when we skip some route_id afterwards it doesnt show up even different headings
|
|
21
|
+
return (!_a.isInOnceBucketWithHeading(accumulator, currentDeparture) && !_a.isInFillBucket(accumulator, currentDeparture));
|
|
22
|
+
};
|
|
23
|
+
FilterHelper.routeOnceCondition = (accumulator, currentDeparture) => {
|
|
24
|
+
// only the first departure to respone for trips with same route_id
|
|
25
|
+
return !_a.isInOnceBucket(accumulator, currentDeparture);
|
|
26
|
+
};
|
|
27
|
+
FilterHelper.isInFillBucket = (accumulator, currentDeparture) => {
|
|
28
|
+
return accumulator.fill.findIndex((e) => e.route_id === currentDeparture.route_id) >= 0;
|
|
29
|
+
};
|
|
30
|
+
FilterHelper.isInOnceBucketWithHeading = (accumulator, currentDeparture) => {
|
|
31
|
+
return (accumulator.once.findIndex((e) => e.route_id === currentDeparture.route_id &&
|
|
32
|
+
(currentDeparture.stop_headsign
|
|
33
|
+
? e.stop_headsign === currentDeparture.stop_headsign
|
|
34
|
+
: e.trip_headsign === currentDeparture.trip_headsign)) >= 0);
|
|
35
|
+
};
|
|
36
|
+
FilterHelper.isInOnceBucket = (accumulator, currentDeparture) => {
|
|
37
|
+
return accumulator.once.findIndex((e) => e.route_id === currentDeparture.route_id) >= 0;
|
|
38
|
+
};
|
|
39
|
+
//# sourceMappingURL=FilterHelper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FilterHelper.js","sourceRoot":"","sources":["../../../../../src/output-gateway/pid/models/helpers/FilterHelper.ts"],"names":[],"mappings":";;;;AAAA,+BAAyD;AAWzD,MAAa,YAAY;IAwBd,MAAM,CAAC,gBAAgB,CAAC,MAAuB;QAClD,OAAO,CACH,MAAM,KAAK,qBAAe,CAAC,eAAe;YAC1C,MAAM,KAAK,qBAAe,CAAC,uBAAuB;YAClD,MAAM,KAAK,qBAAe,CAAC,6BAA6B,CAC3D,CAAC;IACN,CAAC;;AA9BL,oCAsDC;;AArDiB,sCAAyB,GAAyB,CAC5D,WAA4B,EAC5B,gBAA+B,EACjC,EAAE;IACA,+EAA+E;IAC/E,OAAO,CAAC,EAAI,CAAC,yBAAyB,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC;AAC1E,CAAE,CAAA;AAEY,2CAA8B,GAAyB,CACjE,WAA4B,EAC5B,gBAA+B,EACjC,EAAE;IACA,wHAAwH;IACxH,OAAO,CACH,CAAC,EAAI,CAAC,yBAAyB,CAAC,WAAW,EAAE,gBAAgB,CAAC,IAAI,CAAC,EAAI,CAAC,cAAc,CAAC,WAAW,EAAE,gBAAgB,CAAC,CACxH,CAAC;AACN,CAAE,CAAA;AAEY,+BAAkB,GAAyB,CAAC,WAA4B,EAAE,gBAA+B,EAAE,EAAE;IACvH,mEAAmE;IACnE,OAAO,CAAC,EAAI,CAAC,cAAc,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC;AAC/D,CAAE,CAAA;AAUa,2BAAc,GAAyB,CAAC,WAA4B,EAAE,gBAA+B,EAAE,EAAE;IACpH,OAAO,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC5F,CAAE,CAAA;AAEa,sCAAyB,GAAyB,CAC7D,WAA4B,EAC5B,gBAA+B,EACjC,EAAE;IACA,OAAO,CACH,WAAW,CAAC,IAAI,CAAC,SAAS,CACtB,CAAC,CAAC,EAAE,EAAE,CACF,CAAC,CAAC,QAAQ,KAAK,gBAAgB,CAAC,QAAQ;QACxC,CAAC,gBAAgB,CAAC,aAAa;YAC3B,CAAC,CAAC,CAAC,CAAC,aAAa,KAAK,gBAAgB,CAAC,aAAa;YACpD,CAAC,CAAC,CAAC,CAAC,aAAa,KAAK,gBAAgB,CAAC,aAAa,CAAC,CAChE,IAAI,CAAC,CACT,CAAC;AACN,CAAE,CAAA;AAEa,2BAAc,GAAyB,CAAC,WAA4B,EAAE,gBAA+B,EAAE,EAAE;IACpH,OAAO,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC5F,CAAE,CAAA"}
|
|
@@ -3,11 +3,9 @@ import IPIDDepartureQueryOptions from "./interfaces/IPIDDepartureQueryOptions";
|
|
|
3
3
|
export default class PIDDeparturesModel {
|
|
4
4
|
private departures;
|
|
5
5
|
private options;
|
|
6
|
+
private static FilterConditionMap;
|
|
6
7
|
constructor(departures: IPIDDeparture[], options: IPIDDepartureQueryOptions);
|
|
7
8
|
toArray: () => any;
|
|
8
|
-
/** Skips, sorts, order, limit and returns departures in array
|
|
9
|
-
* @returns This departures
|
|
10
|
-
*/
|
|
11
9
|
private toArrayInternal;
|
|
12
10
|
/** Orders departures in special way by given options
|
|
13
11
|
*/
|
|
@@ -21,4 +19,6 @@ export default class PIDDeparturesModel {
|
|
|
21
19
|
/** Fills direction with proper value based on departure direction ruls
|
|
22
20
|
*/
|
|
23
21
|
private addDirections;
|
|
22
|
+
private filterDepartures;
|
|
23
|
+
private filterByCondition;
|
|
24
24
|
}
|
|
@@ -5,15 +5,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const pid_1 = require("../..");
|
|
7
7
|
const DepartureBoardMapper_1 = __importDefault(require("../../helpers/DepartureBoardMapper"));
|
|
8
|
+
const FilterHelper_1 = require("./FilterHelper");
|
|
8
9
|
class PIDDeparturesModel {
|
|
9
10
|
constructor(departures, options) {
|
|
10
11
|
this.toArray = () => {
|
|
11
12
|
this.toArrayInternal();
|
|
12
13
|
return DepartureBoardMapper_1.default.mapDepartures(this, this.options.timezone, this.options.mode);
|
|
13
14
|
};
|
|
14
|
-
/** Skips, sorts, order, limit and returns departures in array
|
|
15
|
-
* @returns This departures
|
|
16
|
-
*/
|
|
17
15
|
this.toArrayInternal = () => {
|
|
18
16
|
this.skip();
|
|
19
17
|
this.sort();
|
|
@@ -25,37 +23,8 @@ class PIDDeparturesModel {
|
|
|
25
23
|
/** Orders departures in special way by given options
|
|
26
24
|
*/
|
|
27
25
|
this.filterAndLimit = () => {
|
|
28
|
-
|
|
29
|
-
if (
|
|
30
|
-
finalDepartures = this.departures.reduce((acc, currentDeparture) => {
|
|
31
|
-
// only the first departure to respone for trips with same route_id
|
|
32
|
-
if (!acc.once.find((e) => e.route_id === currentDeparture.route_id)) {
|
|
33
|
-
acc.once.push(currentDeparture);
|
|
34
|
-
}
|
|
35
|
-
else {
|
|
36
|
-
acc.fill.push(currentDeparture);
|
|
37
|
-
}
|
|
38
|
-
return acc;
|
|
39
|
-
}, { once: [], fill: [] });
|
|
40
|
-
}
|
|
41
|
-
else if (this.options.filter === pid_1.DepartureFilter.ROUTE_HEADING_ONCE ||
|
|
42
|
-
this.options.filter === pid_1.DepartureFilter.ROUTE_HEADING_ONCE_FILL) {
|
|
43
|
-
finalDepartures = this.departures.reduce((acc, currentDeparture) => {
|
|
44
|
-
// only the first departure to respone for trips with same route_id
|
|
45
|
-
if (!acc.once.find((e) => e.route_id === currentDeparture.route_id &&
|
|
46
|
-
(currentDeparture.stop_headsign
|
|
47
|
-
? e.stop_headsign === currentDeparture.stop_headsign
|
|
48
|
-
: e.trip_headsign === currentDeparture.trip_headsign))) {
|
|
49
|
-
acc.once.push(currentDeparture);
|
|
50
|
-
}
|
|
51
|
-
else {
|
|
52
|
-
acc.fill.push(currentDeparture);
|
|
53
|
-
}
|
|
54
|
-
return acc;
|
|
55
|
-
}, { once: [], fill: [] });
|
|
56
|
-
}
|
|
57
|
-
if (this.options.filter === pid_1.DepartureFilter.ROUTE_ONCE_FILL ||
|
|
58
|
-
this.options.filter === pid_1.DepartureFilter.ROUTE_HEADING_ONCE_FILL) {
|
|
26
|
+
const finalDepartures = this.filterDepartures();
|
|
27
|
+
if (FilterHelper_1.FilterHelper.isFillFilterType(this.options.filter)) {
|
|
59
28
|
// return all once in limit and if still under limit fill it with others
|
|
60
29
|
this.departures = finalDepartures.once
|
|
61
30
|
.slice(0, this.options.total)
|
|
@@ -109,6 +78,30 @@ class PIDDeparturesModel {
|
|
|
109
78
|
this.departures = departures;
|
|
110
79
|
this.options = options;
|
|
111
80
|
}
|
|
81
|
+
filterDepartures() {
|
|
82
|
+
const filterCondition = PIDDeparturesModel.FilterConditionMap[this.options.filter];
|
|
83
|
+
return filterCondition ? this.filterByCondition(filterCondition) : { once: this.departures, fill: [] };
|
|
84
|
+
}
|
|
85
|
+
filterByCondition(conditionFunction) {
|
|
86
|
+
return this.departures.reduce((acc, currentDeparture) => {
|
|
87
|
+
if (conditionFunction(acc, currentDeparture)) {
|
|
88
|
+
acc.once.push(currentDeparture);
|
|
89
|
+
}
|
|
90
|
+
else {
|
|
91
|
+
acc.fill.push(currentDeparture);
|
|
92
|
+
}
|
|
93
|
+
return acc;
|
|
94
|
+
}, { once: [], fill: [] });
|
|
95
|
+
}
|
|
112
96
|
}
|
|
113
97
|
exports.default = PIDDeparturesModel;
|
|
98
|
+
PIDDeparturesModel.FilterConditionMap = {
|
|
99
|
+
routeOnce: FilterHelper_1.FilterHelper.routeOnceCondition,
|
|
100
|
+
routeOnceFill: FilterHelper_1.FilterHelper.routeOnceCondition,
|
|
101
|
+
routeHeadingOnce: FilterHelper_1.FilterHelper.routeOnceHeadingCondition,
|
|
102
|
+
routeHeadingOnceFill: FilterHelper_1.FilterHelper.routeOnceHeadingCondition,
|
|
103
|
+
routeHeadingOnceNoGap: FilterHelper_1.FilterHelper.routeOnceHeadingNoGapCondition,
|
|
104
|
+
routeHeadingOnceNoGapFill: FilterHelper_1.FilterHelper.routeOnceHeadingNoGapCondition,
|
|
105
|
+
none: undefined,
|
|
106
|
+
};
|
|
114
107
|
//# sourceMappingURL=PIDDepartureModel.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PIDDepartureModel.js","sourceRoot":"","sources":["../../../../../src/output-gateway/pid/models/helpers/PIDDepartureModel.ts"],"names":[],"mappings":";;;;;AAAA,+BAAuG;AACvG,8FAAwE;
|
|
1
|
+
{"version":3,"file":"PIDDepartureModel.js","sourceRoot":"","sources":["../../../../../src/output-gateway/pid/models/helpers/PIDDepartureModel.ts"],"names":[],"mappings":"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"}
|