-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
b3655c4
commit 3422f0a
Showing
6 changed files
with
108 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
14 changes: 14 additions & 0 deletions
14
bin/__tests__/__snapshots__/build-sprite-string.test.js.snap
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
// Jest Snapshot v1, https://goo.gl/fbAQLP | ||
|
||
exports[`builds sprite correctly 1`] = ` | ||
"<svg xmlns=\\"http://www.w3.org/2000/svg\\"> | ||
<defs> | ||
<symbol id=\\"icon1\\" viewBox=\\"0 0 24 24\\"> | ||
<line x1=\\"23\\" y1=\\"1\\" x2=\\"1\\" y2=\\"23\\"></line><line x1=\\"1\\" y1=\\"1\\" x2=\\"23\\" y2=\\"23\\"></line> | ||
</symbol> | ||
<symbol id=\\"icon2\\" viewBox=\\"0 0 24 24\\"> | ||
<circle cx=\\"12\\" cy=\\"12\\" r=\\"11\\"></circle> | ||
</symbol> | ||
</defs> | ||
</svg>" | ||
`; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
/* eslint-env jest */ | ||
import buildSpriteString from '../build-sprite-string'; | ||
|
||
const icons = { | ||
icon1: | ||
'<line x1="23" y1="1" x2="1" y2="23"></line><line x1="1" y1="1" x2="23" y2="23"></line>', | ||
icon2: '<circle cx="12" cy="12" r="11"></circle>', | ||
}; | ||
|
||
test('builds sprite correctly', () => { | ||
expect(buildSpriteString(icons)).toMatchSnapshot(); | ||
}); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,30 @@ | ||
import defaultAttrs from '../src/default-attrs.json'; | ||
|
||
const svgStartTag = `<svg xmlns="${defaultAttrs.xmlns}">\n<defs>\n`; | ||
const svgEndTag = '</defs>\n</svg>'; | ||
|
||
/** | ||
* Renders the inner sprites as SVG Symbols | ||
* @param {object} icons the icons object | ||
* @returns {string} the rendered string with SVG symbols | ||
*/ | ||
function buildSpriteString(icons) { | ||
const symbols = Object.keys(icons) | ||
.map(icon => toSvgSymbol(icon, icons[icon])) | ||
.join(''); | ||
|
||
return svgStartTag + symbols + svgEndTag; | ||
} | ||
|
||
/** | ||
* Renders a SVG symbol tag | ||
* @param {string} name The name of the icon | ||
* @param {string} contents The contents of the icon | ||
* @returns {string} the rendered SVG symbol | ||
*/ | ||
function toSvgSymbol(name, contents) { | ||
return `<symbol id="${name}" viewBox="${defaultAttrs.viewBox}"> | ||
${contents}\n</symbol>\n`; | ||
} | ||
|
||
export default buildSpriteString; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
import fs from 'fs'; | ||
import path from 'path'; | ||
import icons from '../dist/icons.json'; | ||
import buildSpriteString from './build-sprite-string'; | ||
|
||
const sprite = buildSpriteString(icons); | ||
|
||
const OUT_FILE = path.resolve(__dirname, '../dist/feather-sprite.svg'); | ||
|
||
console.log(`Building ${OUT_FILE}`); // eslint-disable-line no-console | ||
|
||
fs.writeFile(OUT_FILE, sprite, err => { | ||
if (err) throw err; | ||
}); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters