@voxgig/apidef 0.0.6 → 0.0.8
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/dist/apidef.d.ts +1 -0
- package/dist/apidef.js +25 -9
- package/dist/apidef.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/package.json +7 -7
- package/src/apidef.ts +39 -10
package/dist/apidef.d.ts
CHANGED
package/dist/apidef.js
CHANGED
|
@@ -23,9 +23,13 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
23
23
|
__setModuleDefault(result, mod);
|
|
24
24
|
return result;
|
|
25
25
|
};
|
|
26
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
27
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
28
|
+
};
|
|
26
29
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
27
30
|
exports.ApiDef = ApiDef;
|
|
28
31
|
const Fs = __importStar(require("node:fs"));
|
|
32
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
29
33
|
const openapi_core_1 = require("@redocly/openapi-core");
|
|
30
34
|
const chokidar_1 = require("chokidar");
|
|
31
35
|
const jostraca_1 = require("jostraca");
|
|
@@ -42,6 +46,7 @@ function ApiDef(opts = {}) {
|
|
|
42
46
|
async function generate(spec) {
|
|
43
47
|
const transform = resolveTranform(spec, opts);
|
|
44
48
|
const source = fs.readFileSync(spec.def, 'utf8');
|
|
49
|
+
const modelBasePath = node_path_1.default.dirname(spec.model);
|
|
45
50
|
const config = await (0, openapi_core_1.createConfig)({});
|
|
46
51
|
const bundle = await (0, openapi_core_1.bundleFromString)({
|
|
47
52
|
source,
|
|
@@ -49,7 +54,12 @@ function ApiDef(opts = {}) {
|
|
|
49
54
|
dereference: true,
|
|
50
55
|
});
|
|
51
56
|
const model = {
|
|
52
|
-
main: {
|
|
57
|
+
main: {
|
|
58
|
+
api: {
|
|
59
|
+
entity: {}
|
|
60
|
+
},
|
|
61
|
+
def: {},
|
|
62
|
+
},
|
|
53
63
|
};
|
|
54
64
|
try {
|
|
55
65
|
const def = bundle.bundle.parsed;
|
|
@@ -60,9 +70,15 @@ function ApiDef(opts = {}) {
|
|
|
60
70
|
console.log('APIDEF ERROR', err);
|
|
61
71
|
throw err;
|
|
62
72
|
}
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
73
|
+
const modelapi = { main: { api: model.main.api } };
|
|
74
|
+
let modelSrc = JSON.stringify(modelapi, null, 2);
|
|
75
|
+
modelSrc = modelSrc.substring(1, modelSrc.length - 1);
|
|
76
|
+
fs.writeFileSync(spec.model, modelSrc);
|
|
77
|
+
const defFilePath = node_path_1.default.join(modelBasePath, 'def.jsonic');
|
|
78
|
+
const modelDef = { main: { def: model.main.def } };
|
|
79
|
+
let modelDefSrc = JSON.stringify(modelDef, null, 2);
|
|
80
|
+
modelDefSrc = modelDefSrc.substring(1, modelDefSrc.length - 1);
|
|
81
|
+
fs.writeFileSync(defFilePath, modelDefSrc);
|
|
66
82
|
return {
|
|
67
83
|
ok: true,
|
|
68
84
|
model,
|
|
@@ -93,14 +109,16 @@ function makeOpenAPITransform(spec, opts) {
|
|
|
93
109
|
required: paramDef.required
|
|
94
110
|
};
|
|
95
111
|
fixName(paramMap[paramDef.name], paramDef.name);
|
|
96
|
-
|
|
112
|
+
const type = paramDef.schema ? paramDef.schema.type : paramDef.type;
|
|
113
|
+
fixName(paramMap[paramDef.name], type, 'type');
|
|
97
114
|
};
|
|
98
115
|
const queryBuilder = (queryMap, queryDef, entityModel, pathdef, op, path, entity, model) => {
|
|
99
116
|
queryMap[queryDef.name] = {
|
|
100
117
|
required: queryDef.required
|
|
101
118
|
};
|
|
102
119
|
fixName(queryMap[queryDef.name], queryDef.name);
|
|
103
|
-
|
|
120
|
+
const type = queryDef.schema ? queryDef.schema.type : queryDef.type;
|
|
121
|
+
fixName(queryMap[queryDef.name], type, 'type');
|
|
104
122
|
};
|
|
105
123
|
const opBuilder = {
|
|
106
124
|
any: (entityModel, pathdef, op, path, entity, model) => {
|
|
@@ -164,6 +182,7 @@ function makeOpenAPITransform(spec, opts) {
|
|
|
164
182
|
}
|
|
165
183
|
return function OpenAPITransform(def, model) {
|
|
166
184
|
fixName(model.main.api, spec.meta.name);
|
|
185
|
+
model.main.def.desc = def.info.description;
|
|
167
186
|
(0, jostraca_1.each)(spec.entity, (entity) => {
|
|
168
187
|
const entityModel = model.main.api.entity[entity.key$] = {
|
|
169
188
|
op: {},
|
|
@@ -171,9 +190,6 @@ function makeOpenAPITransform(spec, opts) {
|
|
|
171
190
|
cmd: {},
|
|
172
191
|
};
|
|
173
192
|
fixName(entityModel, entity.key$);
|
|
174
|
-
// const firstPath: any = Object.keys(entity.path)[0]
|
|
175
|
-
// const firstParts = firstPath.split('/')
|
|
176
|
-
// const entityPathPrefix = firstParts[0]
|
|
177
193
|
(0, jostraca_1.each)(entity.path, (path) => {
|
|
178
194
|
const pathdef = def.paths[path.key$];
|
|
179
195
|
if (null == pathdef) {
|
package/dist/apidef.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apidef.js","sourceRoot":"","sources":["../src/apidef.ts"],"names":[],"mappings":";AAAA,oDAAoD
|
|
1
|
+
{"version":3,"file":"apidef.js","sourceRoot":"","sources":["../src/apidef.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"root":["../src/apidef.ts"],"version":"5.6.2"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@voxgig/apidef",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.8",
|
|
4
4
|
"main": "dist/apidef.js",
|
|
5
5
|
"type": "commonjs",
|
|
6
6
|
"types": "dist/apidef.d.ts",
|
|
@@ -35,16 +35,16 @@
|
|
|
35
35
|
"devDependencies": {
|
|
36
36
|
"@hapi/code": "^9.0.3",
|
|
37
37
|
"@types/js-yaml": "^4.0.9",
|
|
38
|
-
"@types/node": "22.5.
|
|
38
|
+
"@types/node": "22.5.5",
|
|
39
39
|
"aontu": "^0.22.0",
|
|
40
40
|
"esbuild": "^0.23.1",
|
|
41
41
|
"json-schema-to-ts": "^3.1.1",
|
|
42
|
-
"memfs": "^4.
|
|
43
|
-
"typescript": "^5.
|
|
42
|
+
"memfs": "^4.12.0",
|
|
43
|
+
"typescript": "^5.6.2"
|
|
44
44
|
},
|
|
45
45
|
"dependencies": {
|
|
46
|
-
"@redocly/openapi-core": "^1.
|
|
47
|
-
"chokidar": "^
|
|
48
|
-
"jostraca": "^0.
|
|
46
|
+
"@redocly/openapi-core": "^1.25.3",
|
|
47
|
+
"chokidar": "^4.0.0",
|
|
48
|
+
"jostraca": "^0.6.0"
|
|
49
49
|
}
|
|
50
50
|
}
|
package/src/apidef.ts
CHANGED
|
@@ -2,6 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
import * as Fs from 'node:fs'
|
|
4
4
|
|
|
5
|
+
import Path from 'node:path'
|
|
6
|
+
|
|
7
|
+
|
|
5
8
|
import { bundleFromString, createConfig } from '@redocly/openapi-core'
|
|
6
9
|
|
|
7
10
|
import { FSWatcher } from 'chokidar'
|
|
@@ -38,6 +41,8 @@ function ApiDef(opts: ApiDefOptions = {}) {
|
|
|
38
41
|
|
|
39
42
|
const source = fs.readFileSync(spec.def, 'utf8')
|
|
40
43
|
|
|
44
|
+
const modelBasePath = Path.dirname(spec.model)
|
|
45
|
+
|
|
41
46
|
const config = await createConfig({})
|
|
42
47
|
const bundle = await bundleFromString({
|
|
43
48
|
source,
|
|
@@ -46,7 +51,12 @@ function ApiDef(opts: ApiDefOptions = {}) {
|
|
|
46
51
|
})
|
|
47
52
|
|
|
48
53
|
const model = {
|
|
49
|
-
main: {
|
|
54
|
+
main: {
|
|
55
|
+
api: {
|
|
56
|
+
entity: {}
|
|
57
|
+
},
|
|
58
|
+
def: {},
|
|
59
|
+
},
|
|
50
60
|
}
|
|
51
61
|
|
|
52
62
|
try {
|
|
@@ -59,14 +69,28 @@ function ApiDef(opts: ApiDefOptions = {}) {
|
|
|
59
69
|
throw err
|
|
60
70
|
}
|
|
61
71
|
|
|
62
|
-
|
|
63
|
-
|
|
72
|
+
const modelapi = { main: { api: model.main.api } }
|
|
73
|
+
let modelSrc = JSON.stringify(modelapi, null, 2)
|
|
74
|
+
modelSrc = modelSrc.substring(1, modelSrc.length - 1)
|
|
64
75
|
|
|
65
76
|
fs.writeFileSync(
|
|
66
77
|
spec.model,
|
|
67
|
-
|
|
78
|
+
modelSrc
|
|
79
|
+
)
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
const defFilePath = Path.join(modelBasePath, 'def.jsonic')
|
|
83
|
+
|
|
84
|
+
const modelDef = { main: { def: model.main.def } }
|
|
85
|
+
let modelDefSrc = JSON.stringify(modelDef, null, 2)
|
|
86
|
+
modelDefSrc = modelDefSrc.substring(1, modelDefSrc.length - 1)
|
|
87
|
+
|
|
88
|
+
fs.writeFileSync(
|
|
89
|
+
defFilePath,
|
|
90
|
+
modelDefSrc
|
|
68
91
|
)
|
|
69
92
|
|
|
93
|
+
|
|
70
94
|
return {
|
|
71
95
|
ok: true,
|
|
72
96
|
model,
|
|
@@ -108,11 +132,14 @@ function makeOpenAPITransform(spec: any, opts: any) {
|
|
|
108
132
|
const paramBuilder = (paramMap: any, paramDef: any,
|
|
109
133
|
entityModel: any, pathdef: any,
|
|
110
134
|
op: any, path: any, entity: any, model: any) => {
|
|
135
|
+
|
|
111
136
|
paramMap[paramDef.name] = {
|
|
112
137
|
required: paramDef.required
|
|
113
138
|
}
|
|
114
139
|
fixName(paramMap[paramDef.name], paramDef.name)
|
|
115
|
-
|
|
140
|
+
|
|
141
|
+
const type = paramDef.schema ? paramDef.schema.type : paramDef.type
|
|
142
|
+
fixName(paramMap[paramDef.name], type, 'type')
|
|
116
143
|
}
|
|
117
144
|
|
|
118
145
|
|
|
@@ -123,7 +150,9 @@ function makeOpenAPITransform(spec: any, opts: any) {
|
|
|
123
150
|
required: queryDef.required
|
|
124
151
|
}
|
|
125
152
|
fixName(queryMap[queryDef.name], queryDef.name)
|
|
126
|
-
|
|
153
|
+
|
|
154
|
+
const type = queryDef.schema ? queryDef.schema.type : queryDef.type
|
|
155
|
+
fixName(queryMap[queryDef.name], type, 'type')
|
|
127
156
|
}
|
|
128
157
|
|
|
129
158
|
|
|
@@ -215,6 +244,10 @@ function makeOpenAPITransform(spec: any, opts: any) {
|
|
|
215
244
|
return function OpenAPITransform(def: any, model: any) {
|
|
216
245
|
fixName(model.main.api, spec.meta.name)
|
|
217
246
|
|
|
247
|
+
|
|
248
|
+
model.main.def.desc = def.info.description
|
|
249
|
+
|
|
250
|
+
|
|
218
251
|
each(spec.entity, (entity: any) => {
|
|
219
252
|
const entityModel: any = model.main.api.entity[entity.key$] = {
|
|
220
253
|
op: {},
|
|
@@ -224,10 +257,6 @@ function makeOpenAPITransform(spec: any, opts: any) {
|
|
|
224
257
|
|
|
225
258
|
fixName(entityModel, entity.key$)
|
|
226
259
|
|
|
227
|
-
// const firstPath: any = Object.keys(entity.path)[0]
|
|
228
|
-
// const firstParts = firstPath.split('/')
|
|
229
|
-
// const entityPathPrefix = firstParts[0]
|
|
230
|
-
|
|
231
260
|
each(entity.path, (path: any) => {
|
|
232
261
|
const pathdef = def.paths[path.key$]
|
|
233
262
|
|