Skip to content

Commit 614b37a

Browse files
committed
feat(modelOutput): add additional model output path
1 parent aa52a0e commit 614b37a

File tree

6 files changed

+18
-5
lines changed

6 files changed

+18
-5
lines changed

package.json

+1
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
"start": "ts-node ./src/bin/svg-to-ts.ts -s './inputfiles/*.svg'",
1515
"start:ofl": "ts-node ./src/bin/svg-to-ts.ts -s './inputfiles/*.svg' --optimizeForLazyLoading true",
1616
"start:ofl:preCompile": "ts-node ./src/bin/svg-to-ts.ts -s './inputfiles/*.svg' --optimizeForLazyLoading true --preCompileSources true",
17+
"start:ofl:preCompile-additionalPath": "ts-node ./src/bin/svg-to-ts.ts -s './inputfiles/*.svg' --optimizeForLazyLoading true --preCompileSources true --additionalModelOutputPath ./additional",
1718
"start:help": "ts-node ./src/bin/svg-to-ts.ts -h",
1819
"start:regex": "ts-node ./src/bin/svg-to-ts.ts -s './inputfilesRegex/**/*.svg'",
1920
"start:kebap": "ts-node ./src/bin/svg-to-ts.ts -s './inputfiles/*.svg' -d KEBAB",

src/bin/svg-to-ts.ts

+6-1
Original file line numberDiff line numberDiff line change
@@ -39,9 +39,14 @@ commander
3939
'Name of the folder the icons will be generated to (only necessary when optimizeForLazyLoading option is enabled)',
4040
DEFAULT_OPTIONS.iconsFolderName
4141
)
42+
.option(
43+
'--additionalModelOutputPath <string>',
44+
'Additional outputpath for the models file (only helpful when optimizeForLazyLoading option is enabled)',
45+
DEFAULT_OPTIONS.additionalModelOutputPath
46+
)
4247
.option(
4348
'--preCompileSources <boolean>',
44-
'Tells if the sources should be precompiled with the TypeScript compiler. If true, you will only end up with d.ts and js files',
49+
'Tells if the sources should be precompiled with the TypeScript compiler. If true, you will only end up with d.ts and js files (only necessary when optimizeForLazyLoading option is enabled)',
4550
DEFAULT_OPTIONS.preCompileSources
4651
)
4752
.parse(process.argv);

src/lib/converters/multiple-files.converter.ts

+6
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ export const convertToMultipleFiles = async (convertionOptions: MultiFileConvert
2626
outputDirectory,
2727
srcFiles,
2828
modelFileName,
29+
additionalModelOutputPath,
2930
iconsFolderName,
3031
preCompileSources
3132
} = convertionOptions;
@@ -71,6 +72,11 @@ export const convertToMultipleFiles = async (convertionOptions: MultiFileConvert
7172
const modelFile = (types += generateInterfaceDefinition(interfaceName, typeName));
7273
await writeFile(`${outputDirectory}/${iconsFolderName}`, modelFileName, modelFile);
7374
info(`model-file successfully generated under ${outputDirectory}/${iconsFolderName}/${modelFileName}.ts`);
75+
76+
if (additionalModelOutputPath) {
77+
await writeFile(`${additionalModelOutputPath}`, modelFileName, modelFile);
78+
info(`additional model-file successfully generated under ${additionalModelOutputPath}/${modelFileName}.ts`);
79+
}
7480
}
7581

7682
if (preCompileSources) {

src/lib/options/args-collector.ts

+2
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ export const collectArgumentOptions = (): SingleFileConvertionOptions | MultiFil
1313
modelFileName,
1414
iconsFolderName,
1515
optimizeForLazyLoading,
16+
additionalModelOutputPath,
1617
preCompileSources
1718
} = commander;
1819

@@ -34,6 +35,7 @@ export const collectArgumentOptions = (): SingleFileConvertionOptions | MultiFil
3435
modelFileName,
3536
iconsFolderName,
3637
optimizeForLazyLoading,
38+
additionalModelOutputPath,
3739
preCompileSources
3840
};
3941
};

src/lib/options/convertion-options.ts

+1
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ export interface SingleFileConvertionOptions extends ConvertionOptions {
1919

2020
export interface MultiFileConvertionOptions extends ConvertionOptions {
2121
modelFileName: string;
22+
additionalModelOutputPath: string | null;
2223
iconsFolderName: string;
2324
preCompileSources: boolean;
2425
}

src/lib/options/default-options.ts

+2-4
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,15 @@
11
import { Delimiter } from '../generators/code-snippet-generators';
22

3-
const DEFAULT_OUTPUT_PATH = './dist';
4-
53
export const DEFAULT_OPTIONS = {
64
fileName: 'my-icons',
75
delimiter: Delimiter.SNAKE,
86
interfaceName: 'MyIcon',
9-
outputDirectory: DEFAULT_OUTPUT_PATH,
7+
outputDirectory: './dist',
108
prefix: 'myIcon',
119
srcFiles: ['*.svg'],
1210
typeName: 'myIcons',
1311
optimizeForLazyLoading: false,
14-
modelOutputPath: DEFAULT_OUTPUT_PATH,
12+
additionalModelOutputPath: null,
1513
modelFileName: 'my-icons.model',
1614
iconsFolderName: 'build',
1715
preCompileSources: false

0 commit comments

Comments
 (0)