feat: release version 1.0.4

This commit is contained in:
2026-08-19 18:56:00 +09:00
parent bd9d5a6ba6
commit f910db8901
11 changed files with 506 additions and 105 deletions
+19 -2
View File
@@ -1,4 +1,4 @@
import type { CardListPreferences, CollectionCardState, UserData } from '$lib/models/user-data';
import type { CardListPreferences, CardListSortKey, CardSkillLevel, CollectionCardState, SortDirection, UserData } from '$lib/models/user-data';
import { createUserData } from '$lib/models/user-data';
export const USER_DATA_STORAGE_KEY = 'holodori:user-data:v1';
@@ -17,6 +17,20 @@ function finiteNumber(value: unknown, fallback = 0): number {
return typeof value === 'number' && Number.isFinite(value) ? value : fallback;
}
function cardListSortKey(value: unknown, fallback: CardListSortKey | null): CardListSortKey | null {
return value === 'coolTime' || value === 'probability' || value === 'duration' || value === 'effect'
? value
: fallback;
}
function sortDirection(value: unknown, fallback: SortDirection): SortDirection {
return value === 'asc' || value === 'desc' ? value : fallback;
}
function cardSkillLevel(value: unknown, fallback: CardSkillLevel): CardSkillLevel {
return value === 1 || value === 2 ? value : fallback;
}
function parseCollection(value: Record<string, unknown>): UserData['collection'] {
return Object.fromEntries(
Object.entries(value).flatMap(([cardId, state]) => {
@@ -79,7 +93,10 @@ export function parseUserData(text: string, fallbackPreferences: CardListPrefere
specialConditions: stringArray(preferences.specialConditions, fallbackPreferences.specialConditions),
activeProbabilities: stringArray(preferences.activeProbabilities, fallbackPreferences.activeProbabilities),
cardVariants: stringArray(preferences.cardVariants, fallbackPreferences.cardVariants),
generations: stringArray(preferences.generations, fallbackPreferences.generations)
generations: stringArray(preferences.generations, fallbackPreferences.generations),
sortKey: cardListSortKey(preferences.sortKey, fallbackPreferences.sortKey),
sortDirection: sortDirection(preferences.sortDirection, fallbackPreferences.sortDirection),
skillLevel: cardSkillLevel(preferences.skillLevel, fallbackPreferences.skillLevel)
}
};
}