{"library":"path-data-parser","title":"SVG Path Data Parser","description":"path-data-parser is a lightweight and tree-shakable JavaScript library designed for parsing and manipulating SVG path data strings. It currently stands at version 0.1.0, indicating a stable but early-stage release, likely following an 'as-needed' or infrequent release cadence given its focused utility. Its key differentiators include its small footprint and a direct API offering four core functions: `parsePath` for converting SVG path strings into an array of segment objects, `serialize` for converting segment arrays back into path strings, `absolutize` for transforming relative path commands to absolute ones, and `normalize` for simplifying path segments to only M, L, C, and Z commands. This normalization is particularly useful for rendering SVG paths on non-SVG graphics platforms like Canvas, providing a consistent data structure for further processing.","language":"javascript","status":"active","last_verified":"Sun Apr 19","install":{"commands":["npm install path-data-parser"],"cli":null},"imports":["import { parsePath } from 'path-data-parser';","import { serialize } from 'path-data-parser';","import { absolutize } from 'path-data-parser';","import { normalize } from 'path-data-parser';"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"import { parsePath, serialize, absolutize, normalize } from 'path-data-parser';\n\n// Type definition for a segment, inferred from README\ntype Segment = { key: string; data: number[]; };\n\n// Example 1: Basic parsing\nconst pathString1 = 'M10 10 h 80 v 80 h -80 C Z';\nconst segments1: Segment[] = parsePath(pathString1);\nconsole.log('Parsed segments 1:', segments1);\n// Expected output: [{ key: 'M', data: [10, 10] }, { key: 'h', data: [80] }, ...]\n\n// Example 2: Absolutize and serialize\nconst pathString2 = 'M10 10 h 80 v 80 h -80 Z';\nconst segments2: Segment[] = parsePath(pathString2);\nconst absoluteSegments: Segment[] = absolutize(segments2);\nconst outputPath: string = serialize(absoluteSegments);\nconsole.log('Absolute and serialized path:', outputPath);\n// Expected output: M 10 10 H 90 V 90 H 10 Z\n\n// Example 3: Normalize absolute segments\nconst pathString3 = ' M 10 80 Q 52.5 10, 95 80 T 180 80';\nconst segments3: Segment[] = parsePath(pathString3);\nconst absoluteSegments3: Segment[] = absolutize(segments3);\nconst normalizedSegments: Segment[] = normalize(absoluteSegments3);\nconsole.log('Normalized path segments:', normalizedSegments);\n// Expected output: [{ key: 'M', data: [10, 80] }, { key: 'C', data: [38.33, 33.33, 66.67, 33.33, 95, 80] }, ...]\n\nconsole.log('All operations complete.');","lang":"typescript","description":"Demonstrates parsing, absolutizing, serializing, and normalizing SVG path data. It shows how to convert a path string to segments, modify them (e.g., to absolute coordinates), and convert them back to a string, or simplify them to M, L, C, Z commands for other graphics contexts.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":null}