@iconify/tools
Collection of functions for cleaning up and parsing SVG for Iconify project
Last updated 2 years ago by cyberalien .
MIT · Repository · Bugs · Original npm · Tarball · package.json
$ cnpm install @iconify/tools 
SYNC missed versions from official npm registry.

Iconify Tools

This library is a collection of tools for importing, exporting and processing SVG images.

Its main purpose is to convert icon sets and fonts to Iconify JSON collections, but it can be used for other purposes.

Installation

First install it by running this command:

npm install @iconify/tools --save

Example

The following code example does the following:

  • Imports set of SVG from directory.
  • Cleans up all icons.
  • Changes colors in all icons to currentColor.
  • Optimises icons.
  • Exports icons as IconifyJSON icon set.
import { promises as fs } from 'fs';
import { importDirectory } from '@iconify/tools/lib/import/directory';
import { cleanupSVG } from '@iconify/tools/lib/svg/cleanup';
import { runSVGO } from '@iconify/tools/lib/optimise/svgo';
import { parseColors, isEmptyColor } from '@iconify/tools/lib/colors/parse';

(async () => {
	// Import icons
	const iconSet = await importDirectory('svg/test', {
		prefix: 'test',
	});

	// Validate, clean up, fix palette and optimise
	await iconSet.forEach(async (name, type) => {
		if (type !== 'icon') {
			return;
		}

		const svg = iconSet.toSVG(name);
		if (!svg) {
			// Invalid icon
			iconSet.remove(name);
			return;
		}

		// Clean up and optimise icons
		try {
			cleanupSVG(svg);
			await parseColors(svg, {
				defaultColor: 'currentColor',
				callback: (attr, colorStr, color) => {
					return !color || isEmptyColor(color)
						? colorStr
						: 'currentColor';
				},
			});
			runSVGO(svg);
		} catch (err) {
			// Invalid icon
			console.error(`Error parsing ${name}:`, err);
			iconSet.remove(name);
			return;
		}

		// Update icon
		iconSet.fromSVG(name, svg);
	});

	// Export as IconifyJSON
	const exported = JSON.stringify(iconSet.export(), null, '\t') + '\n';

	// Save to file
	await fs.writeFile(`output/${iconSet.prefix}.json`, exported, 'utf8');
})();

Documentation

Full documentation is too big for simple README file. See Iconify Tools documentation for detailed documentation with code samples.

Synchronous functions

Most functions in example above are asynchronous.

If you need to import or parse icons synchronously, such as in config file of package that does not support async configuration files, most functions have synchronous copies, such as importDirectorySync().

License

Library is released with MIT license.

© 2021-PRESENT Vjacheslav Trushkin

Current Tags

  • 4.2.0                                ...           cjs (5 months ago)
  • 5.0.3                                ...           latest (2 months ago)
  • 1.3.18                                ...           legacy (5 years ago)
  • 5.0.0-beta.5                                ...           next (4 months ago)
  • 3.0.6                                ...           version-3 (2 years ago)

116 Versions

  • 5.0.3                                ...           2 months ago
  • 5.0.2                                ...           3 months ago
  • 5.0.1                                ...           4 months ago
  • 5.0.0                                ...           4 months ago
  • 5.0.0-beta.5                                ...           4 months ago
  • 5.0.0-beta.4                                ...           4 months ago
  • 5.0.0-beta.3                                ...           4 months ago
  • 5.0.0-beta.2                                ...           4 months ago
  • 5.0.0-beta.1                                ...           4 months ago
  • 4.2.0                                ...           5 months ago
  • 4.1.5                                ...           5 months ago
  • 4.1.4                                ...           6 months ago
  • 4.1.3                                ...           7 months ago
  • 4.1.2                                ...           a year ago
  • 4.1.1                                ...           a year ago
  • 4.0.7                                ...           2 years ago
  • 4.0.6                                ...           2 years ago
  • 4.0.5                                ...           2 years ago
  • 4.0.4                                ...           2 years ago
  • 4.0.3                                ...           2 years ago
  • 4.0.2                                ...           2 years ago
  • 4.0.1                                ...           2 years ago
  • 4.0.0                                ...           2 years ago
  • 4.0.0-beta.9                                ...           2 years ago
  • 4.0.0-beta.8                                ...           2 years ago
  • 3.0.7                                ...           2 years ago
  • 4.0.0-beta.7                                ...           2 years ago
  • 4.0.0-beta.5                                ...           2 years ago
  • 4.0.0-beta.4                                ...           2 years ago
  • 4.0.0-beta.3                                ...           2 years ago
  • 4.0.0-beta.2                                ...           2 years ago
  • 4.0.0-beta.1                                ...           2 years ago
  • 4.0.0-dev.1                                ...           2 years ago
  • 3.0.6                                ...           2 years ago
  • 3.0.5                                ...           3 years ago
  • 3.0.4                                ...           3 years ago
  • 3.0.3                                ...           3 years ago
  • 3.0.2                                ...           3 years ago
  • 3.0.1                                ...           3 years ago
  • 3.0.0                                ...           3 years ago
  • 3.0.0-beta.4                                ...           3 years ago
  • 3.0.0-beta.3                                ...           3 years ago
  • 3.0.0-beta.2                                ...           3 years ago
  • 3.0.0-beta.1                                ...           3 years ago
  • 2.2.6                                ...           3 years ago
  • 2.2.5                                ...           3 years ago
  • 2.2.4                                ...           3 years ago
  • 2.2.3                                ...           3 years ago
  • 2.2.2                                ...           3 years ago
  • 2.2.1                                ...           3 years ago
  • 2.2.0                                ...           3 years ago
  • 2.2.0-beta.4                                ...           3 years ago
  • 2.2.0-beta.3                                ...           3 years ago
  • 2.2.0-beta.2                                ...           3 years ago
  • 2.2.0-beta.1                                ...           3 years ago
  • 2.1.2                                ...           3 years ago
  • 2.1.1                                ...           3 years ago
  • 2.1.0                                ...           4 years ago
  • 2.1.0-beta.7                                ...           4 years ago
  • 2.1.0-beta.6                                ...           4 years ago
  • 2.1.0-beta.5                                ...           4 years ago
  • 2.1.0-beta.4                                ...           4 years ago
  • 2.1.0-beta.3                                ...           4 years ago
  • 2.1.0-beta.2                                ...           4 years ago
  • 2.1.0-beta.1                                ...           4 years ago
  • 2.0.18                                ...           4 years ago
  • 2.0.17                                ...           4 years ago
  • 2.0.16                                ...           4 years ago
  • 2.0.15                                ...           4 years ago
  • 2.0.14                                ...           4 years ago
  • 2.0.13                                ...           4 years ago
  • 2.0.12                                ...           4 years ago
  • 2.0.11                                ...           4 years ago
  • 2.0.10                                ...           4 years ago
  • 2.0.9                                ...           4 years ago
  • 2.0.8                                ...           4 years ago
  • 2.0.7                                ...           4 years ago
  • 2.0.6                                ...           4 years ago
  • 2.0.5                                ...           4 years ago
  • 2.0.4                                ...           4 years ago
  • 2.0.3                                ...           4 years ago
  • 2.0.2                                ...           4 years ago
  • 2.0.1                                ...           4 years ago
  • 2.0.0                                ...           4 years ago
  • 2.0.0-dev.4                                ...           4 years ago
  • 2.0.0-dev.3                                ...           4 years ago
  • 2.0.0-dev.2                                ...           4 years ago
  • 2.0.0-dev.1                                ...           4 years ago
  • 2.0.0-dev.0                                ...           4 years ago
  • 1.3.18                                ...           5 years ago
  • 1.3.17                                ...           5 years ago
  • 1.3.16                                ...           5 years ago
  • 1.3.15                                ...           6 years ago
  • 1.3.14                                ...           6 years ago
  • 1.3.13                                ...           6 years ago
  • 1.3.12                                ...           6 years ago
  • 1.3.11                                ...           6 years ago
  • 1.3.10                                ...           6 years ago
  • 1.3.9                                ...           7 years ago
  • 1.3.7                                ...           7 years ago
  • 1.3.6                                ...           7 years ago
  • 1.3.5                                ...           7 years ago
  • 1.3.4                                ...           7 years ago
  • 1.3.3                                ...           7 years ago
  • 1.3.2                                ...           7 years ago
  • 1.3.1                                ...           7 years ago
  • 1.3.0                                ...           7 years ago
  • 1.2.5                                ...           7 years ago
  • 1.2.4                                ...           7 years ago
  • 1.2.3                                ...           7 years ago
  • 1.2.2                                ...           7 years ago
  • 1.2.1                                ...           7 years ago
  • 1.2.0                                ...           7 years ago
  • 1.1.15                                ...           7 years ago
  • 1.1.14                                ...           7 years ago
  • 1.1.13                                ...           7 years ago
Maintainers (1)
Downloads
Today 0
This Week 0
This Month 3
Last Day 0
Last Week 3
Last Month 7
Dependencies (10)
Dev Dependencies (14)
Dependents (0)
None

Copyright 2013 - present © cnpmjs.org | Home |