1
0
mirror of https://github.com/svg/svgo.git synced 2025-07-29 20:21:14 +03:00

Refactor prefixIds (#1561)

Ref https://github.com/svg/svgo/issues/1499

- migrated to visitor plugin api
- covered with tsdoc
- made the plugin idempotent as requested a few times
  Now even manually running svgo a few times will not duplicate
  prefix in ids and classes
- run each plugin test twice to see which plugin need to run many times
  ideally idempotent plugins will allow to get rid of multipass option in v3
This commit is contained in:
Bogdan Chadkin
2021-09-13 16:16:38 +03:00
committed by GitHub
parent 23c7f48130
commit 3d22a5b23d
9 changed files with 286 additions and 318 deletions

View File

@ -71,7 +71,16 @@ export type Visitor = {
root?: VisitorRoot;
};
export type Plugin<Params> = (root: XastRoot, params: Params) => null | Visitor;
export type PluginInfo = {
path?: string;
multipassCount: number;
};
export type Plugin<Params> = (
root: XastRoot,
params: Params,
info: PluginInfo
) => null | Visitor;
export type Specificity = [number, number, number, number];