(token: string)
| 229 | } |
| 230 | |
| 231 | private parseDate(token: string): Date | string | undefined { |
| 232 | const date = "\\d{4}-\\d{2}-\\d{2}" |
| 233 | const time = "\\d{2}:\\d{2}:\\d{2}(?:\\.\\d+)?" |
| 234 | if (new RegExp(`^${date}[Tt]${time}(?:[Zz]|[+-]\\d{2}:\\d{2})$`).test(token)) { |
| 235 | const value = new Date(token.replace("t", "T").replace("z", "Z")) |
| 236 | if (Number.isNaN(value.getTime())) { |
| 237 | this.fail(`Invalid date-time '${token}'`) |
| 238 | } |
| 239 | return value |
| 240 | } |
| 241 | if ( |
| 242 | new RegExp(`^${date}[Tt]${time}$`).test(token) || |
| 243 | new RegExp(`^${date}$`).test(token) || |
| 244 | new RegExp(`^${time}$`).test(token) |
| 245 | ) { |
| 246 | return token.replace("t", "T") |
| 247 | } |
| 248 | return undefined |
| 249 | } |
| 250 | |
| 251 | private parseNumber(token: string): number | undefined { |
| 252 | const normalized = token.replace(/_/g, "") |
no test coverage detected