UNPKG

@dgac/nmb2b-client

Version:

EUROCONTROL Network Manager B2B SOAP client

90 lines (88 loc) 2.33 kB
import { dateFormat, timeFormat, timeFormatWithSeconds } from "../timeFormats.mjs"; import { UTCDate } from "@date-fns/utc"; import { format } from "date-fns"; //#region src/utils/transformers/types.ts const outputBase = { integer: (text) => { return parseInt(text, 10); }, date: (text) => { let [date, time] = text.split(" "); if (date === void 0 || time === void 0) return new Date(text); if (time.length === 5) time += ":00"; return /* @__PURE__ */ new Date(`${date}T${time}Z`); } }; const types = { FlightLevel_DataType: { input: null, output: outputBase.integer }, DurationHourMinute: { input: (d) => { const totalMinutes = Math.floor(d / 60); const hours = Math.floor(totalMinutes / 60); const minutes = totalMinutes % 60; return hours.toFixed(0).padStart(2, "0") + minutes.toFixed(0).padStart(2, "0"); }, output: (s) => { const hours = parseInt(s.slice(0, 2), 10); const minutes = parseInt(s.slice(2), 10); return 60 * (60 * hours + minutes); } }, DurationHourMinuteSecond: { input: (d) => { const totalMinutes = Math.floor(d / 60); const hours = Math.floor(totalMinutes / 60); const minutes = totalMinutes % 60; const seconds = d % 60; return hours.toFixed(0).padStart(2, "0") + minutes.toFixed(0).padStart(2, "0") + seconds.toFixed(0).padStart(2, "0"); }, output: (s) => { const hours = parseInt(s.slice(0, 2), 10); const minutes = parseInt(s.slice(2, 4), 10); const seconds = parseInt(s.slice(4), 10); return 3600 * hours + 60 * minutes + seconds; } }, DurationMinute: { input: (d) => Math.floor(d / 60), output: (d) => 60 * d }, CountsValue: { input: null, output: outputBase.integer }, DateTimeMinute: { input: (d) => format(new UTCDate(d), timeFormat), output: outputBase.date }, DateYearMonthDay: { input: (d) => format(new UTCDate(d), dateFormat), output: outputBase.date }, DateTimeSecond: { input: (d) => format(new UTCDate(d), timeFormatWithSeconds), output: outputBase.date }, DistanceNM: { input: null, output: outputBase.integer }, DistanceM: { input: null, output: outputBase.integer }, Bearing: { input: null, output: outputBase.integer }, OTMVThreshold: { input: null, output: outputBase.integer } }; //#endregion export { types }; //# sourceMappingURL=types.mjs.map