mirror of
https://github.com/marcogll/passkit-generator.git
synced 2026-03-15 13:25:19 +00:00
Added support to relevantDate renaming to date
This commit is contained in:
@@ -1010,6 +1010,11 @@ export default class PKPass extends Bundle {
|
||||
* Allows setting a series of relevancy intervals or
|
||||
* relevancy entries for the pass.
|
||||
*
|
||||
* Please note that `RelevantDate[]` `relevantDate` property was renamed
|
||||
* in "date" since iOS 26. Since retro-compatibility is not ensured,
|
||||
* this methods takes `date`, and fallbacks to `relevantDate`, and use
|
||||
* the first value found for both properties.
|
||||
*
|
||||
* @param {Schemas.RelevantDate[] | null} relevancyEntries
|
||||
* @returns {void}
|
||||
*/
|
||||
@@ -1031,10 +1036,13 @@ export default class PKPass extends Bundle {
|
||||
Schemas.validate(Schemas.RelevantDate, entry);
|
||||
|
||||
if (isRelevantEntry(entry)) {
|
||||
const date = Utils.processDate(
|
||||
new Date(entry.date || entry.relevantDate),
|
||||
);
|
||||
|
||||
acc.push({
|
||||
relevantDate: Utils.processDate(
|
||||
new Date(entry.relevantDate),
|
||||
),
|
||||
relevantDate: date,
|
||||
date,
|
||||
});
|
||||
|
||||
return acc;
|
||||
@@ -1193,5 +1201,8 @@ function validateJSONBuffer(
|
||||
function isRelevantEntry(
|
||||
entry: Schemas.RelevantDate,
|
||||
): entry is Schemas.RelevancyEntry {
|
||||
return Object.prototype.hasOwnProperty.call(entry, "relevantDate");
|
||||
return (
|
||||
Object.prototype.hasOwnProperty.call(entry, "relevantDate") ||
|
||||
Object.prototype.hasOwnProperty.call(entry, "date")
|
||||
);
|
||||
}
|
||||
|
||||
@@ -45,9 +45,19 @@ export interface RelevancyInterval {
|
||||
endDate: string | Date;
|
||||
}
|
||||
|
||||
export interface RelevancyEntry {
|
||||
relevantDate: string | Date;
|
||||
/**
|
||||
* @iOSVersion 18 => "relevantDate"
|
||||
* @iOSVersion 26 => "date"
|
||||
*/
|
||||
export type RelevancyEntry =
|
||||
| {
|
||||
date: string | Date;
|
||||
relevantDate?: string | Date;
|
||||
}
|
||||
| {
|
||||
date?: string | Date;
|
||||
relevantDate: string | Date;
|
||||
};
|
||||
|
||||
/**
|
||||
* @iOSVersion 18
|
||||
@@ -73,6 +83,14 @@ export const RelevantDate = Joi.alternatives(
|
||||
).required(),
|
||||
}),
|
||||
Joi.object<RelevancyEntry>().keys({
|
||||
/**
|
||||
* Since iOS 26
|
||||
*/
|
||||
date: Joi.alternatives(Joi.string().isoDate(), Joi.date().iso()),
|
||||
/**
|
||||
* Since iOS 18, then was renamed in
|
||||
* 'date' in iOS 26 (what a breaking change)
|
||||
*/
|
||||
relevantDate: Joi.alternatives(
|
||||
Joi.string().isoDate(),
|
||||
Joi.date().iso(),
|
||||
|
||||
Reference in New Issue
Block a user