is-svg
Version:
Check if a string or buffer is SVG
42 lines (32 loc) • 781 B
JavaScript
;
const parser = require('fast-xml-parser');
const isSvg = input => {
if (input === undefined || input === null) {
return false;
}
// TODO: Remove the `.replace` call when using `fast-xml-parser@4` which has fixed the bug.
input = input.toString().trim().replace(/\n/g, ' ');
if (input.length === 0) {
return false;
}
// Has to be `!==` as it can also return an object with error info.
if (parser.validate(input) !== true) {
return false;
}
let jsonObject;
try {
jsonObject = parser.parse(input);
} catch (_) {
return false;
}
if (!jsonObject) {
return false;
}
if (!('svg' in jsonObject)) {
return false;
}
return true;
};
module.exports = isSvg;
// TODO: Remove this for the next major release
module.exports.default = isSvg;