@voxgig/apidef 0.0.6 → 0.0.7
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 +21 -7
- package/dist/apidef.js.map +1 -1
- package/package.json +2 -2
- package/src/apidef.ts +32 -8
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,
|
|
@@ -164,6 +180,7 @@ function makeOpenAPITransform(spec, opts) {
|
|
|
164
180
|
}
|
|
165
181
|
return function OpenAPITransform(def, model) {
|
|
166
182
|
fixName(model.main.api, spec.meta.name);
|
|
183
|
+
model.main.def.desc = def.info.description;
|
|
167
184
|
(0, jostraca_1.each)(spec.entity, (entity) => {
|
|
168
185
|
const entityModel = model.main.api.entity[entity.key$] = {
|
|
169
186
|
op: {},
|
|
@@ -171,9 +188,6 @@ function makeOpenAPITransform(spec, opts) {
|
|
|
171
188
|
cmd: {},
|
|
172
189
|
};
|
|
173
190
|
fixName(entityModel, entity.key$);
|
|
174
|
-
// const firstPath: any = Object.keys(entity.path)[0]
|
|
175
|
-
// const firstParts = firstPath.split('/')
|
|
176
|
-
// const entityPathPrefix = firstParts[0]
|
|
177
191
|
(0, jostraca_1.each)(entity.path, (path) => {
|
|
178
192
|
const pathdef = def.paths[path.key$];
|
|
179
193
|
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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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@voxgig/apidef",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.7",
|
|
4
4
|
"main": "dist/apidef.js",
|
|
5
5
|
"type": "commonjs",
|
|
6
6
|
"types": "dist/apidef.d.ts",
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
"typescript": "^5.5.4"
|
|
44
44
|
},
|
|
45
45
|
"dependencies": {
|
|
46
|
-
"@redocly/openapi-core": "^1.23.
|
|
46
|
+
"@redocly/openapi-core": "^1.23.1",
|
|
47
47
|
"chokidar": "^3.6.0",
|
|
48
48
|
"jostraca": "^0.4.0"
|
|
49
49
|
}
|
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,
|
|
@@ -215,6 +239,10 @@ function makeOpenAPITransform(spec: any, opts: any) {
|
|
|
215
239
|
return function OpenAPITransform(def: any, model: any) {
|
|
216
240
|
fixName(model.main.api, spec.meta.name)
|
|
217
241
|
|
|
242
|
+
|
|
243
|
+
model.main.def.desc = def.info.description
|
|
244
|
+
|
|
245
|
+
|
|
218
246
|
each(spec.entity, (entity: any) => {
|
|
219
247
|
const entityModel: any = model.main.api.entity[entity.key$] = {
|
|
220
248
|
op: {},
|
|
@@ -224,10 +252,6 @@ function makeOpenAPITransform(spec: any, opts: any) {
|
|
|
224
252
|
|
|
225
253
|
fixName(entityModel, entity.key$)
|
|
226
254
|
|
|
227
|
-
// const firstPath: any = Object.keys(entity.path)[0]
|
|
228
|
-
// const firstParts = firstPath.split('/')
|
|
229
|
-
// const entityPathPrefix = firstParts[0]
|
|
230
|
-
|
|
231
255
|
each(entity.path, (path: any) => {
|
|
232
256
|
const pathdef = def.paths[path.key$]
|
|
233
257
|
|