mirror of
https://github.com/lucide-icons/lucide.git
synced 2026-11-11 13:28:19 +00:00
* feat(packages): added lucide icons package skeleton
* feat(packages): added initial commit of @lucide/icons
* fix: fixed linting issues introduced in c4e5730bc4 (#3858)
* fix(packages/icons): update package, remove UMD export
* fix(packages/icons): update github actions
* docs(packages/icons): add documentation for various helpers and types
* fix(.github/ISSUE_TEMPLATE): fix linting issue (@ is a reserved character)
* fix(packages/icons): fix linting issues in configs
* feat(packages/icons): rename from packages/lucide-icons => packages/icons
* fix(pnpm): update lockfile
* fix(packages/icons): update readme and documentation
* fix(packages/icons): update absoluteStrokeWidth implementation
* test(packages/icons): update absoluteStrokeWidth unit test
* feat(packages/icons): add backwards compatible alias support in buildLucideIconNode
* feat(packages/icons): fix linting issues in build tools
* fix(packages/icons): rename LucideIcon => LucideIconData
---------
Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
20 lines
655 B
TypeScript
20 lines
655 B
TypeScript
import fs from 'fs';
|
|
import path from 'path';
|
|
import { parseSync, stringify } from 'svgson';
|
|
|
|
const ICONS_DIR = path.resolve(__dirname, '../../../icons');
|
|
|
|
export const getOriginalSvg = (iconName: string, aliasNames?: string[]) => {
|
|
const svgContent = fs.readFileSync(path.join(ICONS_DIR, `${iconName}.svg`), 'utf8');
|
|
const svgParsed = parseSync(svgContent);
|
|
|
|
if (aliasNames) {
|
|
svgParsed.attributes['class'] =
|
|
`lucide lucide-${iconName} ${aliasNames.map((alias) => `lucide-${alias}`).join(' ')}`;
|
|
}
|
|
|
|
return stringify(svgParsed, { selfClose: false });
|
|
};
|
|
|
|
export const removeKeys = (svg: string) => svg.replaceAll(/ key="[^"]+"/g, '');
|