Skip to content

Commit 4bd03e5

Browse files
authored
Less reexports in index.ts (#1207)
* Change generation of reeхports on index.ts - to avoid collisions
1 parent fa7a3e6 commit 4bd03e5

File tree

3 files changed

+22
-10
lines changed

3 files changed

+22
-10
lines changed

packages/devextreme-angular-generator/spec/tests/metadata-generator.spec.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -210,7 +210,7 @@ describe("metadata-generator", function() {
210210
});
211211

212212
it("should generate proper optionsTypeParams", function() {
213-
expect(metas.DxTestWidget.optionsTypeParams).toBe(["T1", "T2"]);
213+
expect(metas.DxTestWidget.optionsTypeParams).toEqual(["T1", "T2"]);
214214
});
215215

216216
it("should detect editors", function() {
Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import fs = require('fs');
22
import path = require('path');
33
import logger from './logger';
4+
import inflector = require('inflector-js');
45

56
export default class FacadeGenerator {
67
private _encoding = 'utf8';
@@ -10,17 +11,27 @@ export default class FacadeGenerator {
1011
let facadeConfig = config.facades[facadeFilePath],
1112
resultContent = '';
1213

13-
resultContent += `export * from 'devextreme-angular/core'\n`;
14-
resultContent += `export * from './ui/all'\n`;
14+
resultContent += `export * from 'devextreme-angular/core';\n`;
15+
resultContent += `export * from './ui/all';\n`;
1516
fs.readdirSync(facadeConfig.sourceDirectories[0])
1617
.filter(fileName => fs.lstatSync(path.join(facadeConfig.sourceDirectories[0], fileName)).isFile())
1718
.forEach(fileName => {
1819
const { name } = path.parse(path.join(facadeConfig.sourceDirectories[0], fileName));
19-
resultContent += `export * from 'devextreme-angular/ui/${name}'\n`;
20+
const formattedName = formatName(name);
21+
const where = `'devextreme-angular/ui/${name}'`;
22+
resultContent += `export { Dx${formattedName}Component, Dx${formattedName}Module } from ${where};\n`;
2023
});
2124

2225
logger('Write result to ' + facadeFilePath);
2326
fs.writeFileSync(facadeFilePath, resultContent, { encoding: this._encoding });
2427
});
2528
}
2629
}
30+
31+
32+
function formatName(name: string): string {
33+
if (!name.includes('-')) {
34+
return inflector.camelize(name);
35+
}
36+
return name.split('-').map((n) => inflector.camelize(n)).join('');
37+
}

packages/devextreme-angular-generator/src/metadata-generator.ts

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -242,7 +242,7 @@ export default class DXComponentMetadataGenerator {
242242
packageName: config.wrapperPackageName,
243243
imports: buildImports(getValues(widget.Options), config.widgetPackageName),
244244
nestedComponents: widgetNestedComponents,
245-
optionsTypeParams: widget.OptionsTypeParams
245+
optionsTypeParams: widget.OptionsTypeParams,
246246
};
247247

248248
logger('Write metadata to file ' + outputFilePath);
@@ -327,12 +327,12 @@ export default class DXComponentMetadataGenerator {
327327
return result;
328328
}
329329

330-
private mergeArrayTypes(array1, array2) {
330+
private mergeArrayTypes<T>(array1: T[], array2: T[]): T[] {
331331
let newTypes = array2.filter(type => array1.indexOf(type) === -1);
332332
return [].concat(array1, newTypes);
333333
}
334334

335-
private getExternalObjectInfo(metadata: Metadata, typeName) {
335+
private getExternalObjectInfo(metadata: Metadata, typeName: string) {
336336
let externalObject = metadata.ExtraObjects[typeName];
337337

338338
if (!externalObject) {
@@ -492,7 +492,7 @@ export default class DXComponentMetadataGenerator {
492492
} else {
493493
existingComponent.properties = existingComponent.properties
494494
.concat(...component.properties)
495-
.reduce((properties, property) => {
495+
.reduce((properties: Property[], property) => {
496496
if (properties.filter(p => p.name === property.name).length === 0) {
497497
properties.push(property);
498498
} else {
@@ -515,7 +515,7 @@ export default class DXComponentMetadataGenerator {
515515

516516
existingComponent.events = existingComponent.events
517517
.concat(...component.events)
518-
.reduce((events, event) => {
518+
.reduce((events: Event[], event) => {
519519
if (events.filter(e => e.emit === event.emit).length === 0) {
520520
events.push(event);
521521
}
@@ -535,7 +535,8 @@ export default class DXComponentMetadataGenerator {
535535
}, []);
536536

537537
normalizedMetadata.forEach(component => {
538-
component.collectionNestedComponents = component.collectionNestedComponents.reduce((result, nestedComponent) => {
538+
component.collectionNestedComponents = component.collectionNestedComponents
539+
.reduce((result: NestedComponent[], nestedComponent) => {
539540
if (result.filter(c => nestedComponent.className === c.className).length === 0) {
540541
result.push(nestedComponent);
541542
}

0 commit comments

Comments
 (0)