https://github.com/steven-roberts/chrome-manifest-iconify
Takes a master icon and automatically generates icon set for your Chrome extension by parsing the v2 manifest
https://github.com/steven-roberts/chrome-manifest-iconify
chrome-extension icons javascript manifest
Last synced: 5 months ago
JSON representation
Takes a master icon and automatically generates icon set for your Chrome extension by parsing the v2 manifest
- Host: GitHub
- URL: https://github.com/steven-roberts/chrome-manifest-iconify
- Owner: Steven-Roberts
- License: mit
- Created: 2016-11-04T01:03:37.000Z (almost 9 years ago)
- Default Branch: master
- Last Pushed: 2023-01-06T16:47:31.000Z (almost 3 years ago)
- Last Synced: 2024-10-12T21:12:02.499Z (12 months ago)
- Topics: chrome-extension, icons, javascript, manifest
- Language: JavaScript
- Homepage: https://www.npmjs.com/package/chrome-manifest-iconify
- Size: 884 KB
- Stars: 6
- Watchers: 2
- Forks: 3
- Open Issues: 11
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# chrome-manifest-iconify
[](https://www.npmjs.com/package/chrome-manifest-iconify)
[](https://www.npmjs.com/package/chrome-manifest-iconify)
[](https://travis-ci.org/Steven-Roberts/chrome-manifest-iconify)
[](https://coveralls.io/github/Steven-Roberts/chrome-manifest-iconify)
[](https://david-dm.org/Steven-Roberts/chrome-manifest-iconify)
[](https://david-dm.org/Steven-Roberts/chrome-manifest-iconify?type=dev)When creating a Chrome extension, you need to provide a set of icons for context menus, browser actions, page actions, and the Chrome Web Store. Usually, these are just resized versions of the same image. The goal of chrome-manifest-iconify is to intelligently handle the tedious process of generated all these resized clones. All you need to do is provide it a master icon and [v2 manifest](https://developer.chrome.com/extensions/manifest) file. It will parse the manifest to determine the sizes, names, types, and paths of the icons it needs to generate. You can choose from several resizing algorithms as provided by [Sharp](https://sharp.pixelplumbing.com/) so your entire icon set looks awesome.
## Installation
```shell
npm install --save-dev chrome-manifest-iconify
```## CLI
```shell
Options:
--help Show help [boolean]
--version Show version number [boolean]
-i, --master-icon Path to the master icon [string] [required]
-m, --manifest Path to the v2 manifest.json
[string] [default: "manifest.json"]
-r, --resize-mode Algorithm for resizing the master icon
[choices: "nearest", "cubic", "mitchell", "lanczos2", "lanczos3"] [default:
"lanczos3"]
-o, --out-dir Directory to write the icons [string]Examples:
chrome-manifest-iconify -i master.svg
chrome-manifest-iconify -i master.jpg -m src/manifest.json -r nearest -o
build/icons
```## Gulp
Instead of directly using this API, you might find it easier to use the
[Gulp](https://github.com/gulpjs/gulp) plugin
[gulp-chrome-manifest-iconify](https://github.com/Steven-Roberts/gulp-chrome-manifest-iconify)
for your project.## API
### chrome-manifest-iconify
The chrome-manifest-iconify module**Example**
```js
const chromeManifestIconify = require('chrome-manifest-iconify');const loadIcons = async () => {
try {
const icons = await chromeManifestIconify.async({
manifest: 'src/manifest.json',
masterIcon: 'img/test-icon.png'
});// Do stuff with icons
const buffers = await Promise.all(icons.map((i) => i.contents));console.log(buffers);
} catch (err) {
// Oh, no! Something bad happened
console.error(err);
}
};
```#### chrome-manifest-iconify.async(options) ⇒
Promise.<Array.<module:chrome-manifest-iconify.Icon>>
Generates icon set for a Chrome extension by parsing the v2 manifest. Note
that this function does not actually write the files.**Kind**: static method of [
chrome-manifest-iconify
](#module_chrome-manifest-iconify)
**Returns**:Promise.<Array.<module:chrome-manifest-iconify.Icon>>
- A promise that
resolves with the generated Icons| Param | Type | Description |
| --- | --- | --- |
| options |object
| The options for generating the Icons |
| options.manifest |string
| The path to the v2 manifest.json |
| options.masterIcon |string
\|Buffer
| Either a path or Buffer of the master icon from which all the generated icons will be reseized |
| [options.outDir] |string
| Base directory of the generated Icons. Defaults to parent directory of manifest |
| [options.resizeMode] |string
| The name of a [Sharp kernel](https://sharp.pixelplumbing.com/api-resize#resize) |