@opra/cli 1.0.0-alpha.12 → 1.0.0-alpha.14
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/clean-directory.js +35 -0
- package/cjs/ts-generator/generators/generate-data-type.js +258 -0
- package/cjs/ts-generator/generators/generate-document.js +60 -0
- package/cjs/ts-generator/generators/generate-http-api.js +45 -0
- package/cjs/ts-generator/generators/generate-http-controller.js +224 -0
- package/cjs/ts-generator/ts-generator.js +16 -17
- package/esm/ts-generator/generators/clean-directory.js +30 -0
- package/esm/ts-generator/generators/generate-data-type.js +247 -0
- package/esm/ts-generator/generators/generate-document.js +55 -0
- package/esm/ts-generator/generators/generate-http-api.js +40 -0
- package/esm/ts-generator/generators/generate-http-controller.js +219 -0
- package/esm/ts-generator/ts-generator.js +16 -17
- package/package.json +4 -3
- package/types/ts-generator/generators/clean-directory.d.ts +2 -0
- package/types/ts-generator/generators/generate-data-type.d.ts +41 -0
- package/types/ts-generator/generators/generate-document.d.ts +8 -0
- package/types/ts-generator/generators/generate-http-api.d.ts +3 -0
- package/types/ts-generator/generators/generate-http-controller.d.ts +3 -0
- package/types/ts-generator/ts-generator.d.ts +15 -15
|
@@ -4,11 +4,11 @@ import path from 'node:path';
|
|
|
4
4
|
import process from 'node:process';
|
|
5
5
|
import chalk from 'chalk';
|
|
6
6
|
import { FileWriter } from '../file-writer.js';
|
|
7
|
-
import { cleanDirectory } from './
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
7
|
+
import { cleanDirectory } from './generators/clean-directory.js';
|
|
8
|
+
import { _generateComplexTypeCode, _generateEnumTypeCode, _generateMappedTypeCode, _generateMixinTypeCode, _generateSimpleTypeCode, _generateTypeCode, generateDataType, } from './generators/generate-data-type.js';
|
|
9
|
+
import { generateDocument } from './generators/generate-document.js';
|
|
10
|
+
import { generateHttpApi } from './generators/generate-http-api.js';
|
|
11
|
+
import { generateHttpController } from './generators/generate-http-controller.js';
|
|
12
12
|
import { TsFile } from './ts-file.js';
|
|
13
13
|
/**
|
|
14
14
|
* @class TsGenerator
|
|
@@ -45,7 +45,7 @@ export class TsGenerator extends EventEmitter {
|
|
|
45
45
|
this.emit('log', chalk.cyan('Removing old files..'));
|
|
46
46
|
this.cleanDirectory(this.outDir);
|
|
47
47
|
this._apiPath = '/api';
|
|
48
|
-
await this.
|
|
48
|
+
await this.generateDocument();
|
|
49
49
|
const { importExt } = this.options;
|
|
50
50
|
// Write files
|
|
51
51
|
for (const file of Object.values(this._files)) {
|
|
@@ -90,15 +90,14 @@ export class TsGenerator extends EventEmitter {
|
|
|
90
90
|
}
|
|
91
91
|
(() => {
|
|
92
92
|
TsGenerator.prototype.cleanDirectory = cleanDirectory;
|
|
93
|
-
TsGenerator.prototype.
|
|
94
|
-
TsGenerator.prototype.
|
|
95
|
-
TsGenerator.prototype.
|
|
96
|
-
TsGenerator.prototype.
|
|
97
|
-
TsGenerator.prototype.
|
|
98
|
-
TsGenerator.prototype.
|
|
99
|
-
TsGenerator.prototype.
|
|
100
|
-
TsGenerator.prototype.
|
|
101
|
-
TsGenerator.prototype.
|
|
102
|
-
TsGenerator.prototype.
|
|
103
|
-
// TsGenerator.prototype.resolveTypeNameOrDef = resolveTypeNameOrDef;
|
|
93
|
+
TsGenerator.prototype.generateDocument = generateDocument;
|
|
94
|
+
TsGenerator.prototype.generateDataType = generateDataType;
|
|
95
|
+
TsGenerator.prototype._generateTypeCode = _generateTypeCode;
|
|
96
|
+
TsGenerator.prototype._generateEnumTypeCode = _generateEnumTypeCode;
|
|
97
|
+
TsGenerator.prototype._generateComplexTypeCode = _generateComplexTypeCode;
|
|
98
|
+
TsGenerator.prototype._generateSimpleTypeCode = _generateSimpleTypeCode;
|
|
99
|
+
TsGenerator.prototype._generateMappedTypeCode = _generateMappedTypeCode;
|
|
100
|
+
TsGenerator.prototype._generateMixinTypeCode = _generateMixinTypeCode;
|
|
101
|
+
TsGenerator.prototype.generateHttpApi = generateHttpApi;
|
|
102
|
+
TsGenerator.prototype.generateHttpController = generateHttpController;
|
|
104
103
|
})();
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@opra/cli",
|
|
3
|
-
"version": "1.0.0-alpha.
|
|
3
|
+
"version": "1.0.0-alpha.14",
|
|
4
4
|
"description": "Opra CLI tools",
|
|
5
5
|
"author": "Panates",
|
|
6
6
|
"license": "MIT",
|
|
@@ -31,8 +31,9 @@
|
|
|
31
31
|
"clean:cover": "rimraf ../../coverage/client"
|
|
32
32
|
},
|
|
33
33
|
"dependencies": {
|
|
34
|
-
"@
|
|
35
|
-
"@opra/
|
|
34
|
+
"@browsery/type-is": "^1.6.18-r3",
|
|
35
|
+
"@opra/client": "^1.0.0-alpha.14",
|
|
36
|
+
"@opra/common": "^1.0.0-alpha.14",
|
|
36
37
|
"chalk": "^5.3.0",
|
|
37
38
|
"commander": "^12.0.0",
|
|
38
39
|
"js-string-escape": "^1.0.1",
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { ComplexType, DataType, EnumType, MappedType, MixinType, SimpleType } from '@opra/common';
|
|
2
|
+
import { TsFile } from '../ts-file.js';
|
|
3
|
+
import type { TsGenerator } from '../ts-generator';
|
|
4
|
+
type Intent = 'root' | 'extends' | 'typeDef';
|
|
5
|
+
export type generateDataTypeResult = {
|
|
6
|
+
kind: 'internal';
|
|
7
|
+
typeName: string;
|
|
8
|
+
} | {
|
|
9
|
+
kind: 'named';
|
|
10
|
+
typeName: string;
|
|
11
|
+
file: TsFile;
|
|
12
|
+
} | {
|
|
13
|
+
kind: 'embedded';
|
|
14
|
+
code: string;
|
|
15
|
+
};
|
|
16
|
+
export declare function generateDataType(this: TsGenerator, dataType: DataType, intent: Intent, currentFile?: TsFile): Promise<generateDataTypeResult>;
|
|
17
|
+
/**
|
|
18
|
+
*
|
|
19
|
+
*/
|
|
20
|
+
export declare function _generateTypeCode(this: TsGenerator, currentFile: TsFile, dataType: DataType, intent?: Intent): Promise<string>;
|
|
21
|
+
/**
|
|
22
|
+
*
|
|
23
|
+
*/
|
|
24
|
+
export declare function _generateEnumTypeCode(this: TsGenerator, currentFile: TsFile, dataType: EnumType, intent?: Intent): Promise<string>;
|
|
25
|
+
/**
|
|
26
|
+
*
|
|
27
|
+
*/
|
|
28
|
+
export declare function _generateComplexTypeCode(this: TsGenerator, currentFile: TsFile, dataType: ComplexType, intent?: Intent): Promise<string>;
|
|
29
|
+
/**
|
|
30
|
+
*
|
|
31
|
+
*/
|
|
32
|
+
export declare function _generateSimpleTypeCode(this: TsGenerator, currentFile: TsFile, dataType: SimpleType, intent?: Intent): Promise<string>;
|
|
33
|
+
/**
|
|
34
|
+
*
|
|
35
|
+
*/
|
|
36
|
+
export declare function _generateMixinTypeCode(this: TsGenerator, currentFile: TsFile, dataType: MixinType, intent?: Intent): Promise<string>;
|
|
37
|
+
/**
|
|
38
|
+
*
|
|
39
|
+
*/
|
|
40
|
+
export declare function _generateMappedTypeCode(this: TsGenerator, currentFile: TsFile, dataType: MappedType, intent?: Intent): Promise<string>;
|
|
41
|
+
export {};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { ApiDocument } from '@opra/common';
|
|
2
|
+
import type { TsGenerator } from '../ts-generator';
|
|
3
|
+
export declare function generateDocument(this: TsGenerator, document?: string | ApiDocument, options?: {
|
|
4
|
+
typesOnly?: boolean;
|
|
5
|
+
}): Promise<{
|
|
6
|
+
document: ApiDocument;
|
|
7
|
+
generator: TsGenerator;
|
|
8
|
+
}>;
|
|
@@ -3,11 +3,11 @@ import { EventEmitter } from 'node:events';
|
|
|
3
3
|
import { ApiDocument } from '@opra/common';
|
|
4
4
|
import { IFileWriter } from '../interfaces/file-writer.interface.js';
|
|
5
5
|
import { ILogger } from '../interfaces/logger.interface.js';
|
|
6
|
-
import { cleanDirectory } from './
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
6
|
+
import { cleanDirectory } from './generators/clean-directory.js';
|
|
7
|
+
import { _generateComplexTypeCode, _generateEnumTypeCode, _generateMappedTypeCode, _generateMixinTypeCode, _generateSimpleTypeCode, _generateTypeCode, generateDataType } from './generators/generate-data-type.js';
|
|
8
|
+
import { generateDocument } from './generators/generate-document.js';
|
|
9
|
+
import { generateHttpApi } from './generators/generate-http-api.js';
|
|
10
|
+
import { generateHttpController } from './generators/generate-http-controller.js';
|
|
11
11
|
import { TsFile } from './ts-file.js';
|
|
12
12
|
/**
|
|
13
13
|
* @namespace TsGenerator
|
|
@@ -28,16 +28,16 @@ export declare namespace TsGenerator {
|
|
|
28
28
|
*/
|
|
29
29
|
export declare class TsGenerator extends EventEmitter {
|
|
30
30
|
protected cleanDirectory: typeof cleanDirectory;
|
|
31
|
-
protected
|
|
32
|
-
protected
|
|
33
|
-
protected
|
|
34
|
-
protected
|
|
35
|
-
protected
|
|
36
|
-
protected
|
|
37
|
-
protected
|
|
38
|
-
protected
|
|
39
|
-
protected
|
|
40
|
-
protected
|
|
31
|
+
protected generateDocument: typeof generateDocument;
|
|
32
|
+
protected generateDataType: typeof generateDataType;
|
|
33
|
+
protected _generateTypeCode: typeof _generateTypeCode;
|
|
34
|
+
protected _generateEnumTypeCode: typeof _generateEnumTypeCode;
|
|
35
|
+
protected _generateComplexTypeCode: typeof _generateComplexTypeCode;
|
|
36
|
+
protected _generateSimpleTypeCode: typeof _generateSimpleTypeCode;
|
|
37
|
+
protected _generateMappedTypeCode: typeof _generateMappedTypeCode;
|
|
38
|
+
protected _generateMixinTypeCode: typeof _generateMixinTypeCode;
|
|
39
|
+
protected generateHttpApi: typeof generateHttpApi;
|
|
40
|
+
protected generateHttpController: typeof generateHttpController;
|
|
41
41
|
protected _started: boolean;
|
|
42
42
|
protected _document?: ApiDocument;
|
|
43
43
|
protected _documentRoot: string;
|