Files
upload-platform/docs/gpt-sol-architecture-review-response.md
T

26 lines
1.8 KiB
Markdown

# Ответ GPT SOL по архитектуре
## 1. Архитектура
Архитектура верна. Лишнее сейчас: `layout.theme` как система тем и Custom Element. Достаточно CSS-переменных/класса темы.
## 2. Более простой вариант
`initFilePicker({ mount, ... })` плюс один ESM-бандл и CSS. IIFE добавлять только для интеграций без ES-модулей.
## 3. Custom Element
Сначала фабрика и бандл. Custom Element нужен только при подтверждённом declarative-use кейсе; иначе это второй API для сопровождения.
## 4. Риски
- `destroy()` обязан снимать listeners и очищать DOM/state.
- `onChange` должен возвращать копию массива, а не внутренний state.
- Нужно сохранять исходные `File`; ZIP-элементы ими не являются, поэтому нужен явный тип результата.
- Лимиты ZIP: размер, число файлов, суммарный распакованный размер, compression ratio, recursion depth.
- `fflate` внутри бандла исключает глобальную зависимость.
- CSS изолировать префиксом классов; Shadow DOM пока не нужен.
- Не полагаться на абсолютные URL; ассеты должны быть в бандле или URL задаётся интегратором.
- Проверить старые браузеры: ES target, `webkitdirectory`, Custom Element.
- Для managed Flask достаточно статической раздачи ESM/CSS с корректными MIME и cache/versioning.