Skip to content

Commit d539545

Browse files
洛竹fwh1990
authored andcommitted
feat: add replaceExports function
1 parent d5d3e60 commit d539545

File tree

5 files changed

+12
-0
lines changed

5 files changed

+12
-0
lines changed

src/libs/generateComponent.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import {
1111
replaceCases,
1212
replaceComponentName,
1313
replaceImports,
14+
replaceExports,
1415
replaceNames,
1516
replaceNamesArray,
1617
replaceSingleIconContent,
@@ -150,6 +151,7 @@ export const generateComponent = (data: XmlData, localSvg: ILocalSvg[], config:
150151
iconFile = replaceCases(iconFile, cases);
151152
iconFile = replaceSvgComponents(iconFile, svgComponents);
152153
iconFile = replaceImports(iconFile, imports);
154+
iconFile = replaceExports(iconFile, imports);
153155

154156
if (config.use_typescript) {
155157
iconFile = replaceNames(iconFile, names);
@@ -158,6 +160,7 @@ export const generateComponent = (data: XmlData, localSvg: ILocalSvg[], config:
158160

159161
let typeDefinitionFile = getTemplate('Icon.d.ts');
160162

163+
typeDefinitionFile = replaceExports(typeDefinitionFile, imports);
161164
typeDefinitionFile = replaceNames(typeDefinitionFile, names);
162165
fs.writeFileSync(path.join(saveDir, 'index.d.ts'), typeDefinitionFile);
163166
}

src/libs/replace.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,11 @@ export const replaceImports = (content: string, imports: string[]) => {
4242
return content.replace(/#imports#/g, imports.map((item) => `import ${item} from './${item}';`).join('\n'));
4343
};
4444

45+
export const replaceExports = (content: string, exports: string[]) => {
46+
return content.replace(/#exports#/g, exports.map((item) => `export { default as ${item} } from './${item}';`).join('\n'));
47+
};
48+
49+
4550
export const replaceHelper = (content: string) => {
4651
return content.replace(
4752
/#helper#/g,

src/templates/Icon.d.ts.template

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@ import { FunctionComponent } from 'react';
55
import { ViewProps } from 'react-native';
66
import { GProps } from 'react-native-svg';
77

8+
#exports#
9+
810
interface Props extends GProps, ViewProps {
911
name: '#names#';
1012
size?: number;

src/templates/Icon.js.template

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import React from 'react';
44
#svgComponents#
55
#imports#
6+
#exports#
67

78
let IconFont = ({ name, ...rest }) => {
89
switch (name) {

src/templates/Icon.tsx.template

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import React, { FunctionComponent } from 'react';
55
import { ViewProps } from 'react-native';
66
#svgComponents#
77
#imports#
8+
#exports#
89

910
export type IconNames = '#names#';
1011

0 commit comments

Comments
 (0)