@opra/cli 1.19.7 → 1.21.0
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/cjs/ts-generator/generators/generate-data-type.js +104 -53
- package/cjs/ts-generator/ts-generator.js +4 -2
- package/esm/ts-generator/generators/generate-data-type.js +100 -51
- package/esm/ts-generator/ts-generator.js +5 -3
- package/package.json +4 -4
- package/types/ts-generator/generators/generate-data-type.d.ts +12 -4
- package/types/ts-generator/ts-generator.d.ts +5 -3
|
@@ -2,11 +2,13 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.generateDataType = generateDataType;
|
|
4
4
|
exports._generateTypeCode = _generateTypeCode;
|
|
5
|
-
exports.
|
|
5
|
+
exports._generateArrayTypeCode = _generateArrayTypeCode;
|
|
6
6
|
exports._generateComplexTypeCode = _generateComplexTypeCode;
|
|
7
|
-
exports.
|
|
8
|
-
exports._generateMixinTypeCode = _generateMixinTypeCode;
|
|
7
|
+
exports._generateEnumTypeCode = _generateEnumTypeCode;
|
|
9
8
|
exports._generateMappedTypeCode = _generateMappedTypeCode;
|
|
9
|
+
exports._generateMixinTypeCode = _generateMixinTypeCode;
|
|
10
|
+
exports._generateSimpleTypeCode = _generateSimpleTypeCode;
|
|
11
|
+
exports._generateUnionTypeCode = _generateUnionTypeCode;
|
|
10
12
|
const tslib_1 = require("tslib");
|
|
11
13
|
const node_path_1 = tslib_1.__importDefault(require("node:path"));
|
|
12
14
|
const common_1 = require("@opra/common");
|
|
@@ -85,14 +87,14 @@ async function _generateTypeCode(currentFile, dataType, intent) {
|
|
|
85
87
|
if (intent === 'root' && !dataType.name) {
|
|
86
88
|
throw new TypeError(`Name required to generate data type code to root intent`);
|
|
87
89
|
}
|
|
88
|
-
if (dataType instanceof common_1.
|
|
89
|
-
return await this.
|
|
90
|
+
if (dataType instanceof common_1.ArrayType) {
|
|
91
|
+
return await this._generateArrayTypeCode(currentFile, dataType, intent);
|
|
90
92
|
}
|
|
91
93
|
if (dataType instanceof common_1.ComplexType) {
|
|
92
94
|
return await this._generateComplexTypeCode(currentFile, dataType, intent);
|
|
93
95
|
}
|
|
94
|
-
if (dataType instanceof common_1.
|
|
95
|
-
return await this.
|
|
96
|
+
if (dataType instanceof common_1.EnumType) {
|
|
97
|
+
return await this._generateEnumTypeCode(currentFile, dataType, intent);
|
|
96
98
|
}
|
|
97
99
|
if (dataType instanceof common_1.MappedType) {
|
|
98
100
|
return await this._generateMappedTypeCode(currentFile, dataType, intent);
|
|
@@ -100,36 +102,34 @@ async function _generateTypeCode(currentFile, dataType, intent) {
|
|
|
100
102
|
if (dataType instanceof common_1.MixinType) {
|
|
101
103
|
return await this._generateMixinTypeCode(currentFile, dataType, intent);
|
|
102
104
|
}
|
|
105
|
+
if (dataType instanceof common_1.SimpleType) {
|
|
106
|
+
return await this._generateSimpleTypeCode(currentFile, dataType, intent);
|
|
107
|
+
}
|
|
108
|
+
if (dataType instanceof common_1.UnionType) {
|
|
109
|
+
return await this._generateUnionTypeCode(currentFile, dataType, intent);
|
|
110
|
+
}
|
|
103
111
|
/* istanbul ignore next */
|
|
104
112
|
throw new TypeError(`${dataType.kind} data types can not be directly exported`);
|
|
105
113
|
}
|
|
106
114
|
/**
|
|
107
115
|
*
|
|
108
116
|
*/
|
|
109
|
-
async function
|
|
110
|
-
if (intent === '
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
out +=
|
|
120
|
-
`${info.alias || value} = ` +
|
|
121
|
-
(typeof value === 'number'
|
|
122
|
-
? value
|
|
123
|
-
: "'" + String(value).replace("'", "\\'") + "'");
|
|
124
|
-
out += ',\n\n';
|
|
125
|
-
}
|
|
126
|
-
return out + '\b}';
|
|
117
|
+
async function _generateArrayTypeCode(currentFile, dataType, intent) {
|
|
118
|
+
if (intent === 'extends')
|
|
119
|
+
throw new TypeError('Array types can not be extended');
|
|
120
|
+
let out = '';
|
|
121
|
+
const x = await this.generateDataType(dataType.type, 'typeDef', currentFile);
|
|
122
|
+
if (x.kind === 'embedded') {
|
|
123
|
+
out =
|
|
124
|
+
x.code.includes('|') || x.code.includes('&')
|
|
125
|
+
? '(' + x.code + ')'
|
|
126
|
+
: x.code;
|
|
127
127
|
}
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
128
|
+
else
|
|
129
|
+
out = x.typeName;
|
|
130
|
+
if (intent === 'root')
|
|
131
|
+
return `type ${dataType.name} = ${out}[]`;
|
|
132
|
+
return `${out}[]`;
|
|
133
133
|
}
|
|
134
134
|
/**
|
|
135
135
|
*
|
|
@@ -189,7 +189,7 @@ async function _generateComplexTypeCode(currentFile, dataType, intent) {
|
|
|
189
189
|
const x = await this.generateDataType(field.type, 'typeDef', currentFile);
|
|
190
190
|
typ = x.kind === 'embedded' ? x.code : x.typeName;
|
|
191
191
|
}
|
|
192
|
-
if (field.isArray) {
|
|
192
|
+
if (field.isArray && !(field.type instanceof common_1.ArrayType)) {
|
|
193
193
|
out += /[a-zA-Z]\w*/.test(typ) ? typ + '[];\n' : '(' + typ + ')[];\n';
|
|
194
194
|
}
|
|
195
195
|
else
|
|
@@ -202,30 +202,30 @@ async function _generateComplexTypeCode(currentFile, dataType, intent) {
|
|
|
202
202
|
/**
|
|
203
203
|
*
|
|
204
204
|
*/
|
|
205
|
-
async function
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
*
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
205
|
+
async function _generateEnumTypeCode(currentFile, dataType, intent) {
|
|
206
|
+
if (intent === 'root') {
|
|
207
|
+
let out = `enum ${dataType.name} {\n\t`;
|
|
208
|
+
for (const [value, info] of Object.entries(dataType.attributes)) {
|
|
209
|
+
// Print JSDoc
|
|
210
|
+
let jsDoc = '';
|
|
211
|
+
if (dataType.attributes[value].description)
|
|
212
|
+
jsDoc += ` * ${dataType.attributes[value].description}\n`;
|
|
213
|
+
if (jsDoc)
|
|
214
|
+
out += `/**\n${jsDoc} */\n`;
|
|
215
|
+
out +=
|
|
216
|
+
`${info.alias || value} = ` +
|
|
217
|
+
(typeof value === 'number'
|
|
218
|
+
? value
|
|
219
|
+
: "'" + String(value).replace("'", "\\'") + "'");
|
|
220
|
+
out += ',\n\n';
|
|
220
221
|
}
|
|
221
|
-
|
|
222
|
-
outArray.push(x.typeName);
|
|
222
|
+
return out + '\b}';
|
|
223
223
|
}
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
224
|
+
return ('(' +
|
|
225
|
+
Object.keys(dataType.attributes)
|
|
226
|
+
.map(t => `'${t}'`)
|
|
227
|
+
.join(' | ') +
|
|
228
|
+
')');
|
|
229
229
|
}
|
|
230
230
|
/**
|
|
231
231
|
*
|
|
@@ -285,3 +285,54 @@ async function _generateMappedTypeCode(currentFile, dataType, intent) {
|
|
|
285
285
|
}
|
|
286
286
|
return out;
|
|
287
287
|
}
|
|
288
|
+
/**
|
|
289
|
+
*
|
|
290
|
+
*/
|
|
291
|
+
async function _generateMixinTypeCode(currentFile, dataType, intent) {
|
|
292
|
+
const outArray = [];
|
|
293
|
+
for (const t of dataType.types) {
|
|
294
|
+
const x = await this.generateDataType(t, 'typeDef', currentFile);
|
|
295
|
+
if (x.kind === 'embedded') {
|
|
296
|
+
outArray.push(x.code.includes('|') || x.code.includes('&')
|
|
297
|
+
? '(' + x.code + ')'
|
|
298
|
+
: x.code);
|
|
299
|
+
}
|
|
300
|
+
else
|
|
301
|
+
outArray.push(x.typeName);
|
|
302
|
+
}
|
|
303
|
+
if (intent === 'root')
|
|
304
|
+
return `type ${dataType.name} = ${outArray.join(' & ')}`;
|
|
305
|
+
if (intent === 'extends')
|
|
306
|
+
return outArray.join(', ');
|
|
307
|
+
return outArray.join(' & ');
|
|
308
|
+
}
|
|
309
|
+
/**
|
|
310
|
+
*
|
|
311
|
+
*/
|
|
312
|
+
async function _generateSimpleTypeCode(currentFile, dataType, intent) {
|
|
313
|
+
let out = intent === 'root' ? `type ${dataType.name} = ` : '';
|
|
314
|
+
const nameMapping = dataType.nameMappings.js || 'any';
|
|
315
|
+
out += nameMapping === 'Date' ? 'string' : nameMapping;
|
|
316
|
+
return intent === 'root' ? out + ';' : out;
|
|
317
|
+
}
|
|
318
|
+
/**
|
|
319
|
+
*
|
|
320
|
+
*/
|
|
321
|
+
async function _generateUnionTypeCode(currentFile, dataType, intent) {
|
|
322
|
+
if (intent === 'extends')
|
|
323
|
+
throw new TypeError('Union types can not be extended');
|
|
324
|
+
const outArray = [];
|
|
325
|
+
for (const t of dataType.types) {
|
|
326
|
+
const x = await this.generateDataType(t, 'typeDef', currentFile);
|
|
327
|
+
if (x.kind === 'embedded') {
|
|
328
|
+
outArray.push(x.code.includes('|') || x.code.includes('&')
|
|
329
|
+
? '(' + x.code + ')'
|
|
330
|
+
: x.code);
|
|
331
|
+
}
|
|
332
|
+
else
|
|
333
|
+
outArray.push(x.typeName);
|
|
334
|
+
}
|
|
335
|
+
if (intent === 'root')
|
|
336
|
+
return `type ${dataType.name} = ${outArray.join(' | ')}`;
|
|
337
|
+
return outArray.join(' | ');
|
|
338
|
+
}
|
|
@@ -105,11 +105,13 @@ exports.TsGenerator = TsGenerator;
|
|
|
105
105
|
TsGenerator.prototype.generateDocument = generate_document_js_1.generateDocument;
|
|
106
106
|
TsGenerator.prototype.generateDataType = generate_data_type_js_1.generateDataType;
|
|
107
107
|
TsGenerator.prototype._generateTypeCode = generate_data_type_js_1._generateTypeCode;
|
|
108
|
-
TsGenerator.prototype.
|
|
108
|
+
TsGenerator.prototype._generateArrayTypeCode = generate_data_type_js_1._generateArrayTypeCode;
|
|
109
109
|
TsGenerator.prototype._generateComplexTypeCode = generate_data_type_js_1._generateComplexTypeCode;
|
|
110
|
-
TsGenerator.prototype.
|
|
110
|
+
TsGenerator.prototype._generateEnumTypeCode = generate_data_type_js_1._generateEnumTypeCode;
|
|
111
111
|
TsGenerator.prototype._generateMappedTypeCode = generate_data_type_js_1._generateMappedTypeCode;
|
|
112
112
|
TsGenerator.prototype._generateMixinTypeCode = generate_data_type_js_1._generateMixinTypeCode;
|
|
113
|
+
TsGenerator.prototype._generateSimpleTypeCode = generate_data_type_js_1._generateSimpleTypeCode;
|
|
114
|
+
TsGenerator.prototype._generateUnionTypeCode = generate_data_type_js_1._generateUnionTypeCode;
|
|
113
115
|
TsGenerator.prototype.generateHttpApi = generate_http_api_js_1.generateHttpApi;
|
|
114
116
|
TsGenerator.prototype.generateHttpController = generate_http_controller_js_1.generateHttpController;
|
|
115
117
|
})();
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import path from 'node:path';
|
|
2
|
-
import { ComplexType, EnumType, MappedType, MixinType, SimpleType, } from '@opra/common';
|
|
2
|
+
import { ArrayType, ComplexType, EnumType, MappedType, MixinType, SimpleType, UnionType, } from '@opra/common';
|
|
3
3
|
import { CodeBlock } from '../../code-block.js';
|
|
4
4
|
import { wrapJSDocString } from '../utils/string-utils.js';
|
|
5
5
|
const internalTypeNames = [
|
|
@@ -75,14 +75,14 @@ export async function _generateTypeCode(currentFile, dataType, intent) {
|
|
|
75
75
|
if (intent === 'root' && !dataType.name) {
|
|
76
76
|
throw new TypeError(`Name required to generate data type code to root intent`);
|
|
77
77
|
}
|
|
78
|
-
if (dataType instanceof
|
|
79
|
-
return await this.
|
|
78
|
+
if (dataType instanceof ArrayType) {
|
|
79
|
+
return await this._generateArrayTypeCode(currentFile, dataType, intent);
|
|
80
80
|
}
|
|
81
81
|
if (dataType instanceof ComplexType) {
|
|
82
82
|
return await this._generateComplexTypeCode(currentFile, dataType, intent);
|
|
83
83
|
}
|
|
84
|
-
if (dataType instanceof
|
|
85
|
-
return await this.
|
|
84
|
+
if (dataType instanceof EnumType) {
|
|
85
|
+
return await this._generateEnumTypeCode(currentFile, dataType, intent);
|
|
86
86
|
}
|
|
87
87
|
if (dataType instanceof MappedType) {
|
|
88
88
|
return await this._generateMappedTypeCode(currentFile, dataType, intent);
|
|
@@ -90,36 +90,34 @@ export async function _generateTypeCode(currentFile, dataType, intent) {
|
|
|
90
90
|
if (dataType instanceof MixinType) {
|
|
91
91
|
return await this._generateMixinTypeCode(currentFile, dataType, intent);
|
|
92
92
|
}
|
|
93
|
+
if (dataType instanceof SimpleType) {
|
|
94
|
+
return await this._generateSimpleTypeCode(currentFile, dataType, intent);
|
|
95
|
+
}
|
|
96
|
+
if (dataType instanceof UnionType) {
|
|
97
|
+
return await this._generateUnionTypeCode(currentFile, dataType, intent);
|
|
98
|
+
}
|
|
93
99
|
/* istanbul ignore next */
|
|
94
100
|
throw new TypeError(`${dataType.kind} data types can not be directly exported`);
|
|
95
101
|
}
|
|
96
102
|
/**
|
|
97
103
|
*
|
|
98
104
|
*/
|
|
99
|
-
export async function
|
|
100
|
-
if (intent === '
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
out +=
|
|
110
|
-
`${info.alias || value} = ` +
|
|
111
|
-
(typeof value === 'number'
|
|
112
|
-
? value
|
|
113
|
-
: "'" + String(value).replace("'", "\\'") + "'");
|
|
114
|
-
out += ',\n\n';
|
|
115
|
-
}
|
|
116
|
-
return out + '\b}';
|
|
105
|
+
export async function _generateArrayTypeCode(currentFile, dataType, intent) {
|
|
106
|
+
if (intent === 'extends')
|
|
107
|
+
throw new TypeError('Array types can not be extended');
|
|
108
|
+
let out = '';
|
|
109
|
+
const x = await this.generateDataType(dataType.type, 'typeDef', currentFile);
|
|
110
|
+
if (x.kind === 'embedded') {
|
|
111
|
+
out =
|
|
112
|
+
x.code.includes('|') || x.code.includes('&')
|
|
113
|
+
? '(' + x.code + ')'
|
|
114
|
+
: x.code;
|
|
117
115
|
}
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
116
|
+
else
|
|
117
|
+
out = x.typeName;
|
|
118
|
+
if (intent === 'root')
|
|
119
|
+
return `type ${dataType.name} = ${out}[]`;
|
|
120
|
+
return `${out}[]`;
|
|
123
121
|
}
|
|
124
122
|
/**
|
|
125
123
|
*
|
|
@@ -179,7 +177,7 @@ export async function _generateComplexTypeCode(currentFile, dataType, intent) {
|
|
|
179
177
|
const x = await this.generateDataType(field.type, 'typeDef', currentFile);
|
|
180
178
|
typ = x.kind === 'embedded' ? x.code : x.typeName;
|
|
181
179
|
}
|
|
182
|
-
if (field.isArray) {
|
|
180
|
+
if (field.isArray && !(field.type instanceof ArrayType)) {
|
|
183
181
|
out += /[a-zA-Z]\w*/.test(typ) ? typ + '[];\n' : '(' + typ + ')[];\n';
|
|
184
182
|
}
|
|
185
183
|
else
|
|
@@ -192,30 +190,30 @@ export async function _generateComplexTypeCode(currentFile, dataType, intent) {
|
|
|
192
190
|
/**
|
|
193
191
|
*
|
|
194
192
|
*/
|
|
195
|
-
export async function
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
*
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
193
|
+
export async function _generateEnumTypeCode(currentFile, dataType, intent) {
|
|
194
|
+
if (intent === 'root') {
|
|
195
|
+
let out = `enum ${dataType.name} {\n\t`;
|
|
196
|
+
for (const [value, info] of Object.entries(dataType.attributes)) {
|
|
197
|
+
// Print JSDoc
|
|
198
|
+
let jsDoc = '';
|
|
199
|
+
if (dataType.attributes[value].description)
|
|
200
|
+
jsDoc += ` * ${dataType.attributes[value].description}\n`;
|
|
201
|
+
if (jsDoc)
|
|
202
|
+
out += `/**\n${jsDoc} */\n`;
|
|
203
|
+
out +=
|
|
204
|
+
`${info.alias || value} = ` +
|
|
205
|
+
(typeof value === 'number'
|
|
206
|
+
? value
|
|
207
|
+
: "'" + String(value).replace("'", "\\'") + "'");
|
|
208
|
+
out += ',\n\n';
|
|
210
209
|
}
|
|
211
|
-
|
|
212
|
-
outArray.push(x.typeName);
|
|
210
|
+
return out + '\b}';
|
|
213
211
|
}
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
212
|
+
return ('(' +
|
|
213
|
+
Object.keys(dataType.attributes)
|
|
214
|
+
.map(t => `'${t}'`)
|
|
215
|
+
.join(' | ') +
|
|
216
|
+
')');
|
|
219
217
|
}
|
|
220
218
|
/**
|
|
221
219
|
*
|
|
@@ -275,3 +273,54 @@ export async function _generateMappedTypeCode(currentFile, dataType, intent) {
|
|
|
275
273
|
}
|
|
276
274
|
return out;
|
|
277
275
|
}
|
|
276
|
+
/**
|
|
277
|
+
*
|
|
278
|
+
*/
|
|
279
|
+
export async function _generateMixinTypeCode(currentFile, dataType, intent) {
|
|
280
|
+
const outArray = [];
|
|
281
|
+
for (const t of dataType.types) {
|
|
282
|
+
const x = await this.generateDataType(t, 'typeDef', currentFile);
|
|
283
|
+
if (x.kind === 'embedded') {
|
|
284
|
+
outArray.push(x.code.includes('|') || x.code.includes('&')
|
|
285
|
+
? '(' + x.code + ')'
|
|
286
|
+
: x.code);
|
|
287
|
+
}
|
|
288
|
+
else
|
|
289
|
+
outArray.push(x.typeName);
|
|
290
|
+
}
|
|
291
|
+
if (intent === 'root')
|
|
292
|
+
return `type ${dataType.name} = ${outArray.join(' & ')}`;
|
|
293
|
+
if (intent === 'extends')
|
|
294
|
+
return outArray.join(', ');
|
|
295
|
+
return outArray.join(' & ');
|
|
296
|
+
}
|
|
297
|
+
/**
|
|
298
|
+
*
|
|
299
|
+
*/
|
|
300
|
+
export async function _generateSimpleTypeCode(currentFile, dataType, intent) {
|
|
301
|
+
let out = intent === 'root' ? `type ${dataType.name} = ` : '';
|
|
302
|
+
const nameMapping = dataType.nameMappings.js || 'any';
|
|
303
|
+
out += nameMapping === 'Date' ? 'string' : nameMapping;
|
|
304
|
+
return intent === 'root' ? out + ';' : out;
|
|
305
|
+
}
|
|
306
|
+
/**
|
|
307
|
+
*
|
|
308
|
+
*/
|
|
309
|
+
export async function _generateUnionTypeCode(currentFile, dataType, intent) {
|
|
310
|
+
if (intent === 'extends')
|
|
311
|
+
throw new TypeError('Union types can not be extended');
|
|
312
|
+
const outArray = [];
|
|
313
|
+
for (const t of dataType.types) {
|
|
314
|
+
const x = await this.generateDataType(t, 'typeDef', currentFile);
|
|
315
|
+
if (x.kind === 'embedded') {
|
|
316
|
+
outArray.push(x.code.includes('|') || x.code.includes('&')
|
|
317
|
+
? '(' + x.code + ')'
|
|
318
|
+
: x.code);
|
|
319
|
+
}
|
|
320
|
+
else
|
|
321
|
+
outArray.push(x.typeName);
|
|
322
|
+
}
|
|
323
|
+
if (intent === 'root')
|
|
324
|
+
return `type ${dataType.name} = ${outArray.join(' | ')}`;
|
|
325
|
+
return outArray.join(' | ');
|
|
326
|
+
}
|
|
@@ -5,7 +5,7 @@ import process from 'node:process';
|
|
|
5
5
|
import colors from 'ansi-colors';
|
|
6
6
|
import { FileWriter } from '../file-writer.js';
|
|
7
7
|
import { cleanDirectory } from './generators/clean-directory.js';
|
|
8
|
-
import { _generateComplexTypeCode, _generateEnumTypeCode, _generateMappedTypeCode, _generateMixinTypeCode, _generateSimpleTypeCode, _generateTypeCode, generateDataType, } from './generators/generate-data-type.js';
|
|
8
|
+
import { _generateArrayTypeCode, _generateComplexTypeCode, _generateEnumTypeCode, _generateMappedTypeCode, _generateMixinTypeCode, _generateSimpleTypeCode, _generateTypeCode, _generateUnionTypeCode, generateDataType, } from './generators/generate-data-type.js';
|
|
9
9
|
import { generateDocument } from './generators/generate-document.js';
|
|
10
10
|
import { generateHttpApi } from './generators/generate-http-api.js';
|
|
11
11
|
import { generateHttpController } from './generators/generate-http-controller.js';
|
|
@@ -100,11 +100,13 @@ export class TsGenerator extends EventEmitter {
|
|
|
100
100
|
TsGenerator.prototype.generateDocument = generateDocument;
|
|
101
101
|
TsGenerator.prototype.generateDataType = generateDataType;
|
|
102
102
|
TsGenerator.prototype._generateTypeCode = _generateTypeCode;
|
|
103
|
-
TsGenerator.prototype.
|
|
103
|
+
TsGenerator.prototype._generateArrayTypeCode = _generateArrayTypeCode;
|
|
104
104
|
TsGenerator.prototype._generateComplexTypeCode = _generateComplexTypeCode;
|
|
105
|
-
TsGenerator.prototype.
|
|
105
|
+
TsGenerator.prototype._generateEnumTypeCode = _generateEnumTypeCode;
|
|
106
106
|
TsGenerator.prototype._generateMappedTypeCode = _generateMappedTypeCode;
|
|
107
107
|
TsGenerator.prototype._generateMixinTypeCode = _generateMixinTypeCode;
|
|
108
|
+
TsGenerator.prototype._generateSimpleTypeCode = _generateSimpleTypeCode;
|
|
109
|
+
TsGenerator.prototype._generateUnionTypeCode = _generateUnionTypeCode;
|
|
108
110
|
TsGenerator.prototype.generateHttpApi = generateHttpApi;
|
|
109
111
|
TsGenerator.prototype.generateHttpController = generateHttpController;
|
|
110
112
|
})();
|
package/package.json
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@opra/cli",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.21.0",
|
|
4
4
|
"description": "Opra CLI tools",
|
|
5
5
|
"author": "Panates",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"dependencies": {
|
|
8
8
|
"@browsery/type-is": "^2.0.1",
|
|
9
9
|
"ansi-colors": "^4.1.3",
|
|
10
|
-
"commander": "^14.0.
|
|
10
|
+
"commander": "^14.0.2",
|
|
11
11
|
"js-string-escape": "^1.0.1",
|
|
12
12
|
"putil-flattentext": "^2.1.1",
|
|
13
13
|
"putil-varhelpers": "^1.6.5",
|
|
14
14
|
"tslib": "^2.8.1"
|
|
15
15
|
},
|
|
16
16
|
"peerDependencies": {
|
|
17
|
-
"@opra/client": "^1.
|
|
18
|
-
"@opra/common": "^1.
|
|
17
|
+
"@opra/client": "^1.21.0",
|
|
18
|
+
"@opra/common": "^1.21.0"
|
|
19
19
|
},
|
|
20
20
|
"type": "module",
|
|
21
21
|
"exports": {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ComplexType, DataType, EnumType, MappedType, MixinType, SimpleType } from '@opra/common';
|
|
1
|
+
import { ArrayType, ComplexType, DataType, EnumType, MappedType, MixinType, SimpleType, UnionType } from '@opra/common';
|
|
2
2
|
import { TsFile } from '../ts-file.js';
|
|
3
3
|
import type { TsGenerator } from '../ts-generator';
|
|
4
4
|
type Intent = 'root' | 'extends' | 'typeDef';
|
|
@@ -21,7 +21,7 @@ export declare function _generateTypeCode(this: TsGenerator, currentFile: TsFile
|
|
|
21
21
|
/**
|
|
22
22
|
*
|
|
23
23
|
*/
|
|
24
|
-
export declare function
|
|
24
|
+
export declare function _generateArrayTypeCode(this: TsGenerator, currentFile: TsFile, dataType: ArrayType, intent?: Intent): Promise<string>;
|
|
25
25
|
/**
|
|
26
26
|
*
|
|
27
27
|
*/
|
|
@@ -29,7 +29,11 @@ export declare function _generateComplexTypeCode(this: TsGenerator, currentFile:
|
|
|
29
29
|
/**
|
|
30
30
|
*
|
|
31
31
|
*/
|
|
32
|
-
export declare function
|
|
32
|
+
export declare function _generateEnumTypeCode(this: TsGenerator, currentFile: TsFile, dataType: EnumType, intent?: Intent): Promise<string>;
|
|
33
|
+
/**
|
|
34
|
+
*
|
|
35
|
+
*/
|
|
36
|
+
export declare function _generateMappedTypeCode(this: TsGenerator, currentFile: TsFile, dataType: MappedType, intent?: Intent): Promise<string>;
|
|
33
37
|
/**
|
|
34
38
|
*
|
|
35
39
|
*/
|
|
@@ -37,5 +41,9 @@ export declare function _generateMixinTypeCode(this: TsGenerator, currentFile: T
|
|
|
37
41
|
/**
|
|
38
42
|
*
|
|
39
43
|
*/
|
|
40
|
-
export declare function
|
|
44
|
+
export declare function _generateSimpleTypeCode(this: TsGenerator, currentFile: TsFile, dataType: SimpleType, intent?: Intent): Promise<string>;
|
|
45
|
+
/**
|
|
46
|
+
*
|
|
47
|
+
*/
|
|
48
|
+
export declare function _generateUnionTypeCode(this: TsGenerator, currentFile: TsFile, dataType: UnionType, intent?: Intent): Promise<string>;
|
|
41
49
|
export {};
|
|
@@ -3,7 +3,7 @@ import { ApiDocument } from '@opra/common';
|
|
|
3
3
|
import type { IFileWriter } from '../interfaces/file-writer.interface.js';
|
|
4
4
|
import type { ILogger } from '../interfaces/logger.interface.js';
|
|
5
5
|
import { cleanDirectory } from './generators/clean-directory.js';
|
|
6
|
-
import { _generateComplexTypeCode, _generateEnumTypeCode, _generateMappedTypeCode, _generateMixinTypeCode, _generateSimpleTypeCode, _generateTypeCode, generateDataType } from './generators/generate-data-type.js';
|
|
6
|
+
import { _generateArrayTypeCode, _generateComplexTypeCode, _generateEnumTypeCode, _generateMappedTypeCode, _generateMixinTypeCode, _generateSimpleTypeCode, _generateTypeCode, _generateUnionTypeCode, generateDataType } from './generators/generate-data-type.js';
|
|
7
7
|
import { generateDocument } from './generators/generate-document.js';
|
|
8
8
|
import { generateHttpApi } from './generators/generate-http-api.js';
|
|
9
9
|
import { generateHttpController } from './generators/generate-http-controller.js';
|
|
@@ -31,11 +31,13 @@ export declare class TsGenerator extends EventEmitter {
|
|
|
31
31
|
protected generateDocument: typeof generateDocument;
|
|
32
32
|
protected generateDataType: typeof generateDataType;
|
|
33
33
|
protected _generateTypeCode: typeof _generateTypeCode;
|
|
34
|
-
protected
|
|
34
|
+
protected _generateArrayTypeCode: typeof _generateArrayTypeCode;
|
|
35
35
|
protected _generateComplexTypeCode: typeof _generateComplexTypeCode;
|
|
36
|
-
protected
|
|
36
|
+
protected _generateEnumTypeCode: typeof _generateEnumTypeCode;
|
|
37
37
|
protected _generateMappedTypeCode: typeof _generateMappedTypeCode;
|
|
38
38
|
protected _generateMixinTypeCode: typeof _generateMixinTypeCode;
|
|
39
|
+
protected _generateSimpleTypeCode: typeof _generateSimpleTypeCode;
|
|
40
|
+
protected _generateUnionTypeCode: typeof _generateUnionTypeCode;
|
|
39
41
|
protected generateHttpApi: typeof generateHttpApi;
|
|
40
42
|
protected generateHttpController: typeof generateHttpController;
|
|
41
43
|
protected _documentRoot: string;
|