devextreme-internal-tools 12.0.0-beta.1 → 12.0.0-beta.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (148) hide show
  1. package/bin/DevExtreme.Declarations.Discoverer.dll +0 -0
  2. package/bin/DevExtreme.Declarations.Discoverer.exe +0 -0
  3. package/bin/DevExtreme.Declarations.IntegrityValidator.dll +0 -0
  4. package/bin/DevExtreme.Declarations.IntegrityValidator.exe +0 -0
  5. package/bin/DevExtreme.Declarations.dll +0 -0
  6. package/bin/DevExtreme.Descriptions.Injector.dll +0 -0
  7. package/bin/DevExtreme.Descriptions.Injector.exe +0 -0
  8. package/bin/DevExtreme.Infrastructure.dll +0 -0
  9. package/bin/DevExtreme.IntegrationDataGenerator.dll +0 -0
  10. package/bin/DevExtreme.IntegrationDataGenerator.exe +0 -0
  11. package/bin/DevExtreme.NgSmdGenerator.dll +0 -0
  12. package/bin/DevExtreme.NgSmdGenerator.exe +0 -0
  13. package/bin/DevExtreme.SmdCommon.dll +0 -0
  14. package/bin/DevExtreme.StrongMetaDataGenerator.dll +0 -0
  15. package/bin/DevExtreme.StrongMetaDataGenerator.exe +0 -0
  16. package/bin/DevExtreme.Topics.ExtraFilesGenerator.dll +0 -0
  17. package/bin/DevExtreme.Topics.ExtraFilesGenerator.exe +0 -0
  18. package/bin/DevExtreme.Topics.Generator.dll +0 -0
  19. package/bin/DevExtreme.Topics.Generator.exe +0 -0
  20. package/bin/DevExtreme.Topics.ModulesGuideValidator.dll +0 -0
  21. package/bin/DevExtreme.Topics.ModulesGuideValidator.exe +0 -0
  22. package/bin/DevExtreme.Topics.Validation.dll +0 -0
  23. package/bin/DevExtreme.Topics.Validation.exe +0 -0
  24. package/bin/DevExtreme.Topics.dll +0 -0
  25. package/bin/DevExtreme.WebSite.ContentMapCreator.dll +0 -0
  26. package/bin/DevExtreme.WebSite.ContentMapCreator.exe +0 -0
  27. package/bin/DevExtreme.WebSite.LinksConverter.dll +0 -0
  28. package/bin/DevExtreme.WebSite.LinksConverter.exe +0 -0
  29. package/bin/DevExtreme.WebSite.SyntaxDataGenerator.dll +0 -0
  30. package/bin/DevExtreme.WebSite.SyntaxDataGenerator.exe +0 -0
  31. package/cli.d.ts +2 -0
  32. package/cli.js +50 -0
  33. package/cli.js.map +1 -0
  34. package/index.d.ts +9 -0
  35. package/index.js +18 -47
  36. package/index.js.map +1 -1
  37. package/integration-data-model.d.ts +76 -0
  38. package/integration-data-model.js +3 -0
  39. package/integration-data-model.js.map +1 -0
  40. package/package.json +17 -9
  41. package/ts/angular-components-generator/common-reexports-generator.d.ts +4 -0
  42. package/ts/angular-components-generator/common-reexports-generator.js +36 -0
  43. package/ts/angular-components-generator/common-reexports-generator.js.map +1 -0
  44. package/ts/angular-components-generator/component-names-generator.d.ts +8 -0
  45. package/ts/angular-components-generator/component-names-generator.js +31 -0
  46. package/ts/angular-components-generator/component-names-generator.js.map +1 -0
  47. package/ts/angular-components-generator/dot-generator.d.ts +8 -0
  48. package/ts/angular-components-generator/dot-generator.js +86 -0
  49. package/ts/angular-components-generator/dot-generator.js.map +1 -0
  50. package/ts/angular-components-generator/facade-generator.d.ts +4 -0
  51. package/ts/angular-components-generator/facade-generator.js +45 -0
  52. package/ts/angular-components-generator/facade-generator.js.map +1 -0
  53. package/ts/angular-components-generator/helpers.d.ts +2 -0
  54. package/ts/angular-components-generator/helpers.js +12 -0
  55. package/ts/angular-components-generator/helpers.js.map +1 -0
  56. package/ts/angular-components-generator/import-helper.d.ts +6 -0
  57. package/ts/angular-components-generator/import-helper.js +73 -0
  58. package/ts/angular-components-generator/import-helper.js.map +1 -0
  59. package/ts/angular-components-generator/logger.d.ts +1 -0
  60. package/ts/angular-components-generator/logger.js +16 -0
  61. package/ts/angular-components-generator/logger.js.map +1 -0
  62. package/ts/angular-components-generator/metadata-generator.d.ts +27 -0
  63. package/ts/angular-components-generator/metadata-generator.js +490 -0
  64. package/ts/angular-components-generator/metadata-generator.js.map +1 -0
  65. package/ts/angular-components-generator/metadata-model.d.ts +48 -0
  66. package/ts/angular-components-generator/metadata-model.js +3 -0
  67. package/ts/angular-components-generator/metadata-model.js.map +1 -0
  68. package/ts/angular-components-generator/module-facade-generator.d.ts +5 -0
  69. package/ts/angular-components-generator/module-facade-generator.js +50 -0
  70. package/ts/angular-components-generator/module-facade-generator.js.map +1 -0
  71. package/ts/angular-components-generator/templates/base-nested-component.tst +20 -0
  72. package/ts/angular-components-generator/templates/component.tst +251 -0
  73. package/ts/angular-components-generator/templates/nested-component.tst +140 -0
  74. package/ts/bundler/bundler.d.ts +6 -0
  75. package/ts/collapser/collapser.d.ts +4 -0
  76. package/ts/common/common-resolving.d.ts +11 -0
  77. package/ts/common/id.d.ts +12 -0
  78. package/ts/common/tags/comparing.d.ts +3 -0
  79. package/ts/common/tags/generating.d.ts +4 -0
  80. package/ts/common/tags/merging.d.ts +12 -0
  81. package/ts/common/tags/parameter-field-tag.d.ts +7 -0
  82. package/ts/common/tags.d.ts +12 -0
  83. package/ts/common/ts-type-resolving.d.ts +16 -0
  84. package/ts/common/ts-utils.d.ts +31 -0
  85. package/ts/common/type-resolving.d.ts +42 -0
  86. package/ts/common/utils.d.ts +22 -0
  87. package/ts/component-exports-generator/generator.d.ts +3 -0
  88. package/ts/discoverer/data-model.d.ts +105 -0
  89. package/ts/discoverer/discovering-error.d.ts +4 -0
  90. package/ts/discoverer/discovering.d.ts +4 -0
  91. package/ts/discoverer/parsing/enum-collecting.d.ts +6 -0
  92. package/ts/discoverer/parsing/file-reader.d.ts +2 -0
  93. package/ts/discoverer/parsing/widget-parsing.d.ts +11 -0
  94. package/ts/discoverer/parsing.d.ts +29 -0
  95. package/ts/discoverer/types.d.ts +20 -0
  96. package/ts/logging.d.ts +16 -0
  97. package/ts/modules-meta-generator/modules-meta-generator.d.ts +3 -0
  98. package/ts/react-components-generator/common-reexports-generator.d.ts +2 -0
  99. package/ts/react-components-generator/common-reexports-generator.js +10 -0
  100. package/ts/react-components-generator/common-reexports-generator.js.map +1 -0
  101. package/ts/react-components-generator/component-generator.d.ts +62 -0
  102. package/ts/react-components-generator/component-generator.js +407 -0
  103. package/ts/react-components-generator/component-generator.js.map +1 -0
  104. package/ts/react-components-generator/converter.d.ts +3 -0
  105. package/ts/react-components-generator/converter.js +59 -0
  106. package/ts/react-components-generator/converter.js.map +1 -0
  107. package/ts/react-components-generator/generator.d.ts +60 -0
  108. package/ts/react-components-generator/generator.js +383 -0
  109. package/ts/react-components-generator/generator.js.map +1 -0
  110. package/ts/react-components-generator/helpers.d.ts +11 -0
  111. package/ts/react-components-generator/helpers.js +53 -0
  112. package/ts/react-components-generator/helpers.js.map +1 -0
  113. package/ts/react-components-generator/import-overrides.json +109 -0
  114. package/ts/react-components-generator/index-generator.d.ts +7 -0
  115. package/ts/react-components-generator/index-generator.js +10 -0
  116. package/ts/react-components-generator/index-generator.js.map +1 -0
  117. package/ts/react-components-generator/template.d.ts +10 -0
  118. package/ts/react-components-generator/template.js +43 -0
  119. package/ts/react-components-generator/template.js.map +1 -0
  120. package/ts/scripts/args.d.ts +37 -0
  121. package/ts/scripts/helpers.d.ts +10 -0
  122. package/ts/scripts/tools.d.ts +17 -0
  123. package/ts/vue-components-generator/common-reexports-generator.d.ts +2 -0
  124. package/ts/vue-components-generator/common-reexports-generator.js +10 -0
  125. package/ts/vue-components-generator/common-reexports-generator.js.map +1 -0
  126. package/ts/vue-components-generator/component-generator.d.ts +40 -0
  127. package/ts/vue-components-generator/component-generator.js +197 -0
  128. package/ts/vue-components-generator/component-generator.js.map +1 -0
  129. package/ts/vue-components-generator/converter.d.ts +3 -0
  130. package/ts/vue-components-generator/converter.js +45 -0
  131. package/ts/vue-components-generator/converter.js.map +1 -0
  132. package/ts/vue-components-generator/generator.d.ts +11 -0
  133. package/ts/vue-components-generator/generator.js +126 -0
  134. package/ts/vue-components-generator/generator.js.map +1 -0
  135. package/ts/vue-components-generator/helpers.d.ts +6 -0
  136. package/ts/vue-components-generator/helpers.js +30 -0
  137. package/ts/vue-components-generator/helpers.js.map +1 -0
  138. package/ts/vue-components-generator/index-generator.d.ts +7 -0
  139. package/ts/vue-components-generator/index-generator.js +9 -0
  140. package/ts/vue-components-generator/index-generator.js.map +1 -0
  141. package/ts/vue-components-generator/template.d.ts +11 -0
  142. package/ts/vue-components-generator/template.js +45 -0
  143. package/ts/vue-components-generator/template.js.map +1 -0
  144. package/bin/integration-data-model.ts +0 -86
  145. package/bin/internal-tools-log.txt +0 -21
  146. package/integration-data-model.ts +0 -86
  147. package/ts/discoverer/parsing/file-reader.tests.js +0 -24
  148. package/ts/discoverer/parsing/file-reader.tests.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"facade-generator.js","sourceRoot":"","sources":["../../../ts/angular-components-generator/facade-generator.ts"],"names":[],"mappings":";;;AAAA,uBAAyB;AACzB,2BAA6B;AAC7B,wCAA0C;AAC1C,mCAA8B;AAE9B;IAAA;QACU,aAAQ,GAAmB,MAAM,CAAC;IA6B5C,CAAC;IA3BC,kCAAQ,GAAR,UAAS,MAAM;QAAf,iBA0BC;QAzBC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,UAAC,cAAc;YACjD,gBAAM,CAAC,sBAAoB,cAAgB,CAAC,CAAC;YAC7C,IAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;YACpD,IAAI,aAAa,GAAG,EAAE,CAAC;YAEvB,aAAa,IAAI,8CAA8C,CAAC;YAChE,aAAa,IAAI,+BAA+B,CAAC;YAEjD,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,UAAC,CAAC;gBAC7B,aAAa,IAAI,aAAW,CAAC,SAAM,CAAC;YACtC,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,WAAW,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;iBAC9C,MAAM,CAAC,UAAC,QAAQ,IAAK,OAAA,EAAE;iBACrB,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;iBACjE,MAAM,EAAE,EAFW,CAEX,CAAC,CAAC,OAAO,CAAC,UAAC,QAAQ;gBACpB,IAAA,IAAI,GAAK,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,KAAvE,CAAwE;gBACpF,IAAM,aAAa,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;gBACvC,IAAM,KAAK,GAAG,4BAA0B,IAAI,MAAG,CAAC;gBAChD,aAAa,IAAI,gBAAc,aAAa,qBAAgB,aAAa,sBAAiB,KAAK,QAAK,CAAC;YACvG,CAAC,CAAC,CAAC;YAEL,gBAAM,CAAC,qBAAmB,cAAgB,CAAC,CAAC;YAC5C,EAAE,CAAC,aAAa,CAAC,cAAc,EAAE,aAAa,EAAE,EAAE,QAAQ,EAAE,KAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC/E,CAAC,CAAC,CAAC;IACL,CAAC;IACH,sBAAC;AAAD,CAAC,AA9BD,IA8BC;AA9BY,0CAAe;AAgC5B,SAAS,UAAU,CAAC,IAAY;IAC9B,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;QACvB,OAAO,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;KACjC;IACD,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,UAAC,CAAC,IAAK,OAAA,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,EAArB,CAAqB,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACpE,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function byKeyComparer<T>(getter: (obj: T) => string): Parameters<Array<T>['sort']>[0];
2
+ export declare function getValues<T>(obj: Record<string, T>): T[];
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getValues = exports.byKeyComparer = void 0;
4
+ function byKeyComparer(getter) {
5
+ return function (objA, objB) { return getter(objA).localeCompare(getter(objB)); };
6
+ }
7
+ exports.byKeyComparer = byKeyComparer;
8
+ function getValues(obj) {
9
+ return obj ? Object.keys(obj).map(function (k) { return obj[k]; }) : undefined;
10
+ }
11
+ exports.getValues = getValues;
12
+ //# sourceMappingURL=helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../ts/angular-components-generator/helpers.ts"],"names":[],"mappings":";;;AAAA,SAAgB,aAAa,CAAI,MAA0B;IACzD,OAAO,UAAC,IAAO,EAAE,IAAO,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAxC,CAAwC,CAAC;AACxE,CAAC;AAFD,sCAEC;AAED,SAAgB,SAAS,CAAI,GAAsB;IACjD,OAAO,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,UAAC,CAAC,IAAK,OAAA,GAAG,CAAC,CAAC,CAAC,EAAN,CAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAC/D,CAAC;AAFD,8BAEC"}
@@ -0,0 +1,6 @@
1
+ import { Option } from './metadata-model';
2
+ export interface FileImport {
3
+ path: string;
4
+ importString: string;
5
+ }
6
+ export declare function buildImports(options: Option[], widgetPackageName: string): FileImport[];
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.buildImports = void 0;
4
+ var helpers_1 = require("./helpers");
5
+ function buildImports(options, widgetPackageName) {
6
+ var importsByPath = extractImportsMeta(options).reduce(function (paths, _a) {
7
+ var Path = _a.Path, Name = _a.Name, Alias = _a.Alias;
8
+ if (!paths[Path]) {
9
+ paths[Path] = {};
10
+ }
11
+ paths[Path][Name + "+" + Alias] = { Name: Name, Alias: Alias };
12
+ return paths;
13
+ }, {});
14
+ return Object.keys(importsByPath)
15
+ .map(function (path) {
16
+ var _a = extractDefaultImport(helpers_1.getValues(importsByPath[path])), defaultImport = _a.defaultImport, namedImports = _a.namedImports;
17
+ var parts = [];
18
+ if (defaultImport) {
19
+ parts.push(defaultImport);
20
+ }
21
+ if (namedImports.length) {
22
+ var namedImportsString = namedImports
23
+ .sort(helpers_1.byKeyComparer(function (i) { return i.Name; }))
24
+ .map(function (_a) {
25
+ var Name = _a.Name, Alias = _a.Alias;
26
+ return (Alias ? Name + " as " + Alias : Name);
27
+ })
28
+ .join(', ');
29
+ parts.push("{ " + namedImportsString + " }");
30
+ }
31
+ return {
32
+ path: widgetPackageName + "/" + path,
33
+ importString: parts.join(', '),
34
+ };
35
+ })
36
+ .sort(helpers_1.byKeyComparer(function (i) { return i.path; }));
37
+ }
38
+ exports.buildImports = buildImports;
39
+ function extractImportsMeta(options) {
40
+ if (!options || !options.length) {
41
+ return [];
42
+ }
43
+ return options.reduce(function (r, option) {
44
+ if (option) {
45
+ r.push.apply(r, option.TypeImports);
46
+ r.push.apply(r, extractImportsMeta(helpers_1.getValues(option.Options)));
47
+ }
48
+ return r;
49
+ }, []);
50
+ }
51
+ function extractDefaultImport(imports) {
52
+ var result = {
53
+ defaultImport: undefined,
54
+ namedImports: [],
55
+ };
56
+ for (var _i = 0, imports_1 = imports; _i < imports_1.length; _i++) {
57
+ var entry = imports_1[_i];
58
+ if (isDefaultImport(entry)) {
59
+ if (!entry.Alias) {
60
+ throw new Error("default export must have an alias: " + JSON.stringify(entry));
61
+ }
62
+ result.defaultImport = entry.Alias;
63
+ }
64
+ else {
65
+ result.namedImports.push(entry);
66
+ }
67
+ }
68
+ return result;
69
+ }
70
+ function isDefaultImport(importName) {
71
+ return importName.Name.toLowerCase() === 'default';
72
+ }
73
+ //# sourceMappingURL=import-helper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"import-helper.js","sourceRoot":"","sources":["../../../ts/angular-components-generator/import-helper.ts"],"names":[],"mappings":";;;AACA,qCAAqD;AAOrD,SAAgB,YAAY,CAAC,OAAiB,EAAE,iBAAyB;IACvE,IAAM,aAAa,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC,MAAM,CACtD,UAAC,KAAK,EAAE,EAAqB;YAAnB,IAAI,UAAA,EAAE,IAAI,UAAA,EAAE,KAAK,WAAA;QACzB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;YAChB,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;SAClB;QAED,KAAK,CAAC,IAAI,CAAC,CAAI,IAAI,SAAI,KAAO,CAAC,GAAG,EAAE,IAAI,MAAA,EAAE,KAAK,OAAA,EAAE,CAAC;QAElD,OAAO,KAAK,CAAC;IACf,CAAC,EAAE,EAAgD,CACpD,CAAC;IAEF,OAAO,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC;SAC9B,GAAG,CAAC,UAAC,IAAI;QACF,IAAA,KAAkC,oBAAoB,CAAC,mBAAS,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAApF,aAAa,mBAAA,EAAE,YAAY,kBAAyD,CAAC;QAC7F,IAAM,KAAK,GAAG,EAAE,CAAC;QAEjB,IAAI,aAAa,EAAE;YACjB,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;SAC3B;QAED,IAAI,YAAY,CAAC,MAAM,EAAE;YACvB,IAAM,kBAAkB,GAAG,YAAY;iBACpC,IAAI,CAAC,uBAAa,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,IAAI,EAAN,CAAM,CAAC,CAAC;iBAClC,GAAG,CAAC,UAAC,EAAe;oBAAb,IAAI,UAAA,EAAE,KAAK,WAAA;gBAAO,OAAA,CAAC,KAAK,CAAC,CAAC,CAAI,IAAI,YAAO,KAAO,CAAC,CAAC,CAAC,IAAI,CAAC;YAAtC,CAAsC,CAAC;iBAChE,IAAI,CAAC,IAAI,CAAC,CAAC;YAEd,KAAK,CAAC,IAAI,CAAC,OAAK,kBAAkB,OAAI,CAAC,CAAC;SACzC;QAED,OAAO;YACL,IAAI,EAAK,iBAAiB,SAAI,IAAM;YACpC,YAAY,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;SACjB,CAAC;IAClB,CAAC,CAAC;SACD,IAAI,CAAC,uBAAa,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,IAAI,EAAN,CAAM,CAAC,CAAC,CAAC;AACxC,CAAC;AArCD,oCAqCC;AAED,SAAS,kBAAkB,CAAC,OAAiB;IAC3C,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;QAC/B,OAAO,EAAE,CAAC;KACX;IAED,OAAO,OAAO,CAAC,MAAM,CACnB,UAAC,CAAC,EAAE,MAAM;QACR,IAAI,MAAM,EAAE;YACV,CAAC,CAAC,IAAI,OAAN,CAAC,EAAS,MAAM,CAAC,WAAW,EAAE;YAC9B,CAAC,CAAC,IAAI,OAAN,CAAC,EAAS,kBAAkB,CAAC,mBAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE;SAC1D;QACD,OAAO,CAAC,CAAC;IACX,CAAC,EAAE,EAAc,CAClB,CAAC;AACJ,CAAC;AAED,SAAS,oBAAoB,CAC3B,OAAqB;IAErB,IAAM,MAAM,GAA4C;QACtD,aAAa,EAAE,SAAS;QACxB,YAAY,EAAE,EAAE;KACjB,CAAC;IAEF,KAAoB,UAAO,EAAP,mBAAO,EAAP,qBAAO,EAAP,IAAO,EAAE;QAAxB,IAAM,KAAK,gBAAA;QACd,IAAI,eAAe,CAAC,KAAK,CAAC,EAAE;YAC1B,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE;gBAChB,MAAM,IAAI,KAAK,CAAC,wCAAsC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAG,CAAC,CAAC;aAChF;YACD,MAAM,CAAC,aAAa,GAAG,KAAK,CAAC,KAAK,CAAC;SACpC;aAAM;YACL,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACjC;KACF;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,eAAe,CAAC,UAAsB;IAC7C,OAAO,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,SAAS,CAAC;AACrD,CAAC"}
@@ -0,0 +1 @@
1
+ export default function (...args: any[]): void;
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var yargs = require("yargs");
4
+ var argv = yargs
5
+ .default('verbose', false).argv;
6
+ function default_1() {
7
+ var args = [];
8
+ for (var _i = 0; _i < arguments.length; _i++) {
9
+ args[_i] = arguments[_i];
10
+ }
11
+ if (argv.verbose) {
12
+ console.log.apply(console, args);
13
+ }
14
+ }
15
+ exports.default = default_1;
16
+ //# sourceMappingURL=logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../../ts/angular-components-generator/logger.ts"],"names":[],"mappings":";;AAAA,6BAA+B;AAEvB,IAAA,IAAI,GAAK,KAAK;KACnB,OAAO,CAAC,SAAS,EAAE,KAAK,CAAC,KADhB,CACiB;AAE7B;IAAyB,cAAO;SAAP,UAAO,EAAP,qBAAO,EAAP,IAAO;QAAP,yBAAO;;IAC9B,IAAI,IAAI,CAAC,OAAO,EAAE;QAChB,OAAO,CAAC,GAAG,OAAX,OAAO,EAAQ,IAAI,EAAE;KACtB;AACH,CAAC;AAJD,4BAIC"}
@@ -0,0 +1,27 @@
1
+ import { Metadata } from './metadata-model';
2
+ export interface IObjectStore {
3
+ read(name: string): Metadata;
4
+ write(name: string, data: Record<string, any>): void;
5
+ }
6
+ export declare class FSObjectStore implements IObjectStore {
7
+ private encoding;
8
+ read(filePath: any): any;
9
+ write(filePath: any, data: any): void;
10
+ }
11
+ export declare class ComponentMetadataGenerator {
12
+ private store?;
13
+ constructor(store?: IObjectStore);
14
+ generate(config: any): void;
15
+ private createEvent;
16
+ private getTypesDescription;
17
+ private getTypeParts;
18
+ private getObjectType;
19
+ private getEventType;
20
+ private getType;
21
+ private mergeArrayTypes;
22
+ private getExternalObjectInfo;
23
+ private generateComplexOptionByType;
24
+ private generateComplexOption;
25
+ private getBaseComponentPath;
26
+ private generateNestedOptions;
27
+ }
@@ -0,0 +1,490 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __rest = (this && this.__rest) || function (s, e) {
14
+ var t = {};
15
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
16
+ t[p] = s[p];
17
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
18
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
19
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
20
+ t[p[i]] = s[p[i]];
21
+ }
22
+ return t;
23
+ };
24
+ Object.defineProperty(exports, "__esModule", { value: true });
25
+ exports.ComponentMetadataGenerator = exports.FSObjectStore = void 0;
26
+ var fs = require("fs");
27
+ var path = require("path");
28
+ var mkdirp = require("mkdirp");
29
+ var merge = require("deepmerge");
30
+ var inflector = require("inflector-js");
31
+ var logger_1 = require("./logger");
32
+ var import_helper_1 = require("./import-helper");
33
+ var helpers_1 = require("./helpers");
34
+ var OPTION_COMPONENT_PREFIX = 'Dxo';
35
+ var ITEM_COMPONENT_PREFIX = 'Dxi';
36
+ var TYPES_SEPORATOR = ' | ';
37
+ function trimDx(value) {
38
+ return trimPrefix('dx-', value);
39
+ }
40
+ function trimPrefix(prefix, value) {
41
+ if (value.indexOf(prefix) === 0) {
42
+ return value.substr(prefix.length);
43
+ }
44
+ return value;
45
+ }
46
+ var FSObjectStore = (function () {
47
+ function FSObjectStore() {
48
+ this.encoding = 'utf8';
49
+ }
50
+ FSObjectStore.prototype.read = function (filePath) {
51
+ logger_1.default("Read from file: " + filePath);
52
+ var dataString = fs.readFileSync(filePath, { encoding: this.encoding });
53
+ logger_1.default('Parse data');
54
+ return JSON.parse(dataString);
55
+ };
56
+ FSObjectStore.prototype.write = function (filePath, data) {
57
+ logger_1.default("Write data to file " + filePath);
58
+ var dataString = JSON.stringify(data, null, 4);
59
+ fs.writeFileSync(filePath, dataString, { encoding: this.encoding });
60
+ };
61
+ return FSObjectStore;
62
+ }());
63
+ exports.FSObjectStore = FSObjectStore;
64
+ var ComponentMetadataGenerator = (function () {
65
+ function ComponentMetadataGenerator(store) {
66
+ this.store = store;
67
+ if (!this.store) {
68
+ this.store = new FSObjectStore();
69
+ }
70
+ }
71
+ ComponentMetadataGenerator.prototype.generate = function (config) {
72
+ var _a, _b;
73
+ var sourceMetadata = this.store.read(config.sourceMetadataFilePath);
74
+ var deprecatedMetadata = this.store.read(config.deprecatedMetadataFilePath);
75
+ var metadata = merge(sourceMetadata, deprecatedMetadata);
76
+ var widgetsMetadata = metadata.Widgets;
77
+ var allNestedComponents = [];
78
+ mkdirp.sync(config.outputFolderPath);
79
+ mkdirp.sync(path.join(config.outputFolderPath, config.nestedPathPart));
80
+ mkdirp.sync(path.join(config.outputFolderPath, config.nestedPathPart, config.basePathPart));
81
+ var _loop_1 = function (widgetName) {
82
+ var widget = widgetsMetadata[widgetName];
83
+ var nestedComponents = [];
84
+ if (!widget.Module) {
85
+ logger_1.default("Skipping metadata for " + widgetName);
86
+ return "continue";
87
+ }
88
+ logger_1.default("Generate metadata for " + widgetName);
89
+ var isTranscludedContent = widget.IsTranscludedContent;
90
+ var isViz = widget.Module.indexOf('viz') === 0;
91
+ var isExtension = widget.IsExtensionComponent || false;
92
+ var className = inflector.camelize(widgetName);
93
+ var dasherizedWidgetName = inflector.dasherize(inflector.underscore(widgetName));
94
+ var outputFilePath = path.join(config.outputFolderPath, trimDx(dasherizedWidgetName) + ".json");
95
+ var events = [];
96
+ var changeEvents = [];
97
+ var properties = [];
98
+ var isEditor = Object.keys(widget.Options).indexOf('onValueChanged') !== -1;
99
+ for (var optionName in widget.Options) {
100
+ var option = widget.Options[optionName];
101
+ if (option.IsEvent) {
102
+ var eventName = inflector.camelize(optionName.substr('on'.length), true);
103
+ var eventType = ((_a = option.TypeImports) === null || _a === void 0 ? void 0 : _a.length) ? option.TypeImports[0].Name : 'any';
104
+ events.push({
105
+ docID: option.DocID,
106
+ isDeprecated: option.IsDeprecated,
107
+ emit: optionName,
108
+ subscribe: eventName,
109
+ type: "EventEmitter<" + eventType + ">",
110
+ });
111
+ }
112
+ else {
113
+ var typesDescription = this_1.getTypesDescription(option);
114
+ var finalizedType = this_1.getType(typesDescription);
115
+ var property = {
116
+ docID: option.DocID,
117
+ isDeprecated: option.IsDeprecated,
118
+ name: optionName,
119
+ type: finalizedType,
120
+ typesDescription: typesDescription,
121
+ option: option,
122
+ };
123
+ if (!!option.IsCollection || !!option.IsDataSource) {
124
+ property.isCollection = true;
125
+ }
126
+ properties.push(property);
127
+ changeEvents.push(this_1.createEvent(optionName, finalizedType, option));
128
+ var components = this_1.generateComplexOptionByType(metadata, option, optionName, [], config);
129
+ nestedComponents = nestedComponents.concat.apply(nestedComponents, components);
130
+ }
131
+ }
132
+ var allEvents = events.concat(changeEvents);
133
+ if (isEditor) {
134
+ allEvents.push({ emit: 'onBlur', type: 'EventEmitter<any>' });
135
+ }
136
+ var widgetNestedComponents = nestedComponents
137
+ .reduce(function (result, component) {
138
+ if (result.filter(function (c) { return c.className === component.className; }).length === 0) {
139
+ result.push({
140
+ path: component.path,
141
+ propertyName: component.propertyName,
142
+ className: component.className,
143
+ events: component.events,
144
+ isCollection: component.isCollection,
145
+ hasTemplate: component.hasTemplate,
146
+ root: properties.filter(function (p) { return p.name === component.propertyName; }).length === 1 ? true : undefined,
147
+ });
148
+ }
149
+ return result;
150
+ }, []);
151
+ var containsReexports = !!((_b = widget.Reexports) === null || _b === void 0 ? void 0 : _b.filter(function (r) { return r !== 'default'; }).length);
152
+ var widgetMetadata = {
153
+ docID: widget.DocID,
154
+ isDeprecated: widget.IsDeprecated,
155
+ className: className,
156
+ widgetName: widgetName,
157
+ isTranscludedContent: isTranscludedContent,
158
+ isViz: isViz,
159
+ isExtension: isExtension,
160
+ selector: dasherizedWidgetName,
161
+ events: allEvents,
162
+ properties: properties,
163
+ isEditor: isEditor,
164
+ module: config.widgetPackageName + "/" + widget.Module,
165
+ packageName: config.wrapperPackageName,
166
+ imports: import_helper_1.buildImports(helpers_1.getValues(widget.Options), config.widgetPackageName),
167
+ nestedComponents: widgetNestedComponents,
168
+ optionsTypeParams: widget.OptionsTypeParams,
169
+ renderReexports: config.generateReexports && containsReexports,
170
+ };
171
+ logger_1.default("Write metadata to file " + outputFilePath);
172
+ this_1.store.write(outputFilePath, normalizeMeta(widgetMetadata));
173
+ allNestedComponents = allNestedComponents.concat.apply(allNestedComponents, nestedComponents);
174
+ };
175
+ var this_1 = this;
176
+ for (var widgetName in widgetsMetadata) {
177
+ _loop_1(widgetName);
178
+ }
179
+ this.generateNestedOptions(config, allNestedComponents);
180
+ };
181
+ ComponentMetadataGenerator.prototype.createEvent = function (name, type, option) {
182
+ return {
183
+ isInternal: true,
184
+ emit: name + "Change",
185
+ type: "EventEmitter<" + type + ">",
186
+ option: option,
187
+ };
188
+ };
189
+ ComponentMetadataGenerator.prototype.getTypesDescription = function (optionMetadata) {
190
+ var typeParts = this.getTypeParts(optionMetadata);
191
+ return {
192
+ primitiveTypes: typeParts.primitiveTypes,
193
+ arrayTypes: typeParts.arrayTypes,
194
+ };
195
+ };
196
+ ComponentMetadataGenerator.prototype.getTypeParts = function (optionMetadata) {
197
+ var primitiveTypes = optionMetadata.PrimitiveTypes ? optionMetadata.PrimitiveTypes.slice(0) : [];
198
+ var arrayTypes = [];
199
+ if (optionMetadata.ItemPrimitiveTypes) {
200
+ if (optionMetadata.IsPromise) {
201
+ var promiseType = optionMetadata.ItemPrimitiveTypes.join(TYPES_SEPORATOR);
202
+ primitiveTypes.push("Promise<" + promiseType + "> & JQueryPromise<" + promiseType + ">");
203
+ }
204
+ else {
205
+ arrayTypes = arrayTypes.concat(optionMetadata.ItemPrimitiveTypes);
206
+ }
207
+ }
208
+ if (optionMetadata.Options) {
209
+ var optionType = this.getObjectType(optionMetadata.Options);
210
+ if (optionType.length) {
211
+ (optionMetadata.IsCollection ? arrayTypes : primitiveTypes).push(optionType);
212
+ }
213
+ }
214
+ return ({ primitiveTypes: primitiveTypes, arrayTypes: arrayTypes });
215
+ };
216
+ ComponentMetadataGenerator.prototype.getObjectType = function (optionMetadata) {
217
+ var objectType = [];
218
+ for (var option in optionMetadata) {
219
+ var typeParts = this.getTypeParts(optionMetadata[option]);
220
+ var type = this.getType(typeParts);
221
+ objectType.push(option + "?: " + type);
222
+ }
223
+ if (objectType.length) {
224
+ return "{ " + objectType.join(', ') + " }";
225
+ }
226
+ return '';
227
+ };
228
+ ComponentMetadataGenerator.prototype.getEventType = function (typesDescription, option) {
229
+ var _a;
230
+ if (!((option === null || option === void 0 ? void 0 : option.IsEvent) && ((_a = option.TypeImports) === null || _a === void 0 ? void 0 : _a.length))) {
231
+ return this.getType(typesDescription);
232
+ }
233
+ return "((e: " + option.TypeImports[0].Name + ") => void)";
234
+ };
235
+ ComponentMetadataGenerator.prototype.getType = function (typesDescription) {
236
+ var primitiveTypes = typesDescription.primitiveTypes.slice(0);
237
+ var result = 'any';
238
+ if (typesDescription.arrayTypes.length) {
239
+ primitiveTypes.push("Array<" + typesDescription.arrayTypes.join(TYPES_SEPORATOR) + ">");
240
+ }
241
+ if (primitiveTypes.length) {
242
+ result = primitiveTypes.join(TYPES_SEPORATOR);
243
+ }
244
+ return result;
245
+ };
246
+ ComponentMetadataGenerator.prototype.mergeArrayTypes = function (array1, array2) {
247
+ var newTypes = array2.filter(function (type) { return array1.indexOf(type) === -1; });
248
+ return [].concat(array1, newTypes);
249
+ };
250
+ ComponentMetadataGenerator.prototype.getExternalObjectInfo = function (metadata, typeName) {
251
+ var externalObject = metadata.ExtraObjects[typeName];
252
+ if (!externalObject) {
253
+ var postfix = 'Options';
254
+ if (typeName.endsWith(postfix)) {
255
+ var widgetName = typeName.substr(0, typeName.length - postfix.length);
256
+ externalObject = metadata.Widgets[widgetName];
257
+ typeName = trimPrefix('dx', typeName);
258
+ }
259
+ }
260
+ if (!externalObject) {
261
+ console.warn("WARN: missed complex type: " + typeName);
262
+ }
263
+ else {
264
+ return {
265
+ Options: externalObject.Options,
266
+ typeName: typeName,
267
+ };
268
+ }
269
+ return undefined;
270
+ };
271
+ ComponentMetadataGenerator.prototype.generateComplexOptionByType = function (metadata, option, optionName, complexTypes, config) {
272
+ var _this = this;
273
+ var optionComplexTypes = option[option.IsCollection ? 'ItemComplexTypes' : 'ComplexTypes'];
274
+ if (option.Options) {
275
+ return this.generateComplexOption(metadata, option.Options, optionName, complexTypes, option, config);
276
+ }
277
+ if (optionComplexTypes && optionComplexTypes.length > 0) {
278
+ if (complexTypes.indexOf(complexTypes[complexTypes.length - 1]) !== complexTypes.length - 1) {
279
+ return undefined;
280
+ }
281
+ var result_1 = [];
282
+ optionComplexTypes.forEach(function (complexType) {
283
+ var externalObjectInfo = _this.getExternalObjectInfo(metadata, complexType);
284
+ if (externalObjectInfo) {
285
+ var nestedOptions = externalObjectInfo.Options;
286
+ var nestedComplexTypes = complexTypes.concat(externalObjectInfo.typeName);
287
+ result_1.push.apply(result_1, _this.generateComplexOption(metadata, nestedOptions, optionName, nestedComplexTypes, option, config));
288
+ }
289
+ });
290
+ if (optionComplexTypes.length === 1) {
291
+ var externalObjectInfo = this.getExternalObjectInfo(metadata, optionComplexTypes[0]);
292
+ if (externalObjectInfo) {
293
+ result_1[0].baseClass = (option.IsCollection ? ITEM_COMPONENT_PREFIX : OPTION_COMPONENT_PREFIX) + externalObjectInfo.typeName;
294
+ result_1[0].basePath = inflector.dasherize(inflector.underscore(externalObjectInfo.typeName));
295
+ }
296
+ }
297
+ return result_1;
298
+ }
299
+ return undefined;
300
+ };
301
+ ComponentMetadataGenerator.prototype.generateComplexOption = function (metadata, nestedOptions, optionName, complexTypes, option, config) {
302
+ var _a;
303
+ var _b;
304
+ if (!nestedOptions || !Object.keys(nestedOptions).length) {
305
+ return undefined;
306
+ }
307
+ var pluralName = optionName;
308
+ if (option.IsCollection) {
309
+ pluralName = option.SingularName + "Dxi";
310
+ }
311
+ var singularName = option.SingularName || pluralName;
312
+ var underscoreSingular = inflector.underscore(singularName).split('.').join('_');
313
+ var underscorePlural = inflector.underscore(pluralName).split('.').join('_');
314
+ var prefix = (option.IsCollection ? ITEM_COMPONENT_PREFIX : OPTION_COMPONENT_PREFIX).toLocaleLowerCase() + "_";
315
+ var underscoreSelector = prefix + (option.IsCollection ? underscoreSingular : underscorePlural);
316
+ var selector = inflector.dasherize(underscoreSelector);
317
+ var complexOptionMetadata = {
318
+ docID: option.DocID,
319
+ isDeprecated: option.IsDeprecated,
320
+ className: inflector.camelize(underscoreSelector),
321
+ selector: selector,
322
+ optionName: optionName,
323
+ properties: [],
324
+ events: [],
325
+ path: inflector.dasherize(underscorePlural),
326
+ propertyName: optionName,
327
+ isCollection: option.IsCollection,
328
+ hasTemplate: option.Options && option.Options.template && option.Options.template.IsTemplate,
329
+ collectionNestedComponents: [],
330
+ imports: [],
331
+ };
332
+ var nestedComponents = [complexOptionMetadata];
333
+ for (var optName in nestedOptions) {
334
+ var nestedOption = nestedOptions[optName];
335
+ var typesDescription = this.getTypesDescription(nestedOption);
336
+ var propertyType = this.getType(typesDescription);
337
+ if (nestedOption.IsEvent && nestedOption.IsEvent && ((_b = nestedOption.TypeImports) === null || _b === void 0 ? void 0 : _b.length)) {
338
+ propertyType = "((e: " + nestedOption.TypeImports[0].Name + ") => void)";
339
+ }
340
+ var property = {
341
+ docID: nestedOption.DocID,
342
+ isDeprecated: nestedOption.IsDeprecated,
343
+ name: optName,
344
+ type: propertyType,
345
+ typesDescription: typesDescription,
346
+ option: nestedOption,
347
+ };
348
+ if (nestedOption.IsCollection) {
349
+ property.isCollection = true;
350
+ }
351
+ complexOptionMetadata.properties.push(property);
352
+ if (nestedOption.IsChangeable || nestedOption.IsReadonly) {
353
+ complexOptionMetadata.events.push(this.createEvent(optName, propertyType, nestedOption));
354
+ }
355
+ var components = this.generateComplexOptionByType(metadata, nestedOptions[optName], optName, complexTypes, config) || [];
356
+ nestedComponents = nestedComponents.concat.apply(nestedComponents, components);
357
+ var ownCollectionNestedComponents = components
358
+ .filter(function (c) { return complexOptionMetadata
359
+ .properties
360
+ .filter(function (p) { return p.name === c.propertyName && p.isCollection; }).length === 1; })
361
+ .map(function (c) { return ({
362
+ className: c.className,
363
+ path: c.path,
364
+ propertyName: c.propertyName,
365
+ }); });
366
+ (_a = complexOptionMetadata.collectionNestedComponents).push.apply(_a, ownCollectionNestedComponents);
367
+ }
368
+ complexOptionMetadata.imports = import_helper_1.buildImports(helpers_1.getValues(nestedOptions), config.widgetPackageName);
369
+ return nestedComponents;
370
+ };
371
+ ComponentMetadataGenerator.prototype.getBaseComponentPath = function (component) {
372
+ return component.basePath + (component.isCollection ? '-dxi' : '');
373
+ };
374
+ ComponentMetadataGenerator.prototype.generateNestedOptions = function (config, metadata) {
375
+ var _this = this;
376
+ var normalizedMetadata = metadata
377
+ .reduce(function (result, component) {
378
+ var _a, _b, _c, _d;
379
+ var existingComponent = result.filter(function (c) { return c.className === component.className; })[0];
380
+ if (!existingComponent) {
381
+ component.options = component.properties.map(function (p) { return p.option; });
382
+ result.push(component);
383
+ }
384
+ else {
385
+ existingComponent.properties = (_a = existingComponent.properties)
386
+ .concat.apply(_a, component.properties).reduce(function (properties, property) {
387
+ var _a;
388
+ if (properties.filter(function (p) { return p.name === property.name; }).length === 0) {
389
+ properties.push(property);
390
+ }
391
+ else {
392
+ var existingProperty = properties.filter(function (p) { return p.name === property.name; })[0];
393
+ var typesDescription = existingProperty.typesDescription;
394
+ typesDescription.primitiveTypes = _this.mergeArrayTypes(typesDescription.primitiveTypes, property.typesDescription.primitiveTypes);
395
+ typesDescription.arrayTypes = _this.mergeArrayTypes(typesDescription.arrayTypes, property.typesDescription.arrayTypes);
396
+ existingProperty.type = ((_a = existingProperty.option) === null || _a === void 0 ? void 0 : _a.IsEvent)
397
+ ? _this.getEventType(typesDescription, existingProperty.option)
398
+ : _this.getType(typesDescription);
399
+ }
400
+ return properties;
401
+ }, []);
402
+ existingComponent.events = (_b = existingComponent.events)
403
+ .concat.apply(_b, component.events).reduce(function (events, event) {
404
+ if (events.filter(function (e) { return e.emit === event.emit; }).length === 0) {
405
+ events.push(event);
406
+ }
407
+ return events;
408
+ }, []);
409
+ existingComponent.baseClass = existingComponent.baseClass || component.baseClass;
410
+ existingComponent.basePath = existingComponent.basePath || component.basePath;
411
+ (_c = existingComponent.collectionNestedComponents).push.apply(_c, component.collectionNestedComponents);
412
+ (_d = existingComponent.options).push.apply(_d, component.properties.map(function (p) { return p.option; }));
413
+ }
414
+ return result;
415
+ }, []);
416
+ normalizedMetadata.forEach(function (component) {
417
+ component.collectionNestedComponents = component.collectionNestedComponents
418
+ .reduce(function (result, nestedComponent) {
419
+ if (result.filter(function (c) { return nestedComponent.className === c.className; }).length === 0) {
420
+ result.push(nestedComponent);
421
+ }
422
+ return result;
423
+ }, []);
424
+ });
425
+ normalizedMetadata
426
+ .reduce(function (result, component) {
427
+ var existingComponent = result.filter(function (c) { return c.className === component.baseClass; })[0];
428
+ if (!existingComponent && component.baseClass) {
429
+ var nestedComponent = {
430
+ properties: component.properties,
431
+ events: component.events,
432
+ className: component.baseClass,
433
+ path: _this.getBaseComponentPath(component),
434
+ baseClass: component.isCollection ? 'CollectionNestedOption' : 'NestedOption',
435
+ basePath: 'devextreme-angular/core',
436
+ imports: import_helper_1.buildImports(component.options, config.widgetPackageName),
437
+ };
438
+ result.push(nestedComponent);
439
+ }
440
+ return result;
441
+ }, [])
442
+ .forEach(function (component) {
443
+ var outputFilePath = path.join(config.outputFolderPath, config.nestedPathPart, config.basePathPart, component.path + ".json");
444
+ _this.store.write(outputFilePath, normalizeMeta(component));
445
+ });
446
+ normalizedMetadata
447
+ .map(function (component) {
448
+ if (component.events && !component.events.length) {
449
+ delete component.events;
450
+ }
451
+ if (component.baseClass) {
452
+ component.inputs = component.properties;
453
+ delete component.properties;
454
+ component.basePath = "./base/" + _this.getBaseComponentPath(component);
455
+ component.imports = component.events
456
+ ? component.imports = import_helper_1.buildImports(component.events.map(function (e) { return e.option; }), config.widgetPackageName)
457
+ : undefined;
458
+ }
459
+ else {
460
+ component.baseClass = component.isCollection ? 'CollectionNestedOption' : 'NestedOption';
461
+ component.basePath = 'devextreme-angular/core';
462
+ component.hasSimpleBaseClass = true;
463
+ component.imports = import_helper_1.buildImports(component.options, config.widgetPackageName);
464
+ }
465
+ return component;
466
+ })
467
+ .forEach(function (component) {
468
+ var outputFilePath = path.join(config.outputFolderPath, config.nestedPathPart, component.path + ".json");
469
+ _this.store.write(outputFilePath, normalizeMeta(component));
470
+ });
471
+ };
472
+ return ComponentMetadataGenerator;
473
+ }());
474
+ exports.ComponentMetadataGenerator = ComponentMetadataGenerator;
475
+ function normalizeMeta(meta) {
476
+ var result = __assign(__assign({}, meta), { properties: meta.properties && meta.properties.map(function (_a) {
477
+ var option = _a.option, rest = __rest(_a, ["option"]);
478
+ return (__assign({}, rest));
479
+ }), events: meta.events && meta.events.map(function (_a) {
480
+ var option = _a.option, rest = __rest(_a, ["option"]);
481
+ return (__assign({}, rest));
482
+ }) });
483
+ if (!result.imports || !result.imports.length) {
484
+ result.imports = undefined;
485
+ delete result.imports;
486
+ }
487
+ logger_1.default(result);
488
+ return result;
489
+ }
490
+ //# sourceMappingURL=metadata-generator.js.map