Phase 0/1 of ESBuild migration: Add ES exports to all utility modules while maintaining Alpine.js registration for template compatibility. Core utility modules now support both: - ES module imports for TypeScript→TypeScript dependencies - Alpine.js global namespace for template onclick handlers Modules updated: - api.ts: Export apiGet, apiPost, apiPut, apiDelete, apiPatch, and handlers - toast.ts: Export showToast function (Alpine namespace already present) - storage.ts: Export localStorage helpers (already had exports) - dom.ts: Export DOM manipulation helpers (already had exports) - events.ts: Export event delegation helpers - theme.ts: Export theme management functions - woodPaneling.ts: Export wood paneling functions Pattern: Each module now has dual exports - ES module exports for internal TS dependencies - Alpine.global() registration for template access - Removed direct window exports where Alpine registration exists This enables Phase 1 (converting internal window reads to imports) while maintaining template functionality through Alpine. Migration progress: Phase 0 complete, Phase 1 in progress Next: Convert 193+ internal window reads across consumer modules
68 lines
1.3 KiB
TypeScript
68 lines
1.3 KiB
TypeScript
function getToken(): string | null {
|
|
return localStorage.getItem("token");
|
|
}
|
|
|
|
function setToken(token: string): void {
|
|
localStorage.setItem("token", token);
|
|
}
|
|
|
|
function removeToken(): void {
|
|
localStorage.removeItem("token");
|
|
}
|
|
|
|
function getRefreshToken(): string | null {
|
|
return localStorage.getItem("refresh_token");
|
|
}
|
|
|
|
function setRefreshToken(token: string): void {
|
|
localStorage.setItem("refresh_token", token);
|
|
}
|
|
|
|
function removeRefreshToken(): void {
|
|
localStorage.removeItem("refresh_token");
|
|
}
|
|
|
|
function getTheme(): string {
|
|
return localStorage.getItem("theme") || "tokyo-night";
|
|
}
|
|
|
|
function setTheme(theme: string): void {
|
|
localStorage.setItem("theme", theme);
|
|
}
|
|
|
|
function getSelectedLibrary(): string | null {
|
|
return localStorage.getItem("selectedLibrary");
|
|
}
|
|
|
|
function setSelectedLibrary(libraryId: string): void {
|
|
localStorage.setItem("selectedLibrary", libraryId);
|
|
}
|
|
|
|
function getSelectedBook(): string | null {
|
|
return localStorage.getItem("selectedBook");
|
|
}
|
|
|
|
function setSelectedBook(bookId: string): void {
|
|
localStorage.setItem("selectedBook", bookId);
|
|
}
|
|
|
|
function clearAll(): void {
|
|
localStorage.clear();
|
|
}
|
|
|
|
export {
|
|
clearAll,
|
|
getRefreshToken,
|
|
getSelectedBook,
|
|
getSelectedLibrary,
|
|
getTheme,
|
|
getToken,
|
|
removeRefreshToken,
|
|
removeToken,
|
|
setRefreshToken,
|
|
setSelectedBook,
|
|
setSelectedLibrary,
|
|
setTheme,
|
|
setToken
|
|
};
|