UNPKG

1.4 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3var utility_1 = require("./utility");
4function 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}
32exports.generateInterface = generateInterface;
33//# sourceMappingURL=generate-interface.js.map
\No newline at end of file