Some checks failed
/ publish (push) Failing after 2m20s
Co-authored-by: Shelley <shelley@exe.dev>
26 lines
858 B
JavaScript
26 lines
858 B
JavaScript
import { integer } from './timer.mjs';
|
|
|
|
export const SETTINGS_KEY = 'countdown-settings';
|
|
|
|
export function serializeSettings(minutes, seconds) {
|
|
return JSON.stringify({
|
|
minutes: String(integer(minutes)),
|
|
seconds: String(integer(seconds)),
|
|
});
|
|
}
|
|
|
|
export function parseSettings(json) {
|
|
try {
|
|
const settings = JSON.parse(json);
|
|
if (typeof settings?.minutes === 'string' && /^\d+$/.test(settings.minutes) &&
|
|
typeof settings?.seconds === 'string' && /^\d+$/.test(settings.seconds)) {
|
|
return {
|
|
minutes: String(integer(settings.minutes)),
|
|
seconds: String(integer(settings.seconds)).padStart(2, '0'),
|
|
};
|
|
}
|
|
} catch {
|
|
// Missing or invalid storage is equivalent to a fresh countdown.
|
|
}
|
|
return { minutes: '0', seconds: '00' };
|
|
}
|