mirror of
https://github.com/Ku6epXBOCTuK/easy-png-tools.git
synced 2026-11-13 17:08:20 +00:00
refactor: separate registry schema file
This commit is contained in:
@@ -42,13 +42,15 @@ handleFiles, эффекты, workspace-разметка). Декомпозици
|
||||
`running` (`finally` сбрасывает только актуальный); `init()` инкрементом
|
||||
инвалидирует прогоны прошлого хоста.
|
||||
|
||||
### H3. `registry-schema.ts` — 723 строки, 45 экспортов, 5 ответственностей
|
||||
### H3. `registry-schema.ts` — 5 ответственностей — СДЕЛАНО (2026-10)
|
||||
|
||||
`web/src/lib/registry-schema.ts` смешивает: (а) типы 15 видов полей (:14-233),
|
||||
(б) builder-DSL `field.*` (:273-360), (в) layout engine `resolveLayoutGroups`
|
||||
(:380-406), (г) семантику значений `defaultSchemaParams`/`sanitizeSchemaParams`
|
||||
(:503-770), (д) aspect-lock геометрию `withAspectLock`/`clampSourceAwareMaxes`
|
||||
(:434-489). Каждая из (в)-(д) — отдельный модуль.
|
||||
Файл (769 строк) разрезан на директорию `web/src/lib/registry-schema/`:
|
||||
`specs.ts` (типы полей, `fieldSpecs`, `ToolSchema`), `field.ts` (builder DSL +
|
||||
`toolSchema`), `layout.ts` (`resolveLayoutGroups`), `aspect.ts` (`effectiveMax`,
|
||||
`clampSourceAwareMaxes`, `withAspectLock`), `values.ts` (дефолты и санитизация);
|
||||
`index.ts` — баррель, пути импортов не менялись. `docs/architecture.md` (разделы
|
||||
1, 4) обновлён. JSDoc в `specs.ts` сжат до однострочников — лимит плотности
|
||||
комментариев (`conventions/comment-format`, 15%).
|
||||
|
||||
## Med
|
||||
|
||||
|
||||
@@ -12,7 +12,10 @@ web/src/lib/
|
||||
registry/ # источник истины: инструменты и страницы
|
||||
registry/tools/ # Tool: реализации (id), без адресов и текстов
|
||||
registry/pages/ # Page: адрес, тексты, категория, список шагов
|
||||
registry-schema.ts # декларативная схема параметров + санитизация дефолтов
|
||||
registry-schema/ # декларативная схема параметров: specs (типы полей),
|
||||
# field (builder DSL), layout (группы), aspect (aspect-lock
|
||||
# и кэпы от source), values (дефолты и санитизация);
|
||||
# index.ts — баррель, импорты идут по `registry-schema`
|
||||
catalog.ts # группировка страниц и счётчики для /list-tools
|
||||
categories.ts # id/названия категорий
|
||||
tool-icons.ts # slug страницы → иконка
|
||||
@@ -170,7 +173,11 @@ registry/{tools,pages}/*.ts
|
||||
|
||||
## 4. Схема параметров
|
||||
|
||||
`registry-schema.ts` — единственное место, где описаны виды полей.
|
||||
`registry-schema/` — единственное место, где описаны виды полей. Модули:
|
||||
`specs.ts` (типы полей и `ToolSchema`), `field.ts` (фабрика `field.*` и
|
||||
`toolSchema`), `layout.ts` (`resolveLayoutGroups`), `aspect.ts` (`effectiveMax`,
|
||||
`clampSourceAwareMaxes`, `withAspectLock`), `values.ts` (`defaultSchemaParams`,
|
||||
`applySourceDefaults`, `sanitizeSchemaParams`).
|
||||
|
||||
- **Виды поля** (`fieldSpecs`): `number`, `slider`, `color`, `select`, `text`,
|
||||
`checkbox`, `dimension`, `color-pair`, `colors`, `offset`, `position9`,
|
||||
|
||||
Reference in New Issue
Block a user