No description
  • TypeScript 89.5%
  • CSS 9.8%
  • JavaScript 0.6%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
tyange 8d7849db24
All checks were successful
Deploy gotolib to AWS (Nginx) / deploy (push) Successful in 8m38s
'한국문학' 탭: 2020~올해를 한꺼번에 긁는 대신 연도 칩으로 한 해씩 고른다
- 총 권수 표시 자리에 연도 칩(.seg 재사용, 2020~올해, 최신 연도부터)을 두고 눌러서 전환한다.
  고른 해(17개 출판사)만 모으므로 작업량이 최대 1400여 건 → 17건으로 줄어든다.
- useKoreanNovels: 탭을 열면 이미 들렀던 모든 해의 캐시를 네트워크 없이 먼저 불러와 칩에 권수를
  보여주고, 지금 고른 해만 부족분을 긁는다. 연도를 바꾸면 이전 해를 긁던 워커는 멈춘다(토큰으로 구분).
  '새로고침'도 전체가 아니라 지금 고른 해만 다시 긁는다(db.clearNovelCacheForYear).
- 쪽 번호는 연도를 바꾸면 1쪽으로 되돌린다.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-11-05 11:09:23 +09:00
.claude 알라딘 보관함 가져오기 및 도서 목록 표시 구현 2026-07-24 10:00:33 +09:00
.forgejo/workflows 패스키 로그인과 기기 간 동기화를 추가한다 2026-10-01 23:13:24 +09:00
codemod/rules Link을 @solidjs/router의 A로 바꾸는 코드모드 + params는 href에 손으로 끼워 넣는다 2026-09-01 18:17:08 +09:00
public 찜한 책이 소장되면 알려주는 웹 푸시 알림을 켜고 끌 수 있다 2026-10-11 08:43:48 +09:00
scripts 계기판의 사각지대 넷을 막는다: props 구조분해, 다중행, 객체 키, 경로 부분일치 2026-09-02 10:07:08 +09:00
src '한국문학' 탭: 2020~올해를 한꺼번에 긁는 대신 연도 칩으로 한 해씩 고른다 2026-11-05 11:09:23 +09:00
tests '한국문학' 탭: 2020~올해를 한꺼번에 긁는 대신 연도 칩으로 한 해씩 고른다 2026-11-05 11:09:23 +09:00
.gitignore 도서관 정보나루 API 연동: 소장 도서관·대출 여부 조회 2026-07-24 10:20:39 +09:00
budget.config.json 계기판의 사각지대 넷을 막는다: props 구조분해, 다중행, 객체 키, 경로 부분일치 2026-09-02 10:07:08 +09:00
budget.txt 계기판의 사각지대 넷을 막는다: props 구조분해, 다중행, 객체 키, 경로 부분일치 2026-09-02 10:07:08 +09:00
bun.lock Kobalte 도입: 토스트, 확인 다이얼로그(confirm 대체), InfoTip을 Popover로 교체한다 2026-10-07 16:00:12 +09:00
eslint.config.js 린트를 eslint-plugin-solid로 갈아끼운다: React 플러그인 제거 후 lint가 아예 못 돌았다 2026-09-02 10:12:01 +09:00
index.html 알라딘 보관함 가져오기 및 도서 목록 표시 구현 2026-07-24 10:00:33 +09:00
package.json Kobalte 도입: 토스트, 확인 다이얼로그(confirm 대체), InfoTip을 Popover로 교체한다 2026-10-07 16:00:12 +09:00
pwa-assets.config.ts 알라딘 보관함 가져오기 및 도서 목록 표시 구현 2026-07-24 10:00:33 +09:00
README.md 알라딘 보관함 가져오기 및 도서 목록 표시 구현 2026-07-24 10:00:33 +09:00
sgconfig.yml className을 class로 바꾸는 코드모드 도입 + 마이그레이션 예산 계기판 2026-09-01 17:54:57 +09:00
tsconfig.app.json 빌드를 Solid로 돌린다: vite-plugin-solid, jsxImportSource, react 의존 제거 2026-09-01 18:17:13 +09:00
tsconfig.json 알라딘 보관함 가져오기 및 도서 목록 표시 구현 2026-07-24 10:00:33 +09:00
tsconfig.node.json 패스키 로그인과 기기 간 동기화를 추가한다 2026-10-01 23:13:24 +09:00
vite.config.ts 찜한 책이 소장되면 알려주는 웹 푸시 알림을 켜고 끌 수 있다 2026-10-11 08:43:48 +09:00

React + TypeScript + Vite

This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules.

Currently, two official plugins are available:

React Compiler

The React Compiler is not enabled on this template because of its impact on dev & build performances. To add it, see this documentation.

Expanding the ESLint configuration

If you are developing a production application, we recommend updating the configuration to enable type-aware lint rules:

export default defineConfig([
  globalIgnores(['dist']),
  {
    files: ['**/*.{ts,tsx}'],
    extends: [
      // Other configs...

      // Remove tseslint.configs.recommended and replace with this
      tseslint.configs.recommendedTypeChecked,
      // Alternatively, use this for stricter rules
      tseslint.configs.strictTypeChecked,
      // Optionally, add this for stylistic rules
      tseslint.configs.stylisticTypeChecked,

      // Other configs...
    ],
    languageOptions: {
      parserOptions: {
        project: ['./tsconfig.node.json', './tsconfig.app.json'],
        tsconfigRootDir: import.meta.dirname,
      },
      // other options...
    },
  },
])

You can also install eslint-plugin-react-x and eslint-plugin-react-dom for React-specific lint rules:

// eslint.config.js
import reactX from 'eslint-plugin-react-x'
import reactDom from 'eslint-plugin-react-dom'

export default defineConfig([
  globalIgnores(['dist']),
  {
    files: ['**/*.{ts,tsx}'],
    extends: [
      // Other configs...
      // Enable lint rules for React
      reactX.configs['recommended-typescript'],
      // Enable lint rules for React DOM
      reactDom.configs.recommended,
    ],
    languageOptions: {
      parserOptions: {
        project: ['./tsconfig.node.json', './tsconfig.app.json'],
        tsconfigRootDir: import.meta.dirname,
      },
      // other options...
    },
  },
])