1 | "use strict";
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | var utility_1 = require("./utility");
|
4 | function generateInterface(type, options) {
|
5 | 'use strict';
|
6 | var baseClass;
|
7 | if (type.inherits) {
|
8 | var baseClasses = type.inherits
|
9 | .filter(function (i) { return i && i.length && i[0] !== 'I'; });
|
10 | baseClass = baseClasses.length === 1 ? baseClasses[0] : '';
|
11 | }
|
12 | var tsExtends = baseClass ? " extends " + baseClass : '';
|
13 | var propertyStrings = [];
|
14 | for (var _i = 0, _a = type.properties; _i < _a.length; _i++) {
|
15 | var property = _a[_i];
|
16 | var tsPropertyName = utility_1.Utility.transfromPropertyName(property.name);
|
17 | if (property.type.isNullable || (options.allPropertiesOptional && tsPropertyName !== 'id')) {
|
18 | tsPropertyName += '?';
|
19 | }
|
20 | var tsType = utility_1.Utility.translateType(property.type.name, options) || property.type.name;
|
21 | if (property.type.isCollection) {
|
22 | tsType += '[]';
|
23 | }
|
24 | propertyStrings.push(tsPropertyName + ": " + tsType);
|
25 | }
|
26 | var properties = '';
|
27 | if (type.properties.length > 0) {
|
28 | properties = " " + propertyStrings.join(';\n ') + ";\n";
|
29 | }
|
30 | return "export interface " + type.name + tsExtends + " {\n" + properties + "}";
|
31 | }
|
32 | exports.generateInterface = generateInterface;
|
33 |
|
\ | No newline at end of file |