Eulergraph
    Preparing search index...

    Eulergraph

    Форкаемся от ветки dev

    MR делаем в ветку dev

    npm run install_all
    

    dev библиотеки

    npm run engine_dev
    

    dev в брузере

    npm run editor_dev
    

    dev в electron

    npm run dev
    

    build win

    npm run build:win
    

    build mac

    npm run build:mac
    

    build linux

    npm run build:linux
    
    npm run doc
    

    unit

    npm run euler_test
    

    unit c UI (красота)

    npm run euler_test_ui
    

    e2e с красотой (запускается в режиме prevew, поэтому headless режима пока нет, для него нужен playwright или webdriverio)

    npm run euler_test_browser
    

    Для дебага конвертера в папке src\renderer\__mock__ должны лежать файлы, полученные в результате работы конвертера

    src\renderer\__mock__\vsdx_converted.json чтобы из конвертера получился такой файл его нужно запускать с третьим параметром "saveFull"

    • Отрисовывается всё в пойнтах. Для юзера выводится значение в мм.

    • Подписывайся на все события движка в EulergraphCanvas. Если увидел подписку не там - перенеси туда.

    • Данные, полученные из событий записывай в общий стор, который на прекрасном зустанде.

    • Воздействуй на движок напрямую. Нет метода - напиши. Сделай так, чтобы это изменение сгенерило нужный евент в движке если его нет.

    • Аккуратно с рендерами! Вызывай рендер только когда нужно. Основные рендеры - на изменение параметров вида - положение и масштаб (zoom), на редактирование элементов. Лучше вызов рендера делать внутри движка

    • Написал охуенную фичу? Напиши к ней доку! Исправил охуенную фичу? Исправь и доку!

    • Прежде чем писать в SkiaWasmService, прочти доку! Помни про управление памятью, там нет garbage collector!

    В общих чертах

    Поподробнее

    Дока src\renderer\src\engine\docs

    • После тебя код должен стать лучше.

    • Делай код чистым.

    • SVG не вставляем в компоненты. SVG должны жить в отдельных компонентах.

    • Общие переиспользуемые в нескольких местах компоненты выноси в common.

    • Стилизацию делай в теме и только частный случай - в самом компоненте

    • Делай компоненты верхнего уровня (фичи) по возможности независимыми. это обеспечивает модульность приложения.

    • Соблюдай хотя бы DRY. По возможности KISS и SOLID.

    • названия коммитов и переменных должны быть осмысленными.

    • export default - зло.

    • index.ts - только для экспорта/импорта. Компонент называется CamelCase.

    TODO