UNPKG

@prismicio/client

Version:

The official JavaScript + TypeScript client library for Prismic

39 lines (37 loc) 1.38 kB
//#region src/helpers/asDate.ts /** * Converts a date or timestamp field to a JavaScript Date object. * * @example * * ```ts * const date = asDate(document.data.release_date) * // => Date object or null * ``` * * @param dateOrTimestampField - A date or timestamp field from Prismic. * * @returns A Date object, or `null` if the field is empty. * * @see Learn about date and timestamp fields: {@link https://prismic.io/docs/fields/date} */ const asDate = (dateOrTimestampField) => { if (!dateOrTimestampField) return null; if (dateOrTimestampField.length === 24) /** * Converts basic ISO 8601 to ECMAScript simplified ISO 8601 format for * browser compatibility issues * * From: YYYY-MM-DDTHH:mm:ssZ To: YYYY-MM-DDTHH:mm:ss.sssZ * * @see MDN documentation: {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/Date#timestamp_string} * @see ECMAScript 2020 language specification: {@link https://262.ecma-international.org/11.0/#sec-date-time-string-format} * @see Related forum issue: {@link https://community.prismic.io/t/prismics-date-api/2520} * @see Regex101 expression: {@link https://regex101.com/r/jxyETT/1} */ return new Date(dateOrTimestampField.replace(/(\+|-)(\d{2})(\d{2})$/, ".000$1$2:$3")); else return new Date(dateOrTimestampField); }; //#endregion exports.asDate = asDate; //# sourceMappingURL=asDate.cjs.map