What is is-svg?
The is-svg npm package is used to check if a given string or buffer is an SVG (Scalable Vector Graphics) image. It's particularly useful in scenarios where you need to validate input files or data to ensure they are SVGs before processing them further. This can help in avoiding errors or security issues when working with image processing or rendering functionalities.
What are is-svg's main functionalities?
Check if a string is SVG
This feature allows you to check if a string is valid SVG. It's useful when you have SVG data as a string and need to verify its validity before using it.
"const isSvg = require('is-svg');\n\nconst svgString = '<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 100 100\"><circle cx=\"50\" cy=\"50\" r=\"40\"/></svg>';\nconsole.log(isSvg(svgString)); // true"
Check if a Buffer is SVG
This feature enables you to check if a Buffer (for example, read from a file) contains SVG data. It's particularly useful for file validation in upload forms or file processing systems.
"const isSvg = require('is-svg');\nconst fs = require('fs');\n\nconst svgBuffer = fs.readFileSync('image.svg');\nconsole.log(isSvg(svgBuffer)); // true or false based on the file content"
Other packages similar to is-svg
image-type
The image-type package can identify the type of an image by examining its buffer. It supports various image formats, including SVG. Compared to is-svg, image-type offers broader functionality for multiple image formats but might be overkill if you only need to validate SVGs.
file-type
Similar to image-type, file-type goes beyond images and can determine the type of many different files, including images, videos, fonts, and more. It's more comprehensive than is-svg, which is focused solely on SVG validation.
is-svg
Check if a string or buffer is SVG
Install
$ npm install is-svg
Usage
const isSvg = require('is-svg');
isSvg('<svg xmlns="http://www.w3.org/2000/svg"><path fill="#00CD9F"/></svg>');
Edge cases
This module performs a quick-and-dirty check. It's fast, but in certain cases it will give incorrect results.
- Returns
true
for an SVG-like string that isn't well-formed or valid: <svg><div></svg>
If you want to make certain that your SVG is valid, try parsing it with libxmljs.
License
MIT © Sindre Sorhus