1 | "use strict";
|
2 | var __assign = (this && this.__assign) || Object.assign || function(t) {
|
3 | for (var s, i = 1, n = arguments.length; i < n; i++) {
|
4 | s = arguments[i];
|
5 | for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
6 | t[p] = s[p];
|
7 | }
|
8 | return t;
|
9 | };
|
10 | Object.defineProperty(exports, "__esModule", { value: true });
|
11 | var c_sharp_objects_1 = require("./c-sharp-objects");
|
12 | var c_sharp_parser_1 = require("./c-sharp-parser");
|
13 | var options_1 = require("./options");
|
14 | var generate_enum_1 = require("./generate-enum");
|
15 | var generate_filter_1 = require("./generate-filter");
|
16 | var generate_interface_1 = require("./generate-interface");
|
17 | var dtoFilterRegex = /DtoFilter<(?:Dmn\.)?([\w]+)/;
|
18 | var primaryDtoFilterRegex = /PrimaryDtoFilter<(?:Dmn\.)?([\w]+)/;
|
19 | var elasticDtoFilterRegex = /ElasticDtoFilter<(?:Dmn\.)?([\w]+)/;
|
20 | var bypassElasticDtoFilterRegex = /BypassElasticDtoFilter<(?:Dmn\.)?([\w]+)/;
|
21 | function tsgen(input, options) {
|
22 | if (options === void 0) { options = null; }
|
23 | var results = [];
|
24 | options = __assign({}, options_1.defaultOptions, options);
|
25 | var types = c_sharp_parser_1.CSharpParser.parse(input);
|
26 | for (var _i = 0, types_1 = types; _i < types_1.length; _i++) {
|
27 | var type = types_1[_i];
|
28 | var dtoFilterMatch = type.inherits
|
29 | .filter(function (inherit) { return inherit.match(primaryDtoFilterRegex) === null; })
|
30 | .filter(function (inherit) { return inherit.match(elasticDtoFilterRegex) === null; })
|
31 | .filter(function (inherit) { return inherit.match(bypassElasticDtoFilterRegex) === null; })
|
32 | .map(function (inherit) { return inherit.match(dtoFilterRegex); })
|
33 | .find(function (match) { return match !== null; });
|
34 | var primaryDtoFilterMatch = type.inherits
|
35 | .map(function (inherit) { return inherit.match(primaryDtoFilterRegex); })
|
36 | .find(function (match) { return match !== null; });
|
37 | var elasticDtoFilterMatch = type.inherits
|
38 | .filter(function (inherit) { return inherit.match(bypassElasticDtoFilterRegex) === null; })
|
39 | .map(function (inherit) { return inherit.match(elasticDtoFilterRegex); })
|
40 | .find(function (match) { return match !== null; });
|
41 | var bypassElasticDtoFilterMatch = type.inherits
|
42 | .map(function (inherit) { return inherit.match(bypassElasticDtoFilterRegex); })
|
43 | .find(function (match) { return match !== null; });
|
44 | var isFilter = type.inherits.some(function (inherit) { return inherit.includes('Filter'); });
|
45 | if (type instanceof c_sharp_objects_1.CSharpEnum) {
|
46 | results.push(generate_enum_1.generateEnum(type));
|
47 | }
|
48 | else if (dtoFilterMatch && !primaryDtoFilterMatch) {
|
49 | results.push(generate_filter_1.generateFilter(type, options, 'Filter', dtoFilterMatch[1]));
|
50 | }
|
51 | else if (dtoFilterMatch && primaryDtoFilterMatch) {
|
52 | results.push(generate_filter_1.generateFilter(type, options, 'Filter', dtoFilterMatch[1]));
|
53 | results.push(generate_filter_1.generateFilter(type, options, 'PrimaryFilter', dtoFilterMatch[1]));
|
54 | }
|
55 | else if (primaryDtoFilterMatch) {
|
56 | results.push(generate_filter_1.generateFilter(type, options, 'PrimaryFilter', primaryDtoFilterMatch[1]));
|
57 | }
|
58 | else if (elasticDtoFilterMatch) {
|
59 | results.push(generate_filter_1.generateFilter(type, options, 'ElasticFilter', elasticDtoFilterMatch[1]));
|
60 | }
|
61 | else if (bypassElasticDtoFilterMatch) {
|
62 | results.push(generate_filter_1.generateFilter(type, options, 'BypassElasticFilter', bypassElasticDtoFilterMatch[1]));
|
63 | }
|
64 | else if (isFilter === false) {
|
65 | results.push(generate_interface_1.generateInterface(type, options));
|
66 | }
|
67 | }
|
68 | return results.join('\n\n');
|
69 | }
|
70 | exports.tsgen = tsgen;
|
71 |
|
\ | No newline at end of file |