UNPKG

@enonic/js-utils

Version:
38 lines (34 loc) 1.02 kB
// value/isStringLiteral.ts var isStringLiteral = (value) => typeof value === "string"; // value/isStringObject.ts var isStringObject = (value) => value instanceof String; // value/isString.ts var isString = (value) => isStringLiteral(value) || isStringObject(value); // value/isLocalDateTimeString.ts var REGEXP_DATE = /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}(:\d{2}(\.\d{0,9})?)?$/; function isLocalDateTimeString(v) { if (!isString(v)) { return false; } const matches = v.match(REGEXP_DATE); if (matches) { const localDateTimeStringToParse = `${matches[0].substring(0, 19)}Z`; try { const d = new Date(Date.parse(localDateTimeStringToParse)); let inputTrimmed = v.substring(0, 19); if (inputTrimmed.length === 16) { inputTrimmed += ":00"; } const parsedTrimmed = d.toJSON().substring(0, 19); if (inputTrimmed === parsedTrimmed) { return true; } return false; } catch (e) { } } return false; } export { isLocalDateTimeString };