feat: release version 1.0.4
This commit is contained in:
@@ -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)
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user