diff options
Diffstat (limited to 'scripts/create_sprite.js')
| -rw-r--r-- | scripts/create_sprite.js | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/scripts/create_sprite.js b/scripts/create_sprite.js new file mode 100644 index 0000000..d03dc0f --- /dev/null +++ b/scripts/create_sprite.js | |||
| @@ -0,0 +1,44 @@ | |||
| 1 | #!/usr/bin/env node | ||
| 2 | |||
| 3 | import SVGSpriter from "svg-sprite"; | ||
| 4 | import { readFileSync, writeFileSync } from "fs"; | ||
| 5 | import { dirname, resolve } from "path"; | ||
| 6 | import { fileURLToPath } from "url"; | ||
| 7 | |||
| 8 | const __dirname = dirname(fileURLToPath(import.meta.url)); | ||
| 9 | |||
| 10 | const args = process.argv.slice(2); | ||
| 11 | const sprite = args.pop(); | ||
| 12 | |||
| 13 | const spriter = new SVGSpriter({ | ||
| 14 | mode: { | ||
| 15 | symbol: { | ||
| 16 | dest: "", | ||
| 17 | sprite, | ||
| 18 | }, | ||
| 19 | }, | ||
| 20 | shape: { | ||
| 21 | transform: [], | ||
| 22 | }, | ||
| 23 | }); | ||
| 24 | |||
| 25 | for (const id of args) { | ||
| 26 | const file = resolve(__dirname, `../dist/${id}.svg`); | ||
| 27 | spriter.add(file, null, readFileSync(file, { encoding: "utf-8" })); | ||
| 28 | } | ||
| 29 | |||
| 30 | spriter.compile((error, result) => { | ||
| 31 | if (error) { | ||
| 32 | console.error(error); | ||
| 33 | return; | ||
| 34 | } | ||
| 35 | for (var mode in result) { | ||
| 36 | for (var resource in result[mode]) { | ||
| 37 | console.log(result[mode][resource].path); | ||
| 38 | writeFileSync( | ||
| 39 | result[mode][resource].path, | ||
| 40 | result[mode][resource].contents | ||
| 41 | ); | ||
| 42 | } | ||
| 43 | } | ||
| 44 | }); | ||
