
Security News
Attackers Are Hunting High-Impact Node.js Maintainers in a Coordinated Social Engineering Campaign
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.
pathinator
Advanced tools
SVG path builder and minifier
npm install pathinator
Promise.<(string|Document)>Optimize all the paths in an svg file. Currently supports the
dattribute in thepathelement and thepointsattribute in bothpolygonandpolylineelements.
Returns: Promise.<(string|Document)> - Resolves with the optimized svg in the same format provided.
| Param | Type | Description |
|---|---|---|
| input | string, Document | Can be the string content of an svg or a DOM Document. |
| [settings] | object | See Path.export. Settings are applied to each path found in the svg. |
Example
import { optimizeSvgPaths } from 'pathinator';
const svg = document.querySelector('svg');
optimizeSvgPaths(svg, { compress: true })
.then((result) => {
// do something
});
integerobjectobjectobjectobjectobjectobjectobjectobjectobjectobjectPromise.<string>Parse, build, and optimize SVG path data.
| Param | Type | Description |
|---|---|---|
| [path] | string | Optional path data to parse. |
Example
import { Path } from 'pathinator';
const path = new Path()
.move(50, 100)
.line(100, 100)
.line(200, 200)
.close();
integerThe total number of commands in this path.
object 🔗 ChainableImport a path string. Removes any previous commands and create a new one.
Returns: object - Returns this.
| Param | Type | Description |
|---|---|---|
| path | string | A valid path data string or polygon string. |
object 🔗 ChainableAdd a move command.
Returns: object - Returns this.
| Param | Type | Description |
|---|---|---|
| ...args | * | X and y coordinates or a string of X and y coordinates. If the final argument is true then command will be absolute coordinates. |
object 🔗 ChainableAdd a line command.
Returns: object - Returns this.
| Param | Type | Description |
|---|---|---|
| ...args | * | X and y coordinates or a string of X and y coordinates. If the final argument is true then command will be absolute coordinates. |
object 🔗 ChainableAdd a quadratic bezier curve command.
Returns: object - Returns this.
| Param | Type | Description |
|---|---|---|
| ...args | * | Series of coordinates or a string of coordinates. If the final argument is true then command will be absolute coordinates. |
object 🔗 ChainableAdd a quadratic bezier curve command.
Returns: object - Returns this.
| Param | Type | Description |
|---|---|---|
| ...args | * | Series of coordinates or a string of coordinates. If the final argument is true then command will be absolute coordinates. |
object 🔗 ChainableAdd an arc command.
Returns: object - Returns this.
| Param | Type | Description |
|---|---|---|
| ...args | * | Series of coordinates / values or a string of coordinates / values. If the final argument is true then command will be absolute coordinates. |
object 🔗 ChainableAdd a close command.
Returns: object - Returns this.
| Param | Type | Default | Description |
|---|---|---|---|
| [...args] | boolean | false | If the argument is true then command will be absolute coordinates. |
object 🔗 ChainableUpdate command values at a specific index.
Returns: object - Returns this.
| Param | Type | Description |
|---|---|---|
| index | integer | Index of the command to update. |
| values | string, Array.<number> | New values for the command at this index. |
object 🔗 ChainableCalls callback for each point in the path.
Returns: object - Returns this.
| Param | Type | Description |
|---|---|---|
| callback | function | Provides three arguments: the Point, a boolean indicating if the point is a control point, and the command index. |
object 🔗 ChainableTransform all commands in path.
Returns: object - Returns this.
| Param | Type | Default | Description |
|---|---|---|---|
| [settings] | object | Optional settings object. | |
| [settings.fractionDigits] | integer | 3 | Round all numbers in path to a specified number of fraction digits. |
| [settings.scale] | number, Point, Array, object | Scale the entire path. If a number is provided then x and y are scaled the same. To scale x and y differently provide a Point, an array as [x, y], or an object as { x:, y: }. | |
| [settings.translate] | number, Point, Array, object | Translate the entire string a specified distance. If a number is provided then x and y are translated the same. To translated x and y differently provide a Point, an array as [x, y], or an object as { x:, y: }. |
Promise.<string>Export a string of the path. Transforms are only applied to the exported path.
| Param | Type | Default | Description |
|---|---|---|---|
| [settings] | object | Optional settings object. | |
| [settings.coordinates] | string | "initial" | Can be 'absolute' to convert all coordinates to absolute, 'relative' to convert all coordinates to relative, 'auto' to convert coordinates to whichever is the fewest characters, 'initial' (default) to retain the coordinates set on each command. |
| [settings.compress] | boolean | false | Remove excess whitespace and unnecessary characters. |
| [settings.combine] | boolean | true | Combine consecutive commands that are redundant. |
| [settings.fractionDigits] | integer | 3 | Round all numbers in path to a specified number of fraction digits. |
| [settings.scale] | number, Point, Array, object | Scale the entire path. If a number is provided then x and y are scaled the same. To scale x and y differently provide a Point, an array as [x, y], or an object as { x:, y: }. | |
| [settings.translate] | number, Point, Array, object | Translate the entire string a specified distance. If a number is provided then x and y are translated the same. To translated x and y differently provide a Point, an array as [x, y], or an object as { x:, y: }. | |
| [settings.maxCharsPerLine] | integer | Add newlines at logical breaks in the path to improve readability. | |
| [settings.commandsOnNewLines] | boolean | false | Add a newline between each command. |
| [settings.toPolygon] | boolean | false | Format the string for use in a polygon element. Sets coordinates to 'absolute'. |
| [settings.async] | boolean | false | Process each command in a separate Promise. |
FAQs
SVG path builder and minifier
We found that pathinator demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.

Security News
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.

Security News
Node.js has paused its bug bounty program after funding ended, removing payouts for vulnerability reports but keeping its security process unchanged.