mirror of
https://github.com/gromlab-ru/svg-sprites.git
synced 2026-07-22 04:40:17 +03:00
feat: перейти на изолированный контракт генерации
- добавлены независимые adapters для шести exact modes - runtime переведён на JavaScript с отдельными декларациями - generated output перенесён в .svg-sprite - удалены legacy pipeline и встроенный preview
This commit is contained in:
72
src/types.ts
72
src/types.ts
@@ -1,23 +1,8 @@
|
||||
import type { SpriteMode } from './targets/types.js'
|
||||
|
||||
/** Формат спрайта: stack или symbol. */
|
||||
export type SpriteFormat = 'stack' | 'symbol'
|
||||
|
||||
/** Описание одного спрайта в конфиге. */
|
||||
export type SpriteEntry = {
|
||||
/** Уникальное имя спрайта (используется как имя файла и в типах). */
|
||||
name: string
|
||||
/**
|
||||
* Источник SVG-файлов.
|
||||
* Строка — путь к папке с SVG-файлами.
|
||||
* Массив — пути к конкретным SVG-файлам.
|
||||
*/
|
||||
input: string | string[]
|
||||
/**
|
||||
* Формат спрайта.
|
||||
* По умолчанию: 'stack'.
|
||||
*/
|
||||
format?: SpriteFormat
|
||||
}
|
||||
|
||||
/** Параметры трансформации SVG. Все включены по умолчанию. */
|
||||
export type TransformOptions = {
|
||||
/**
|
||||
@@ -39,22 +24,33 @@ export type TransformOptions = {
|
||||
addTransition?: boolean
|
||||
}
|
||||
|
||||
/** Конфигурация генерации SVG-спрайтов. */
|
||||
export type SvgSpritesConfig = {
|
||||
/** Путь к папке для сгенерированных SVG-спрайтов. */
|
||||
output: string
|
||||
/**
|
||||
* Генерировать HTML-превью со всеми иконками.
|
||||
* По умолчанию: true.
|
||||
*/
|
||||
preview?: boolean
|
||||
/**
|
||||
* Настройки трансформации SVG.
|
||||
* По умолчанию: все трансформации включены.
|
||||
*/
|
||||
/** Единая конфигурация локального sprite-модуля. */
|
||||
export type SpriteConfig = {
|
||||
/** Режим можно определить в конфиге либо передать через CLI/API. */
|
||||
mode?: SpriteMode
|
||||
/** Логическое имя спрайта. По умолчанию выводится из каталога модуля. */
|
||||
name?: string
|
||||
/** Описание спрайта для generated types и manifest. */
|
||||
description?: string
|
||||
/** Папка с исходными SVG относительно корня модуля. По умолчанию: ./icons. */
|
||||
inputFolder?: string
|
||||
/** Дополнительные SVG-файлы относительно корня модуля. По умолчанию: []. */
|
||||
inputFiles?: string[]
|
||||
/** Настройки трансформации SVG. По умолчанию все включены. */
|
||||
transform?: TransformOptions
|
||||
/** Список спрайтов для генерации. */
|
||||
sprites: SpriteEntry[]
|
||||
/** Добавлять развёрнутое предупреждение в generated-файлы. По умолчанию: true. */
|
||||
generatedNotice?: boolean
|
||||
}
|
||||
|
||||
/** Полностью разрешённая конфигурация, готовая к генерации. */
|
||||
export type ResolvedSpriteConfig = {
|
||||
mode: SpriteMode
|
||||
name: string
|
||||
description?: string
|
||||
inputFolder: string | null
|
||||
inputFiles: string[]
|
||||
transform: Required<TransformOptions>
|
||||
generatedNotice: boolean
|
||||
}
|
||||
|
||||
/** Результат парсинга спрайта — данные для компиляции. */
|
||||
@@ -68,15 +64,3 @@ export type SpriteFolder = {
|
||||
/** Абсолютные пути к SVG-файлам. */
|
||||
files: string[]
|
||||
}
|
||||
|
||||
/** Результат компиляции одного спрайта. */
|
||||
export type SpriteResult = {
|
||||
/** Имя спрайта. */
|
||||
name: string
|
||||
/** Формат спрайта. */
|
||||
format: SpriteFormat
|
||||
/** Путь к сгенерированному SVG-спрайту. */
|
||||
spritePath: string
|
||||
/** Количество иконок в спрайте. */
|
||||
iconCount: number
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user