#!/usr/bin/env node import { buildJsIcons } from '../../.build/build-icons.mjs' import { readFileSync, writeFileSync } from 'fs' import { getAllIcons, toPascalCase } from '../../.build/helpers.mjs' const updatePackageJson = () => { let packageJson = JSON.parse(readFileSync('package.json', 'utf-8')) if (packageJson.exports) { for (const key in packageJson.exports) { if (key.match(/^\.\/[^\.]+\.svelte$/)) { delete packageJson.exports[key] } } } const allIcons = getAllIcons(false, false) Object.entries(allIcons).forEach(([type, icons]) => { icons.forEach((icon, i) => { const iconName = `${icon.name}${type !== 'outline' ? `-${type}` : ''}`, iconNamePascal = `${icon.namePascal}${type !== 'outline' ? toPascalCase(type) : ''}` packageJson.exports[`./${iconNamePascal}.svelte`] = { types: `./dist/icons/${iconName}.svelte.d.ts`, svelte: `./dist/icons/${iconName}.svelte` } }) }) writeFileSync('package.json', JSON.stringify(packageJson, null, 2)) } const componentTemplate = ({ type, name, children, stringify }) => { return `\ `; }; const aliasTemplate = ({ fromPascal, to }) => `export { default as Icon${fromPascal} } from './icons/${to}.svelte';\n` const indexItemTemplate = ({ name, namePascal }) => `export { default as ${namePascal} } from './${name}.svelte';` buildJsIcons({ name: 'icons-svelte', componentTemplate, indexItemTemplate, aliasTemplate, extension: 'svelte', key: false, indexFile: 'index.ts', pascalName: false, }) updatePackageJson()