atsid/generator-ats-node-webapp

View on GitHub
generators/server-full/templates/server/initialization/sections/body_parsing/parse_iso_8601_date.js

Summary

Maintainability
A
25 mins
Test Coverage
const regexIso8601 = /^(\d{4}|\+\d{6})(?:-(\d{2})(?:-(\d{2})(?:T(\d{2}):(\d{2}):(\d{2})\.(\d{1,})(Z|([\-+])(\d{2}):(\d{2}))?)?)?)?$/;

module.exports = (value) => {
  if (typeof value === 'string') {
    const match = value.match(regexIso8601);
    if (match) {
      const milliseconds = Date.parse(match[0]);
      if (!isNaN(milliseconds)) {
        return new Date(milliseconds);
      }
    }
  }
  return value;
};