Skip to content

Commit 0dfa19a

Browse files
committed
Generate types file to the correct directory
1 parent 7114c67 commit 0dfa19a

File tree

4 files changed

+25
-11
lines changed

4 files changed

+25
-11
lines changed

libs/schematic/generators/ng-generate/components/table/generators/components/table/files/__name@dasherize__.component.ts.template

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ import {
4646
<% if (options.isEnumQuickFilter) { %>
4747
, <%= enumProperties %>
4848
<% } %>
49-
} from '<%= options.typePath %>';
49+
} from './<%= dasherize(options.aspectModelTypeName) %>.types';
5050
import {<%= tableDataSourceName %>, EsmfPaginatorSelectConfigInjector, EsmfLocalStorageService, Config} from '@esmf/semantic-ui-schematic';
5151

5252
<% if (options.isDateQuickFilter) { %>

libs/schematic/generators/ng-generate/types/aspect-model-type-generator-visitor.ts

Lines changed: 21 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -33,19 +33,16 @@ import {isLangString, processType, resolveJsPropertyType} from '../components/sh
3333
import {
3434
MultiLanguageText
3535
} from '@esmf/aspect-model-loader/dist/instantiator/characteristic/characteristic-instantiator-util';
36+
import {ComponentType} from '../components/shared/schema';
3637

3738
export function visitAspectModel(options: TypesSchema): Rule {
3839
return async (tree: Tree) => {
3940
const visitor = new AspectModelTypeGeneratorVisitor(options);
4041
const aspect: Aspect = options.aspectModel;
41-
const aspectName = dasherize(aspect.name);
42-
const aspectModelVersion = 'v' + options.aspectModelVersion.replace(/\./g, '');
4342

4443
visitor.visit(aspect);
4544
const generatedTypeDefinitions = visitor.getGeneratedTypeDefinitions();
46-
const pathToFile = `${options.path}/${aspectName}${
47-
options.enableVersionSupport ? '/' + aspectModelVersion : ''
48-
}/${aspectName}.types.ts`;
45+
const pathToFile = `${buildTypesFilePath(options)}/${buildTypesFileName(options)}`;
4946

5047
if (tree.exists(pathToFile)) {
5148
tree.overwrite(pathToFile, generatedTypeDefinitions);
@@ -55,6 +52,25 @@ export function visitAspectModel(options: TypesSchema): Rule {
5552
};
5653
}
5754

55+
export function buildTypesFilePath(options: TypesSchema): string {
56+
const selectedModel = dasherize(options.selectedModelElement?.name).toLowerCase();
57+
const aspectModelVersion = 'v' + options.aspectModelVersion.replace(/\./g, '');
58+
const folderName = options.name === ComponentType.TYPES ? selectedModel : `${selectedModel}-${options.name}`;
59+
60+
61+
return [
62+
options.path,
63+
folderName,
64+
options.enableVersionSupport ? aspectModelVersion : null
65+
]
66+
.filter(chunk => !!chunk)
67+
.join('/');
68+
}
69+
70+
function buildTypesFileName(options: TypesSchema): string {
71+
return `${dasherize(options.aspectModel.name)}.types.ts`;
72+
}
73+
5874
export class AspectModelTypeGeneratorVisitor extends DefaultAspectModelVisitor<BaseMetaModelElement, void> {
5975
// Key = Name of the generated data type
6076
// Value = Array of lines that define the data type

libs/schematic/generators/ng-generate/types/index.ts

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,12 @@
1111
* SPDX-License-Identifier: MPL-2.0
1212
*/
1313

14-
import {dasherize} from '@angular-devkit/core/src/utils/strings';
1514
import {chain, Rule, SchematicContext} from '@angular-devkit/schematics';
1615
import ora from 'ora';
1716
import {loadAspectModel, loadRDF} from '../../utils/aspect-model';
1817
import {formatGeneratedFiles, loadAndApplyConfigFile} from '../../utils/file';
1918
import {TemplateHelper} from '../../utils/template-helper';
20-
import {visitAspectModel} from './aspect-model-type-generator-visitor';
19+
import {buildTypesFilePath, visitAspectModel} from './aspect-model-type-generator-visitor';
2120
import {TypesSchema} from './schema';
2221
import {generateComponent} from '../components/shared/index';
2322
import {Tree} from '@angular-devkit/schematics/src/tree/interface';
@@ -43,9 +42,7 @@ export default function (options: TypesSchema): Rule {
4342
formatGeneratedFiles(
4443
{
4544
getPath(options: TypesSchema) {
46-
return [options.path, dasherize(options.selectedModelElement?.name).toLowerCase(), options.versionedAccessPrefix]
47-
.filter(chunk => !!chunk)
48-
.join('/');
45+
return buildTypesFilePath(options);
4946
},
5047
},
5148
options

libs/schematic/generators/utils/template-helper.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ export class TemplateHelper {
4141
options.filterServiceName = `${classify(options.name)}FilterService`;
4242
options.hasSearchBar = this.hasSearchBar(options);
4343
options.hasFilters = this.hasFilters(options);
44+
// The line bellow is not applied to table component
4445
options.typePath = this.getTypesPath(options.enableVersionSupport, options.aspectModelVersion, options.aspectModel);
4546
options.dateProperties = this.getDateProperties(options).filter((property: Property) => this.isDateProperty(property));
4647
options.dateTimeStampProperties = this.getDateProperties(options).filter((property: Property) =>

0 commit comments

Comments
 (0)