devextreme-internal-tools 12.0.0-beta.1 → 12.0.0-beta.2
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.
- package/bin/DevExtreme.Declarations.Discoverer.dll +0 -0
- package/bin/DevExtreme.Declarations.Discoverer.exe +0 -0
- package/bin/DevExtreme.Declarations.IntegrityValidator.dll +0 -0
- package/bin/DevExtreme.Declarations.IntegrityValidator.exe +0 -0
- package/bin/DevExtreme.Declarations.dll +0 -0
- package/bin/DevExtreme.Descriptions.Injector.dll +0 -0
- package/bin/DevExtreme.Descriptions.Injector.exe +0 -0
- package/bin/DevExtreme.Infrastructure.dll +0 -0
- package/bin/DevExtreme.IntegrationDataGenerator.dll +0 -0
- package/bin/DevExtreme.IntegrationDataGenerator.exe +0 -0
- package/bin/DevExtreme.NgSmdGenerator.dll +0 -0
- package/bin/DevExtreme.NgSmdGenerator.exe +0 -0
- package/bin/DevExtreme.SmdCommon.dll +0 -0
- package/bin/DevExtreme.StrongMetaDataGenerator.dll +0 -0
- package/bin/DevExtreme.StrongMetaDataGenerator.exe +0 -0
- package/bin/DevExtreme.Topics.ExtraFilesGenerator.dll +0 -0
- package/bin/DevExtreme.Topics.ExtraFilesGenerator.exe +0 -0
- package/bin/DevExtreme.Topics.Generator.dll +0 -0
- package/bin/DevExtreme.Topics.Generator.exe +0 -0
- package/bin/DevExtreme.Topics.ModulesGuideValidator.dll +0 -0
- package/bin/DevExtreme.Topics.ModulesGuideValidator.exe +0 -0
- package/bin/DevExtreme.Topics.Validation.dll +0 -0
- package/bin/DevExtreme.Topics.Validation.exe +0 -0
- package/bin/DevExtreme.Topics.dll +0 -0
- package/bin/DevExtreme.WebSite.ContentMapCreator.dll +0 -0
- package/bin/DevExtreme.WebSite.ContentMapCreator.exe +0 -0
- package/bin/DevExtreme.WebSite.LinksConverter.dll +0 -0
- package/bin/DevExtreme.WebSite.LinksConverter.exe +0 -0
- package/bin/DevExtreme.WebSite.SyntaxDataGenerator.dll +0 -0
- package/bin/DevExtreme.WebSite.SyntaxDataGenerator.exe +0 -0
- package/cli.d.ts +2 -0
- package/cli.js +50 -0
- package/cli.js.map +1 -0
- package/index.d.ts +9 -0
- package/index.js +18 -47
- package/index.js.map +1 -1
- package/integration-data-model.d.ts +76 -0
- package/integration-data-model.js +3 -0
- package/integration-data-model.js.map +1 -0
- package/package.json +17 -9
- package/ts/angular-components-generator/common-reexports-generator.d.ts +4 -0
- package/ts/angular-components-generator/common-reexports-generator.js +36 -0
- package/ts/angular-components-generator/common-reexports-generator.js.map +1 -0
- package/ts/angular-components-generator/component-names-generator.d.ts +8 -0
- package/ts/angular-components-generator/component-names-generator.js +31 -0
- package/ts/angular-components-generator/component-names-generator.js.map +1 -0
- package/ts/angular-components-generator/dot-generator.d.ts +8 -0
- package/ts/angular-components-generator/dot-generator.js +86 -0
- package/ts/angular-components-generator/dot-generator.js.map +1 -0
- package/ts/angular-components-generator/facade-generator.d.ts +4 -0
- package/ts/angular-components-generator/facade-generator.js +45 -0
- package/ts/angular-components-generator/facade-generator.js.map +1 -0
- package/ts/angular-components-generator/helpers.d.ts +2 -0
- package/ts/angular-components-generator/helpers.js +12 -0
- package/ts/angular-components-generator/helpers.js.map +1 -0
- package/ts/angular-components-generator/import-helper.d.ts +6 -0
- package/ts/angular-components-generator/import-helper.js +73 -0
- package/ts/angular-components-generator/import-helper.js.map +1 -0
- package/ts/angular-components-generator/logger.d.ts +1 -0
- package/ts/angular-components-generator/logger.js +16 -0
- package/ts/angular-components-generator/logger.js.map +1 -0
- package/ts/angular-components-generator/metadata-generator.d.ts +27 -0
- package/ts/angular-components-generator/metadata-generator.js +490 -0
- package/ts/angular-components-generator/metadata-generator.js.map +1 -0
- package/ts/angular-components-generator/metadata-model.d.ts +48 -0
- package/ts/angular-components-generator/metadata-model.js +3 -0
- package/ts/angular-components-generator/metadata-model.js.map +1 -0
- package/ts/angular-components-generator/module-facade-generator.d.ts +5 -0
- package/ts/angular-components-generator/module-facade-generator.js +50 -0
- package/ts/angular-components-generator/module-facade-generator.js.map +1 -0
- package/ts/angular-components-generator/templates/base-nested-component.tst +20 -0
- package/ts/angular-components-generator/templates/component.tst +251 -0
- package/ts/angular-components-generator/templates/nested-component.tst +140 -0
- package/ts/bundler/bundler.d.ts +6 -0
- package/ts/collapser/collapser.d.ts +4 -0
- package/ts/common/common-resolving.d.ts +11 -0
- package/ts/common/id.d.ts +12 -0
- package/ts/common/tags/comparing.d.ts +3 -0
- package/ts/common/tags/generating.d.ts +4 -0
- package/ts/common/tags/merging.d.ts +12 -0
- package/ts/common/tags/parameter-field-tag.d.ts +7 -0
- package/ts/common/tags.d.ts +12 -0
- package/ts/common/ts-type-resolving.d.ts +16 -0
- package/ts/common/ts-utils.d.ts +31 -0
- package/ts/common/type-resolving.d.ts +42 -0
- package/ts/common/utils.d.ts +22 -0
- package/ts/component-exports-generator/generator.d.ts +3 -0
- package/ts/discoverer/data-model.d.ts +105 -0
- package/ts/discoverer/discovering-error.d.ts +4 -0
- package/ts/discoverer/discovering.d.ts +4 -0
- package/ts/discoverer/parsing/enum-collecting.d.ts +6 -0
- package/ts/discoverer/parsing/file-reader.d.ts +2 -0
- package/ts/discoverer/parsing/widget-parsing.d.ts +11 -0
- package/ts/discoverer/parsing.d.ts +29 -0
- package/ts/discoverer/types.d.ts +20 -0
- package/ts/logging.d.ts +16 -0
- package/ts/modules-meta-generator/modules-meta-generator.d.ts +3 -0
- package/ts/react-components-generator/common-reexports-generator.d.ts +2 -0
- package/ts/react-components-generator/common-reexports-generator.js +10 -0
- package/ts/react-components-generator/common-reexports-generator.js.map +1 -0
- package/ts/react-components-generator/component-generator.d.ts +62 -0
- package/ts/react-components-generator/component-generator.js +407 -0
- package/ts/react-components-generator/component-generator.js.map +1 -0
- package/ts/react-components-generator/converter.d.ts +3 -0
- package/ts/react-components-generator/converter.js +59 -0
- package/ts/react-components-generator/converter.js.map +1 -0
- package/ts/react-components-generator/generator.d.ts +60 -0
- package/ts/react-components-generator/generator.js +383 -0
- package/ts/react-components-generator/generator.js.map +1 -0
- package/ts/react-components-generator/helpers.d.ts +11 -0
- package/ts/react-components-generator/helpers.js +53 -0
- package/ts/react-components-generator/helpers.js.map +1 -0
- package/ts/react-components-generator/import-overrides.json +109 -0
- package/ts/react-components-generator/index-generator.d.ts +7 -0
- package/ts/react-components-generator/index-generator.js +10 -0
- package/ts/react-components-generator/index-generator.js.map +1 -0
- package/ts/react-components-generator/template.d.ts +10 -0
- package/ts/react-components-generator/template.js +43 -0
- package/ts/react-components-generator/template.js.map +1 -0
- package/ts/scripts/args.d.ts +37 -0
- package/ts/scripts/helpers.d.ts +10 -0
- package/ts/scripts/tools.d.ts +17 -0
- package/ts/vue-components-generator/common-reexports-generator.d.ts +2 -0
- package/ts/vue-components-generator/common-reexports-generator.js +10 -0
- package/ts/vue-components-generator/common-reexports-generator.js.map +1 -0
- package/ts/vue-components-generator/component-generator.d.ts +40 -0
- package/ts/vue-components-generator/component-generator.js +197 -0
- package/ts/vue-components-generator/component-generator.js.map +1 -0
- package/ts/vue-components-generator/converter.d.ts +3 -0
- package/ts/vue-components-generator/converter.js +45 -0
- package/ts/vue-components-generator/converter.js.map +1 -0
- package/ts/vue-components-generator/generator.d.ts +11 -0
- package/ts/vue-components-generator/generator.js +126 -0
- package/ts/vue-components-generator/generator.js.map +1 -0
- package/ts/vue-components-generator/helpers.d.ts +6 -0
- package/ts/vue-components-generator/helpers.js +30 -0
- package/ts/vue-components-generator/helpers.js.map +1 -0
- package/ts/vue-components-generator/index-generator.d.ts +7 -0
- package/ts/vue-components-generator/index-generator.js +9 -0
- package/ts/vue-components-generator/index-generator.js.map +1 -0
- package/ts/vue-components-generator/template.d.ts +11 -0
- package/ts/vue-components-generator/template.js +45 -0
- package/ts/vue-components-generator/template.js.map +1 -0
- package/bin/integration-data-model.ts +0 -86
- package/bin/internal-tools-log.txt +0 -21
- package/integration-data-model.ts +0 -86
- package/ts/discoverer/parsing/file-reader.tests.js +0 -24
- 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,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,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":"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"}
|
@@ -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
|