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

1.8 KiB

Ответ 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.