moyan-api 1.2.2 → 1.3.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.
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ import 'colors';
@@ -0,0 +1,22 @@
1
+ import MFManage, { SchemaManager } from "moyan-file-model";
2
+ import { Command } from "commander";
3
+ import { Program } from "./program";
4
+ export declare class ApisdkCreator {
5
+ mFManage: MFManage;
6
+ error: Array<any>;
7
+ program: Command | Program;
8
+ get runPath(): string;
9
+ get packageData(): any;
10
+ get outputPath(): any;
11
+ get openAPIObject(): any;
12
+ get prefix(): any;
13
+ get pathPrefix(): any;
14
+ get dirname(): any;
15
+ get jsonurl(): any;
16
+ constructor(program: Command | Program);
17
+ schemaManagerData: {};
18
+ schemaManager: SchemaManager;
19
+ getRemoteData(): Promise<any>;
20
+ init(): Promise<void>;
21
+ create(): Promise<any[]>;
22
+ }
@@ -0,0 +1,88 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ApisdkCreator = void 0;
4
+ const path = require("path");
5
+ const moyan_file_model_1 = require("moyan-file-model");
6
+ const axios_1 = require("axios");
7
+ const api_1 = require("./template/api");
8
+ const schemas_1 = require("./template/schemas");
9
+ class ApisdkCreator {
10
+ get runPath() {
11
+ const g = process.env.INIT_CWD;
12
+ return g;
13
+ }
14
+ get packageData() {
15
+ return require(path.resolve('package.json'));
16
+ }
17
+ get outputPath() {
18
+ return this.program.getOptionValue('output') || path.resolve(this.packageData['moyan-api'] && this.packageData['moyan-api']['output'] ? this.packageData['moyan-api']['output'] : "./src");
19
+ }
20
+ get openAPIObject() {
21
+ const file = this.program.getOptionValue('apijson') || (this.packageData['moyan-api'] && this.packageData['moyan-api']['apijson'] ? this.packageData['moyan-api']['apijson'] : 'moyan.api.json');
22
+ console.info('获取本地数据:' + file);
23
+ const data = require(path.resolve(file));
24
+ return data;
25
+ }
26
+ get prefix() {
27
+ return this.program.getOptionValue('apiprefix') || (this.packageData['moyan-api'] && this.packageData['moyan-api']['apiprefix'] ? this.packageData['moyan-api']['apiprefix'] : 'Api');
28
+ }
29
+ get pathPrefix() {
30
+ return this.program.getOptionValue('pathprefix') || (this.packageData['moyan-api'] && this.packageData['moyan-api']['pathprefix'] ? this.packageData['moyan-api']['pathprefix'] : '');
31
+ }
32
+ get dirname() {
33
+ return this.program.getOptionValue('dirname') || (this.packageData['moyan-api'] && this.packageData['moyan-api']['dirname'] ? this.packageData['moyan-api']['dirname'] : 'api');
34
+ }
35
+ get jsonurl() {
36
+ return this.program.getOptionValue('jsonurl') || (this.packageData['moyan-api'] && this.packageData['moyan-api']['jsonurl'] ? this.packageData['moyan-api']['jsonurl'] : '');
37
+ }
38
+ constructor(program) {
39
+ this.error = [];
40
+ this.schemaManagerData = {};
41
+ this.program = program;
42
+ moyan_file_model_1.mFconfig.modulesPath = this.outputPath;
43
+ moyan_file_model_1.mFconfig.modulesTemplatePath = path.resolve(__dirname, './');
44
+ moyan_file_model_1.mFconfig.modulesTemplateViewsName = path.resolve(__dirname, "../view");
45
+ }
46
+ async getRemoteData() {
47
+ const result = await axios_1.default.get(this.jsonurl);
48
+ return result.data;
49
+ }
50
+ async init() {
51
+ let openAPIObject = {};
52
+ if (this.jsonurl) {
53
+ console.log('获取远程数据:' + this.jsonurl);
54
+ openAPIObject = await this.getRemoteData();
55
+ }
56
+ else {
57
+ openAPIObject = this.openAPIObject;
58
+ }
59
+ if (!openAPIObject.openapi) {
60
+ throw new Error('api 数据错误');
61
+ }
62
+ this.schemaManagerData = {
63
+ type: moyan_file_model_1.smfType.dir,
64
+ name: this.dirname,
65
+ children: [
66
+ {
67
+ type: moyan_file_model_1.smfType.ts,
68
+ name: "index",
69
+ template: new api_1.ApiTemplate(openAPIObject, this.prefix, this.pathPrefix)
70
+ },
71
+ {
72
+ type: moyan_file_model_1.smfType.ts,
73
+ name: "schemas",
74
+ template: new schemas_1.SchemasTemplate(openAPIObject)
75
+ }
76
+ ]
77
+ };
78
+ }
79
+ async create() {
80
+ await this.init();
81
+ this.mFManage = new moyan_file_model_1.default();
82
+ this.schemaManager = new moyan_file_model_1.SchemaManager(this.schemaManagerData);
83
+ this.mFManage.run(this.schemaManager);
84
+ return this.error;
85
+ }
86
+ }
87
+ exports.ApisdkCreator = ApisdkCreator;
88
+ //# sourceMappingURL=main.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/main.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import { OpenAPIObject } from '@nestjs/swagger';
2
+ import { Temp, Template } from 'moyan-file-model';
3
+ export declare class ApiTemplate extends Temp implements Template {
4
+ openAPIObject: OpenAPIObject;
5
+ list: Array<any>;
6
+ schemaKeys: any[];
7
+ prefix: string;
8
+ pathPrefix: string;
9
+ constructor(openAPIObject: OpenAPIObject, prefix?: string, pathPrefix?: string);
10
+ init(): void;
11
+ private _getReqType;
12
+ parseSchema(schema: any): string;
13
+ getSchemaEntity(str: string): string;
14
+ _getResType(item: any): string;
15
+ _getReqDescription(item: any): any;
16
+ _getResDescription(item: any): any;
17
+ run(): Promise<unknown>;
18
+ }
@@ -0,0 +1,134 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ApiTemplate = void 0;
4
+ const moyan_file_model_1 = require("moyan-file-model");
5
+ const schemas_1 = require("./schemas");
6
+ class ApiTemplate extends moyan_file_model_1.Temp {
7
+ constructor(openAPIObject, prefix = '', pathPrefix = '') {
8
+ super(moyan_file_model_1.smfType.ts);
9
+ this.list = [];
10
+ this.schemaKeys = [];
11
+ this.prefix = '';
12
+ this.pathPrefix = '';
13
+ this.prefix = prefix;
14
+ this.pathPrefix = pathPrefix;
15
+ this.openAPIObject = openAPIObject;
16
+ this.init();
17
+ }
18
+ init() {
19
+ const paths = new Map();
20
+ for (const key in this.openAPIObject.paths) {
21
+ for (const key1 in this.openAPIObject.paths[key]) {
22
+ const item = this.openAPIObject.paths[key][key1];
23
+ item.path = this.pathPrefix + key;
24
+ item.method = key1.toUpperCase();
25
+ item.auth = !!item.security;
26
+ const reqType = this._getReqType(item);
27
+ const resType = this._getResType(item);
28
+ console.log('resType::', resType);
29
+ paths.set(`${item.operationId}`, Object.assign(Object.assign({}, item), { operationId: this.prefix + item.operationId, reqType: reqType, resType: resType, reqDescription: this._getReqDescription(item), resDescription: this._getResDescription(item), tag: Array.isArray(item.tags) ? item.tags.join('|') : '------' }));
30
+ }
31
+ }
32
+ this.list = [...paths.values()];
33
+ this.schemaKeys = Object.keys(this.openAPIObject.components.schemas);
34
+ }
35
+ _getReqType(item) {
36
+ try {
37
+ const key = Object.keys(item.requestBody.content)[0];
38
+ return this.getSchemaEntity(item.requestBody.content[key].schema.$ref);
39
+ }
40
+ catch (_a) {
41
+ return this.parseSchema(item);
42
+ }
43
+ }
44
+ parseSchema(schema) {
45
+ const parameters = new Map();
46
+ ((schema === null || schema === void 0 ? void 0 : schema.parameters) || []).forEach((item) => {
47
+ item.in !== 'header' && parameters.set(item.name, item);
48
+ });
49
+ const arr = [...parameters.values()];
50
+ try {
51
+ let str = '{';
52
+ arr.forEach((item1) => {
53
+ const fieldType = item1.schema.$ref ? this.getSchemaEntity(item1.schema.$ref) : item1.schema.type;
54
+ const fieldName = item1.name.includes('.') ? `'${item1.name}'` : item1.name;
55
+ str += (` ${fieldName}${item1.required ? '' : '?'}:${fieldType},${item1.description ? ' //' + item1.description : ''}`).replace(/\"|\n|\\/g, '') + '\n';
56
+ });
57
+ str += '}';
58
+ return str;
59
+ }
60
+ catch (e) {
61
+ return `any`;
62
+ }
63
+ }
64
+ getSchemaEntity(str) {
65
+ const arr = str.split('/');
66
+ return arr[3] || `any`;
67
+ }
68
+ _getResType(item) {
69
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q;
70
+ try {
71
+ item.responses = item.responses || {};
72
+ const key = Object.keys(((_a = item.responses[200]) === null || _a === void 0 ? void 0 : _a.content) ||
73
+ ((_b = item.responses[201]) === null || _b === void 0 ? void 0 : _b.content) ||
74
+ ((_c = item.responses[202]) === null || _c === void 0 ? void 0 : _c.content) ||
75
+ ((_d = item.responses[203]) === null || _d === void 0 ? void 0 : _d.content) ||
76
+ ((_e = item.responses[204]) === null || _e === void 0 ? void 0 : _e.content) ||
77
+ {})[0];
78
+ const schema = ((_g = (_f = item.responses[200]) === null || _f === void 0 ? void 0 : _f.content) === null || _g === void 0 ? void 0 : _g[key].schema)
79
+ || ((_j = (_h = item.responses[201]) === null || _h === void 0 ? void 0 : _h.content) === null || _j === void 0 ? void 0 : _j[key].schema)
80
+ || ((_l = (_k = item.responses[202]) === null || _k === void 0 ? void 0 : _k.content) === null || _l === void 0 ? void 0 : _l[key].schema)
81
+ || ((_o = (_m = item.responses[203]) === null || _m === void 0 ? void 0 : _m.content) === null || _o === void 0 ? void 0 : _o[key].schema)
82
+ || ((_q = (_p = item.responses[204]) === null || _p === void 0 ? void 0 : _p.content) === null || _q === void 0 ? void 0 : _q[key].schema)
83
+ || { type: 'unknown' };
84
+ if (schema.type === 'array') {
85
+ if (schema.items && schema.items.$ref) {
86
+ return `Array<${this.getSchemaEntity(schema.items.$ref)}>`;
87
+ }
88
+ else {
89
+ return `Array<unknown>`;
90
+ }
91
+ }
92
+ else if (schema.type === 'object' && schema.properties) {
93
+ const resType = schemas_1.SchemasTemplate.parseSchema(schema);
94
+ let str = `{
95
+ ${resType.join('')}}`;
96
+ return str;
97
+ }
98
+ else if (schema.$ref) {
99
+ return this.getSchemaEntity(schema.$ref);
100
+ }
101
+ return `any`;
102
+ }
103
+ catch (e) {
104
+ console.log('e::', item.operationId, e);
105
+ return `unknown`;
106
+ }
107
+ }
108
+ _getReqDescription(item) {
109
+ try {
110
+ return (item.requestBody.description || '').trim().replace(/\"|\n|\\/g, '');
111
+ }
112
+ catch (_a) {
113
+ return '';
114
+ }
115
+ }
116
+ _getResDescription(item) {
117
+ try {
118
+ return (item.responses[200].description || '').trim().replace(/\"|\n|\\/g, '');
119
+ }
120
+ catch (_a) {
121
+ return '';
122
+ }
123
+ }
124
+ async run() {
125
+ try {
126
+ return await this.render('api');
127
+ }
128
+ catch (err) {
129
+ console.info('===========ApiTemplate=err==========', err);
130
+ }
131
+ }
132
+ }
133
+ exports.ApiTemplate = ApiTemplate;
134
+ //# sourceMappingURL=api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../../../src/template/api.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import { OpenAPIObject } from '@nestjs/swagger';
2
+ import { Temp, Template } from 'moyan-file-model';
3
+ export declare class SchemasTemplate extends Temp implements Template {
4
+ openAPIObject: OpenAPIObject;
5
+ list: Array<any>;
6
+ constructor(openAPIObject: OpenAPIObject);
7
+ init(): void;
8
+ static parseSchema(schema: any): string[];
9
+ static isRequired(schema: any, key: string): boolean;
10
+ static getSchemaEntity(str: string): string;
11
+ static getDescription(item: any): string;
12
+ run(): Promise<unknown>;
13
+ }
@@ -0,0 +1,97 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SchemasTemplate = void 0;
4
+ const moyan_file_model_1 = require("moyan-file-model");
5
+ class SchemasTemplate extends moyan_file_model_1.Temp {
6
+ constructor(openAPIObject) {
7
+ super(moyan_file_model_1.smfType.ts);
8
+ this.list = [];
9
+ this.openAPIObject = openAPIObject;
10
+ this.init();
11
+ }
12
+ init() {
13
+ const schemas = new Map();
14
+ for (const key in this.openAPIObject.components.schemas) {
15
+ const arr = SchemasTemplate.parseSchema(this.openAPIObject.components.schemas[key]);
16
+ schemas.set(key, {
17
+ key,
18
+ arr
19
+ });
20
+ }
21
+ this.list = [...schemas.values()];
22
+ }
23
+ static parseSchema(schema) {
24
+ const parameters = new Map();
25
+ for (const key in schema.properties) {
26
+ const item = schema.properties[key];
27
+ if (item.type && item.type === 'array') {
28
+ if (item.items && item.items.$ref) {
29
+ parameters.set(key, `${key}${this.isRequired(schema, key) ? '?' : ''}:Array<${this.getSchemaEntity(item.items.$ref)}>${this.getDescription(item)}`);
30
+ continue;
31
+ }
32
+ else if (item.items && item.items.oneOf && Array.isArray(item.items.oneOf)) {
33
+ const schemaEntityArr = item.items.oneOf.map((item1) => {
34
+ return this.getSchemaEntity(item1.$ref);
35
+ });
36
+ parameters.set(key, `${key}${this.isRequired(schema, key) ? '?' : ''}:Array<${schemaEntityArr.join('|')}>${this.getDescription(item)}`);
37
+ continue;
38
+ }
39
+ else if (item.items && item.items.type && item.type === 'array') {
40
+ parameters.set(key, `${key}${this.isRequired(schema, key) ? '?' : ''}:Array<${item.items.type}>${this.getDescription(item)}`);
41
+ continue;
42
+ }
43
+ else {
44
+ parameters.set(key, `${key}${this.isRequired(schema, key) ? '?' : ''}:Array<any>${this.getDescription(item)}`);
45
+ continue;
46
+ }
47
+ }
48
+ else if (Array.isArray(item.allOf)) {
49
+ const schemaEntityArr = item.allOf.map((item1) => {
50
+ return this.getSchemaEntity(item1.$ref);
51
+ });
52
+ parameters.set(key, `${key}${this.isRequired(schema, key) ? '?' : ''}:${schemaEntityArr.join('|')}${this.getDescription(item)}`);
53
+ continue;
54
+ }
55
+ else if (Array.isArray(item.oneOf)) {
56
+ const schemaEntityArr = item.oneOf.map((item1) => {
57
+ return this.getSchemaEntity(item1.$ref);
58
+ });
59
+ parameters.set(key, `${key}${this.isRequired(schema, key) ? '?' : ''}:${schemaEntityArr.join('|')}${this.getDescription(item)}`);
60
+ continue;
61
+ }
62
+ else if (item.type) {
63
+ parameters.set(key, `${key}${this.isRequired(schema, key) ? '?' : ''}:${item.type}${this.getDescription(item)}`);
64
+ continue;
65
+ }
66
+ else if (item.$ref) {
67
+ parameters.set(key, `${key}${this.isRequired(schema, key) ? '?' : ''}:${this.getSchemaEntity(item.$ref)}${this.getDescription(item)}`);
68
+ continue;
69
+ }
70
+ else {
71
+ parameters.set(key, `${key}${this.isRequired(schema, key) ? '?' : ''}:any${this.getDescription(item)}`);
72
+ continue;
73
+ }
74
+ }
75
+ return [...parameters.values()].map((item) => item + '\n');
76
+ }
77
+ static isRequired(schema, key) {
78
+ return !(schema.required && schema.required.includes(key));
79
+ }
80
+ static getSchemaEntity(str) {
81
+ const arr = str.split('/');
82
+ return arr[3] || `any`;
83
+ }
84
+ static getDescription(item) {
85
+ return item.description ? ' // ' + item.description.trim().replace(/\"|\n|\\/g, '') : '';
86
+ }
87
+ async run() {
88
+ try {
89
+ return await this.render('schemas');
90
+ }
91
+ catch (err) {
92
+ console.info('===========SchemasTemplate=err==========', err);
93
+ }
94
+ }
95
+ }
96
+ exports.SchemasTemplate = SchemasTemplate;
97
+ //# sourceMappingURL=schemas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../../src/template/schemas.ts"],"names":[],"mappings":"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"}