1
0
mirror of https://github.com/tabler/tabler-icons.git synced 2025-01-18 05:08:29 +01:00
2023-01-26 22:07:41 +01:00

47 lines
1.2 KiB
JavaScript

#!/usr/bin/env node
import { buildIcons } from '../../.build/build-icons.mjs'
const componentTemplate = ({
name,
namePascal,
children
}) => `\
import createReactComponent from '../createReactComponent';
export default createReactComponent('${name}', '${namePascal}', ${JSON.stringify(children)});`;
const indexItemTemplate = ({
name,
namePascal
}) => `export { default as ${namePascal} } from './icons/${namePascal}';`
const typeDefinitionsTemplate = () => `/// <reference types="react" />
import { SVGAttributes } from 'react'
declare module '@tabler/icons-react'
// Create interface extending SVGProps
export interface TablerIconsProps extends Partial<Omit<React.SVGProps<SVGSVGElement>, 'stroke'>> {
size?: string | number,
stroke?: string | number
}
export declare const createReactComponent: (iconName: string, iconNamePascal: string, iconNode: any[]) => (props: TablerIconsProps) => JSX.Element;
export type Icon = React.FC<TablerIconsProps>;
// Generated icons`
const indexTypeTemplate = ({
namePascal
}) => `export declare const ${namePascal}: (props: TablerIconsProps) => JSX.Element;`
buildIcons({
name: 'icons-react',
componentTemplate,
indexItemTemplate,
typeDefinitionsTemplate,
indexTypeTemplate
})