Security News
Node.js EOL Versions CVE Dubbed the "Worst CVE of the Year" by Security Experts
Critics call the Node.js EOL CVE a misuse of the system, sparking debate over CVE standards and the growing noise in vulnerability databases.
convert-svg-core
Advanced tools
Supports converting SVG into another format using headless Chromium
The core Node.js package for converting SVG into other formats using headless Chromium that contains the shared logic for all converters. This package is not intended to be used directly to convert SVGs and, instead, provides core support for SVG conversion.
If you are looking to install an out-of-the-box SVG converter, check out our converter packages below:
https://github.com/neocotic/convert-svg
Alternatively, if you know what you're doing, you can install using npm:
$ npm install --save convert-svg-core
You'll need to have at least Node.js 12.20.0 or newer.
If you're looking to create a converter for a new format, we'd urge you to consider contributing to this framework so that it can be easily integrated and maintained. Read the Contributors section for information on how you can contribute.
In order to create a new SVG converter that uses convert-svg-core
, you'll need to create a new subdirectory for your
package under the packages directory. Try to follow the
convert-svg-to-<FORMAT>
naming convention for the converter package name.
Take a look at the other packages in this directory to set up the new package directory. They are all very similar, by design, as you should just need to provide the minimal amount of information required to support your intended output format.
The most important thing that's needed is a implementation of
convert-svg-core/src/Provider.
This is an abstract class and contains many methods that must be implemented. Read the JSDoc for these methods to
understand what's needed. If your intended output format requires additional configuration, make the necessary changes
to convert-svg-core
, while ensuring that reuse and other converters are kept at the front of your mind.
With an implementation of Provider
for your intended output format, you can now expose an API
and CLI
for it.
Create a file for your package's main module (commonly src/index.js
) to contain something like the following:
const { API } = require('convert-svg-core');
const MyFormatProvider = require('./MyFormatProvider');
module.exports = new API(new MyFormatProvider());
Configure this in your package.json
file and your API is ready!
Create a file for your CLI (commonly bin/<PACKAGE-NAME>
) to contain something like the following:
#!/usr/bin/env node
const { CLI } = require('convert-svg-core');
const MyFormatProvider = require('../src/MyFormatProvider');
(async() => {
const cli = new CLI(new MyFormatProvider());
try {
await cli.parse(process.argv);
} catch (e) {
cli.error(`<PACKAGE-NAME> failed: ${e.stack}`);
process.exit(1);
}
})();
Make sure that your file is executable. For example;
$ chmod a+x bin/<PACKAGE-NAME>
Configure this in your package.json
file and your CLI is ready!
Testing your SVG converter actually works is just as important as implementing it. Since convert-svg-core
contains a
lot of the conversion logic, a
convert-svg-test-helper package is
available to make testing implementations even easier. Again, take a look at the tests for existing SVG converters under
the packages directory for examples.
If you have any problems with this package or would like to see changes currently in development you can do so here.
If you want to contribute, you're a legend! Information on how you can do so can be found in CONTRIBUTING.md. We want your suggestions and pull requests!
A list of all contributors can be found in AUTHORS.md.
Copyright © 2022 neocotic
See LICENSE.md for more information on our MIT license.
FAQs
Supports converting SVG into another format using headless Chromium
The npm package convert-svg-core receives a total of 9,113 weekly downloads. As such, convert-svg-core popularity was classified as popular.
We found that convert-svg-core 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
Critics call the Node.js EOL CVE a misuse of the system, sparking debate over CVE standards and the growing noise in vulnerability databases.
Security News
cURL and Go security teams are publicly rejecting CVSS as flawed for assessing vulnerabilities and are calling for more accurate, context-aware approaches.
Security News
Bun 1.2 enhances its JavaScript runtime with 90% Node.js compatibility, built-in S3 and Postgres support, HTML Imports, and faster, cloud-first performance.