42 lines
1.8 KiB
JavaScript
42 lines
1.8 KiB
JavaScript
(function (factory) {
|
|
if (typeof module === "object" && typeof module.exports === "object") {
|
|
var v = factory(require, exports);
|
|
if (v !== undefined) module.exports = v;
|
|
}
|
|
else if (typeof define === "function" && define.amd) {
|
|
define(["require", "exports", "luxon", "../errors/expression-extension.error"], factory);
|
|
}
|
|
})(function (require, exports) {
|
|
"use strict";
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.convertToDateTime = void 0;
|
|
exports.checkIfValueDefinedOrThrow = checkIfValueDefinedOrThrow;
|
|
const luxon_1 = require("luxon");
|
|
const expression_extension_error_1 = require("../errors/expression-extension.error");
|
|
// Utility functions and type guards for expression extensions
|
|
const convertToDateTime = (value) => {
|
|
let converted;
|
|
if (typeof value === 'string') {
|
|
converted = luxon_1.DateTime.fromJSDate(new Date(value));
|
|
if (converted.invalidReason !== null) {
|
|
return;
|
|
}
|
|
}
|
|
else if (value instanceof Date) {
|
|
converted = luxon_1.DateTime.fromJSDate(value);
|
|
}
|
|
else if (luxon_1.DateTime.isDateTime(value)) {
|
|
converted = value;
|
|
}
|
|
return converted;
|
|
};
|
|
exports.convertToDateTime = convertToDateTime;
|
|
function checkIfValueDefinedOrThrow(value, functionName) {
|
|
if (value === undefined || value === null) {
|
|
throw new expression_extension_error_1.ExpressionExtensionError(`${functionName} can't be used on ${String(value)} value`, {
|
|
description: `To ignore this error, add a ? to the variable before this function, e.g. my_var?.${functionName}`,
|
|
});
|
|
}
|
|
}
|
|
});
|
|
//# sourceMappingURL=utils.js.map
|