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 | }); | ||