|
| 1 | +import { pascalCase } from './utils' |
1 | 2 |
|
2 | 3 | export const spritesTemplate = {
|
3 | 4 | filename: 'svg-sprite.mjs',
|
@@ -28,3 +29,36 @@ export const iconsTemplate = {
|
28 | 29 | ].join('\n')
|
29 | 30 | }
|
30 | 31 | }
|
| 32 | + |
| 33 | +export const iconCollectionTemplate = { |
| 34 | + filename: 'svg-sprite-icon-collection.mjs', |
| 35 | + getContents ({ options }: any) { |
| 36 | + const sprites = Object.entries(options.sprites).map(([name, values]) => { |
| 37 | + const icons = (values as any[]).map((icon) => { |
| 38 | + return `\t${pascalCase(icon.name)}: '${name}/${icon.name}',` |
| 39 | + }) |
| 40 | + return [`export const ${pascalCase(name)} = {`, ...icons, '};\n'] |
| 41 | + }) |
| 42 | + return [ |
| 43 | + '// Generated by @nuxtjs/svg-sprite', |
| 44 | + ...sprites.flat(2) |
| 45 | + ].join('\n') |
| 46 | + } |
| 47 | +} |
| 48 | +export const iconCollectionDefinitionsTemplate = { |
| 49 | + filename: 'types/svg-sprite-icon-collection.d.ts', |
| 50 | + getContents ({ options }: any) { |
| 51 | + const sprites = Object.entries(options.sprites).map(([name, values]) => { |
| 52 | + const icons = (values as any[]).map((icon) => { |
| 53 | + return `\t\treadonly ${pascalCase(icon.name)}: '${name}/${icon.name}',` |
| 54 | + }) |
| 55 | + return [`\texport declare const ${pascalCase(name)}: {`, ...icons, '\t};\n'] |
| 56 | + }) |
| 57 | + return [ |
| 58 | + '// Generated by @nuxtjs/svg-sprite', |
| 59 | + 'declare module \'#sprite\' {', |
| 60 | + ...sprites.flat(2), |
| 61 | + '}' |
| 62 | + ].join('\n') |
| 63 | + } |
| 64 | +} |
0 commit comments