Skip to content

Commit

Permalink
fix: πŸ› generate correct interface for SVG contants
Browse files Browse the repository at this point in the history
βœ… Closes: #79
  • Loading branch information
kreuzerk committed Oct 13, 2020
1 parent 7236540 commit d21138f
Show file tree
Hide file tree
Showing 4 changed files with 13 additions and 40 deletions.
7 changes: 1 addition & 6 deletions src/lib/converters/constants.converter.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,7 @@ import { filesProcessor } from './shared.converter';

const getSvgConstants = svgDefinitions => {
const svgConstants = svgDefinitions.map(svgDefinition =>
generateSvgConstant(
svgDefinition.variableName,
svgDefinition.interfaceName,
svgDefinition.typeName,
svgDefinition.data
)
generateSvgConstant(svgDefinition.variableName, svgDefinition.typeName, svgDefinition.data)
);
return svgConstants.join('');
};
Expand Down
10 changes: 2 additions & 8 deletions src/lib/converters/files.converter.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { compile } from '../compiler/typescript-compiler';
import {
generateExportStatement,
generateInterfaceDefinition,
generateSvgConstantWithImport,
generateSvgConstant,
generateTypeDefinition
} from '../generators/code-snippet-generators';
import { generateCompleteIconSetContent } from '../helpers/complete-icon-set.helper';
Expand Down Expand Up @@ -34,13 +34,7 @@ export const convertToFiles = async (conversionOptions: FileConversionOptions):

await Promise.all(
svgDefinitions.map(async svgDefinition => {
const svgConstant = generateSvgConstantWithImport(
svgDefinition.variableName,
svgDefinition.typeName,
svgDefinition.interfaceName,
modelFileName,
svgDefinition.data
);
const svgConstant = generateSvgConstant(svgDefinition.variableName, svgDefinition.typeName, svgDefinition.data);
const generatedFileName = `${svgDefinition.prefix}-${svgDefinition.filenameWithoutEnding}.icon`;
generatedFileNames.push(generatedFileName);
await writeFile(`${outputDirectory}/${iconsFolderName}`, generatedFileName, svgConstant);
Expand Down
8 changes: 5 additions & 3 deletions src/lib/generators/code-snippet-generators.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -89,13 +89,15 @@ describe('Generators', () => {
const variableName = 'smile';
const filenameWithoutEnding = 'smileFile';
const data = 'some data';
const interfaceName = 'AwesomeIcon';

const expectedSVGConstant = `export const ${variableName}: ${interfaceName} = {
const expectedSVGConstant = `export const ${variableName}: {
name: '${filenameWithoutEnding}',
data: string
} = {
name: '${filenameWithoutEnding}',
data: \`${data}\`
};`;
expect(generateSvgConstant(variableName, interfaceName, filenameWithoutEnding, data)).toEqual(expectedSVGConstant);
expect(generateSvgConstant(variableName, filenameWithoutEnding, data)).toEqual(expectedSVGConstant);
});

describe('generateTypeName', () => {
Expand Down
28 changes: 5 additions & 23 deletions src/lib/generators/code-snippet-generators.ts
Original file line number Diff line number Diff line change
Expand Up @@ -50,29 +50,11 @@ export const generateTypeDefinition = (
return typesDefinition;
};

export const generateSvgConstant = (
variableName: string,
interfaceName: string,
filenameWithoutEnding: string,
data: string
): string => {
return `export const ${variableName}: ${interfaceName} = {
name: '${filenameWithoutEnding}',
data: \`${data}\`
};`;
};

export const generateSvgConstantWithImport = (
variableName: string,
filenameWithoutEnding: string,
interfaceName: string,
modelFileName: string,
data: string
): string => {
return `
import {${interfaceName}} from './${modelFileName}';
export const ${variableName}: ${interfaceName} = {
export const generateSvgConstant = (variableName: string, filenameWithoutEnding: string, data: string): string => {
return `export const ${variableName}: {
name: '${filenameWithoutEnding}',
data: string
} = {
name: '${filenameWithoutEnding}',
data: \`${data}\`
};`;
Expand Down

0 comments on commit d21138f

Please sign in to comment.