UNPKG

@dgac/nmb2b-client

Version:

EUROCONTROL Network Manager B2B SOAP client

1 lines 5.24 kB
{"version":3,"file":"types.mjs","names":["timeFormats.timeFormat","timeFormats.dateFormat","timeFormats.timeFormatWithSeconds"],"sources":["../../../src/utils/transformers/types.ts"],"sourcesContent":["import { UTCDate } from '@date-fns/utc';\nimport { format } from 'date-fns';\nimport * as timeFormats from '../timeFormats.js';\n\nconst outputBase = {\n integer: (text: string) => {\n return parseInt(text, 10);\n },\n /**\n *\n * Parse a NMB2B date/datetime.\n *\n * All datetimes are assumed to be UTC.\n *\n * Per NM B2B documentation, we only need to support these formats:\n * - DateTimeMinute: YYYY-MM-DD hh:mm\n * - DateTimeSecond: YYYY-MM-DD hh:mm:ss\n * - DateYearMonthDay: YYYY-MM-DD\n *\n * All dates are\n * @param text NM B2B Date string\n * @returns Parsed Date instance\n */\n date: (text: string) => {\n // eslint-disable-next-line prefer-const\n let [date, time] = text.split(' ');\n\n if (date === undefined || time === undefined) {\n return new Date(text);\n }\n\n if (time.length === 5) {\n time += ':00';\n }\n\n return new Date(`${date}T${time}Z`);\n },\n};\n\ninterface SerDe {\n [key: string]: {\n input: null | ((input: never) => unknown);\n output: null | ((input: never) => unknown);\n };\n}\n\nexport const types = {\n FlightLevel_DataType: {\n input: null,\n output: outputBase.integer,\n },\n DurationHourMinute: {\n input: (d: number): string => {\n const totalMinutes = Math.floor(d / 60);\n const hours = Math.floor(totalMinutes / 60);\n const minutes = totalMinutes % 60;\n return (\n hours.toFixed(0).padStart(2, '0') + minutes.toFixed(0).padStart(2, '0')\n );\n },\n output: (s: string): number => {\n const hours = parseInt(s.slice(0, 2), 10);\n const minutes = parseInt(s.slice(2), 10);\n\n return 60 * (60 * hours + minutes);\n },\n },\n DurationHourMinuteSecond: {\n input: (d: number): string => {\n const totalMinutes = Math.floor(d / 60);\n const hours = Math.floor(totalMinutes / 60);\n const minutes = totalMinutes % 60;\n const seconds = d % 60;\n\n return (\n hours.toFixed(0).padStart(2, '0') +\n minutes.toFixed(0).padStart(2, '0') +\n seconds.toFixed(0).padStart(2, '0')\n );\n },\n output: (s: string): number => {\n const hours = parseInt(s.slice(0, 2), 10);\n const minutes = parseInt(s.slice(2, 4), 10);\n const seconds = parseInt(s.slice(4), 10);\n\n return 3600 * hours + 60 * minutes + seconds;\n },\n },\n DurationMinute: {\n input: (d: number): number => Math.floor(d / 60),\n output: (d: number): number => 60 * d,\n },\n CountsValue: {\n input: null,\n output: outputBase.integer,\n },\n DateTimeMinute: {\n input: (d: Date): string => format(new UTCDate(d), timeFormats.timeFormat),\n output: outputBase.date,\n },\n DateYearMonthDay: {\n input: (d: Date): string => format(new UTCDate(d), timeFormats.dateFormat),\n output: outputBase.date,\n },\n DateTimeSecond: {\n input: (d: Date): string =>\n format(new UTCDate(d), timeFormats.timeFormatWithSeconds),\n output: outputBase.date,\n },\n DistanceNM: {\n input: null,\n output: outputBase.integer,\n },\n DistanceM: {\n input: null,\n output: outputBase.integer,\n },\n Bearing: {\n input: null,\n output: outputBase.integer,\n },\n OTMVThreshold: {\n input: null,\n output: outputBase.integer,\n },\n} satisfies SerDe;\n"],"mappings":";;;;;AAIA,MAAM,aAAa;CACjB,UAAU,SAAiB;AACzB,SAAO,SAAS,MAAM,GAAG;;CAiB3B,OAAO,SAAiB;EAEtB,IAAI,CAAC,MAAM,QAAQ,KAAK,MAAM,IAAI;AAElC,MAAI,SAAS,UAAa,SAAS,OACjC,QAAO,IAAI,KAAK,KAAK;AAGvB,MAAI,KAAK,WAAW,EAClB,SAAQ;AAGV,yBAAO,IAAI,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG;;CAEtC;AASD,MAAa,QAAQ;CACnB,sBAAsB;EACpB,OAAO;EACP,QAAQ,WAAW;EACpB;CACD,oBAAoB;EAClB,QAAQ,MAAsB;GAC5B,MAAM,eAAe,KAAK,MAAM,IAAI,GAAG;GACvC,MAAM,QAAQ,KAAK,MAAM,eAAe,GAAG;GAC3C,MAAM,UAAU,eAAe;AAC/B,UACE,MAAM,QAAQ,EAAE,CAAC,SAAS,GAAG,IAAI,GAAG,QAAQ,QAAQ,EAAE,CAAC,SAAS,GAAG,IAAI;;EAG3E,SAAS,MAAsB;GAC7B,MAAM,QAAQ,SAAS,EAAE,MAAM,GAAG,EAAE,EAAE,GAAG;GACzC,MAAM,UAAU,SAAS,EAAE,MAAM,EAAE,EAAE,GAAG;AAExC,UAAO,MAAM,KAAK,QAAQ;;EAE7B;CACD,0BAA0B;EACxB,QAAQ,MAAsB;GAC5B,MAAM,eAAe,KAAK,MAAM,IAAI,GAAG;GACvC,MAAM,QAAQ,KAAK,MAAM,eAAe,GAAG;GAC3C,MAAM,UAAU,eAAe;GAC/B,MAAM,UAAU,IAAI;AAEpB,UACE,MAAM,QAAQ,EAAE,CAAC,SAAS,GAAG,IAAI,GACjC,QAAQ,QAAQ,EAAE,CAAC,SAAS,GAAG,IAAI,GACnC,QAAQ,QAAQ,EAAE,CAAC,SAAS,GAAG,IAAI;;EAGvC,SAAS,MAAsB;GAC7B,MAAM,QAAQ,SAAS,EAAE,MAAM,GAAG,EAAE,EAAE,GAAG;GACzC,MAAM,UAAU,SAAS,EAAE,MAAM,GAAG,EAAE,EAAE,GAAG;GAC3C,MAAM,UAAU,SAAS,EAAE,MAAM,EAAE,EAAE,GAAG;AAExC,UAAO,OAAO,QAAQ,KAAK,UAAU;;EAExC;CACD,gBAAgB;EACd,QAAQ,MAAsB,KAAK,MAAM,IAAI,GAAG;EAChD,SAAS,MAAsB,KAAK;EACrC;CACD,aAAa;EACX,OAAO;EACP,QAAQ,WAAW;EACpB;CACD,gBAAgB;EACd,QAAQ,MAAoB,OAAO,IAAI,QAAQ,EAAE,EAAEA,WAAuB;EAC1E,QAAQ,WAAW;EACpB;CACD,kBAAkB;EAChB,QAAQ,MAAoB,OAAO,IAAI,QAAQ,EAAE,EAAEC,WAAuB;EAC1E,QAAQ,WAAW;EACpB;CACD,gBAAgB;EACd,QAAQ,MACN,OAAO,IAAI,QAAQ,EAAE,EAAEC,sBAAkC;EAC3D,QAAQ,WAAW;EACpB;CACD,YAAY;EACV,OAAO;EACP,QAAQ,WAAW;EACpB;CACD,WAAW;EACT,OAAO;EACP,QAAQ,WAAW;EACpB;CACD,SAAS;EACP,OAAO;EACP,QAAQ,WAAW;EACpB;CACD,eAAe;EACb,OAAO;EACP,QAAQ,WAAW;EACpB;CACF"}