New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details →
Socket
Book a DemoSign in
Socket

pathinator

Package Overview
Dependencies
Maintainers
1
Versions
12
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

pathinator

SVG path builder and minifier

latest
Source
npmnpm
Version
0.4.3
Version published
Maintainers
1
Created
Source

Pathinator

SVG path builder and minifier

npm build coverage deps size vulnerabilities license


Installation

npm install pathinator


optimizeSvgPaths(input, [settings]) ⇒ Promise.<(string|Document)>

Optimize all the paths in an svg file. Currently supports the d attribute in the path element and the points attribute in both polygon and polyline elements.

Returns: Promise.<(string|Document)> - Resolves with the optimized svg in the same format provided.

ParamTypeDescription
inputstring, DocumentCan be the string content of an svg or a DOM Document.
[settings]objectSee 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
    });


Path


new Path([path])

Parse, build, and optimize SVG path data.

ParamTypeDescription
[path]stringOptional path data to parse.

Example

import { Path } from 'pathinator';

const path = new Path()
    .move(50, 100)
    .line(100, 100)
    .line(200, 200)
    .close();


path.length ⇒ integer

The total number of commands in this path.


path.import(path) ⇒ object     🔗 Chainable

Import a path string. Removes any previous commands and create a new one.

Returns: object - Returns this.

ParamTypeDescription
pathstringA valid path data string or polygon string.


path.move(...args) ⇒ object     🔗 Chainable

Add a move command.

Returns: object - Returns this.

ParamTypeDescription
...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.


path.line(...args) ⇒ object     🔗 Chainable

Add a line command.

Returns: object - Returns this.

ParamTypeDescription
...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.


path.cubic(...args) ⇒ object     🔗 Chainable

Add a quadratic bezier curve command.

Returns: object - Returns this.

ParamTypeDescription
...args*Series of coordinates or a string of coordinates. If the final argument is true then command will be absolute coordinates.


path.quadratic(...args) ⇒ object     🔗 Chainable

Add a quadratic bezier curve command.

Returns: object - Returns this.

ParamTypeDescription
...args*Series of coordinates or a string of coordinates. If the final argument is true then command will be absolute coordinates.


path.arc(...args) ⇒ object     🔗 Chainable

Add an arc command.

Returns: object - Returns this.

ParamTypeDescription
...args*Series of coordinates / values or a string of coordinates / values. If the final argument is true then command will be absolute coordinates.


path.close([...args]) ⇒ object     🔗 Chainable

Add a close command.

Returns: object - Returns this.

ParamTypeDefaultDescription
[...args]booleanfalseIf the argument is true then command will be absolute coordinates.


path.update(index, values) ⇒ object     🔗 Chainable

Update command values at a specific index.

Returns: object - Returns this.

ParamTypeDescription
indexintegerIndex of the command to update.
valuesstring, Array.<number>New values for the command at this index.


path.eachPoint(callback) ⇒ object     🔗 Chainable

Calls callback for each point in the path.

Returns: object - Returns this.

ParamTypeDescription
callbackfunctionProvides three arguments: the Point, a boolean indicating if the point is a control point, and the command index.


path.transform([settings]) ⇒ object     🔗 Chainable

Transform all commands in path.

Returns: object - Returns this.

ParamTypeDefaultDescription
[settings]objectOptional settings object.
[settings.fractionDigits]integer3Round all numbers in path to a specified number of fraction digits.
[settings.scale]number, Point, Array, objectScale 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, objectTranslate 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: }.


path.export([settings]) ⇒ Promise.<string>

Export a string of the path. Transforms are only applied to the exported path.

ParamTypeDefaultDescription
[settings]objectOptional 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]booleanfalseRemove excess whitespace and unnecessary characters.
[settings.combine]booleantrueCombine consecutive commands that are redundant.
[settings.fractionDigits]integer3Round all numbers in path to a specified number of fraction digits.
[settings.scale]number, Point, Array, objectScale 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, objectTranslate 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]integerAdd newlines at logical breaks in the path to improve readability.
[settings.commandsOnNewLines]booleanfalseAdd a newline between each command.
[settings.toPolygon]booleanfalseFormat the string for use in a polygon element. Sets coordinates to 'absolute'.
[settings.async]booleanfalseProcess each command in a separate Promise.

Keywords

svg

FAQs

Package last updated on 20 Jun 2021

Did you know?

Socket

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.

Install

Related posts