@dgac/nmb2b-client
Version:
EUROCONTROL Network Manager B2B SOAP client
90 lines (88 loc) • 2.33 kB
JavaScript
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