UNPKG

3.9 kBJavaScriptView Raw
1"use strict";
2var __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};
10Object.defineProperty(exports, "__esModule", { value: true });
11var c_sharp_objects_1 = require("./c-sharp-objects");
12var c_sharp_parser_1 = require("./c-sharp-parser");
13var options_1 = require("./options");
14var generate_enum_1 = require("./generate-enum");
15var generate_filter_1 = require("./generate-filter");
16var generate_interface_1 = require("./generate-interface");
17var dtoFilterRegex = /DtoFilter<(?:Dmn\.)?([\w]+)/;
18var primaryDtoFilterRegex = /PrimaryDtoFilter<(?:Dmn\.)?([\w]+)/;
19var elasticDtoFilterRegex = /ElasticDtoFilter<(?:Dmn\.)?([\w]+)/;
20var bypassElasticDtoFilterRegex = /BypassElasticDtoFilter<(?:Dmn\.)?([\w]+)/;
21function 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}
70exports.tsgen = tsgen;
71//# sourceMappingURL=tsgen.js.map
\No newline at end of file