moyan-api 1.3.2 → 1.3.4

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "moyan-api",
3
- "version": "1.3.2",
3
+ "version": "1.3.4",
4
4
  "description": "使用OpenApi 生成TypeScript的api调用skd",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -1,2 +0,0 @@
1
- #!/usr/bin/env node
2
- import 'colors';
@@ -1,22 +0,0 @@
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
- }
package/dist/src/main.js DELETED
@@ -1,88 +0,0 @@
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
@@ -1 +0,0 @@
1
- {"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/main.ts"],"names":[],"mappings":"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"}
@@ -1,18 +0,0 @@
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
- }
@@ -1,133 +0,0 @@
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
- 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('|') : '------' }));
29
- }
30
- }
31
- this.list = [...paths.values()];
32
- this.schemaKeys = Object.keys(this.openAPIObject.components.schemas);
33
- }
34
- _getReqType(item) {
35
- try {
36
- const key = Object.keys(item.requestBody.content)[0];
37
- return this.getSchemaEntity(item.requestBody.content[key].schema.$ref);
38
- }
39
- catch (_a) {
40
- return this.parseSchema(item);
41
- }
42
- }
43
- parseSchema(schema) {
44
- const parameters = new Map();
45
- ((schema === null || schema === void 0 ? void 0 : schema.parameters) || []).forEach((item) => {
46
- item.in !== 'header' && parameters.set(item.name, item);
47
- });
48
- const arr = [...parameters.values()];
49
- try {
50
- let str = '{';
51
- arr.forEach((item1) => {
52
- const fieldType = item1.schema.$ref ? this.getSchemaEntity(item1.schema.$ref) : item1.schema.type;
53
- const fieldName = item1.name.includes('.') ? `'${item1.name}'` : item1.name;
54
- str += (` ${fieldName}${item1.required ? '' : '?'}:${fieldType},${item1.description ? ' //' + item1.description : ''}`).replace(/\"|\n|\\/g, '') + '\n';
55
- });
56
- str += '}';
57
- return str;
58
- }
59
- catch (e) {
60
- return `any`;
61
- }
62
- }
63
- getSchemaEntity(str) {
64
- const arr = str.split('/');
65
- return arr[3] || `any`;
66
- }
67
- _getResType(item) {
68
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q;
69
- try {
70
- item.responses = item.responses || {};
71
- const key = Object.keys(((_a = item.responses[200]) === null || _a === void 0 ? void 0 : _a.content) ||
72
- ((_b = item.responses[201]) === null || _b === void 0 ? void 0 : _b.content) ||
73
- ((_c = item.responses[202]) === null || _c === void 0 ? void 0 : _c.content) ||
74
- ((_d = item.responses[203]) === null || _d === void 0 ? void 0 : _d.content) ||
75
- ((_e = item.responses[204]) === null || _e === void 0 ? void 0 : _e.content) ||
76
- {})[0];
77
- const schema = ((_g = (_f = item.responses[200]) === null || _f === void 0 ? void 0 : _f.content) === null || _g === void 0 ? void 0 : _g[key].schema)
78
- || ((_j = (_h = item.responses[201]) === null || _h === void 0 ? void 0 : _h.content) === null || _j === void 0 ? void 0 : _j[key].schema)
79
- || ((_l = (_k = item.responses[202]) === null || _k === void 0 ? void 0 : _k.content) === null || _l === void 0 ? void 0 : _l[key].schema)
80
- || ((_o = (_m = item.responses[203]) === null || _m === void 0 ? void 0 : _m.content) === null || _o === void 0 ? void 0 : _o[key].schema)
81
- || ((_q = (_p = item.responses[204]) === null || _p === void 0 ? void 0 : _p.content) === null || _q === void 0 ? void 0 : _q[key].schema)
82
- || { type: 'unknown' };
83
- if (schema.type === 'array') {
84
- if (schema.items && schema.items.$ref) {
85
- return `Array<${this.getSchemaEntity(schema.items.$ref)}>`;
86
- }
87
- else {
88
- return `Array<unknown>`;
89
- }
90
- }
91
- else if (schema.type === 'object' && schema.properties) {
92
- const resType = schemas_1.SchemasTemplate.parseSchema(schema);
93
- let str = `{
94
- ${resType.join('')}}`;
95
- return str;
96
- }
97
- else if (schema.$ref) {
98
- return this.getSchemaEntity(schema.$ref);
99
- }
100
- return `any`;
101
- }
102
- catch (e) {
103
- console.log('e::', item.operationId, e);
104
- return `unknown`;
105
- }
106
- }
107
- _getReqDescription(item) {
108
- try {
109
- return (item.requestBody.description || '').trim().replace(/\"|\n|\\/g, '');
110
- }
111
- catch (_a) {
112
- return '';
113
- }
114
- }
115
- _getResDescription(item) {
116
- try {
117
- return (item.responses[200].description || '').trim().replace(/\"|\n|\\/g, '');
118
- }
119
- catch (_a) {
120
- return '';
121
- }
122
- }
123
- async run() {
124
- try {
125
- return await this.render('api');
126
- }
127
- catch (err) {
128
- console.info('===========ApiTemplate=err==========', err);
129
- }
130
- }
131
- }
132
- exports.ApiTemplate = ApiTemplate;
133
- //# sourceMappingURL=api.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"api.js","sourceRoot":"","sources":["../../../src/template/api.ts"],"names":[],"mappings":"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"}
@@ -1,13 +0,0 @@
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
- }
@@ -1,97 +0,0 @@
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
@@ -1 +0,0 @@
1
- {"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../../src/template/schemas.ts"],"names":[],"mappings":"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"}