@voxgig/sdkgen 0.8.0 → 0.9.1
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/sdkgen.d.ts +2 -1
- package/dist/sdkgen.js +32 -4
- package/dist/sdkgen.js.map +1 -1
- package/package.json +4 -4
- package/src/sdkgen.ts +48 -4
package/dist/sdkgen.d.ts
CHANGED
|
@@ -6,6 +6,7 @@ import { ReadmeInstall } from './cmp/ReadmeInstall';
|
|
|
6
6
|
import { ReadmeOptions } from './cmp/ReadmeOptions';
|
|
7
7
|
import { ReadmeEntity } from './cmp/ReadmeEntity';
|
|
8
8
|
type SdkGenOptions = {
|
|
9
|
+
root: string;
|
|
9
10
|
folder: string;
|
|
10
11
|
def?: string;
|
|
11
12
|
fs: any;
|
|
@@ -22,7 +23,7 @@ declare function SdkGen(opts: SdkGenOptions): {
|
|
|
22
23
|
generate: (spec: any) => Promise<void>;
|
|
23
24
|
};
|
|
24
25
|
declare namespace SdkGen {
|
|
25
|
-
var makeBuild: (
|
|
26
|
+
var makeBuild: (opts: SdkGenOptions) => Promise<(model: any, build: any) => Promise<void>>;
|
|
26
27
|
}
|
|
27
28
|
export type { SdkGenOptions, };
|
|
28
29
|
type Component = (props: any, children?: any) => void;
|
package/dist/sdkgen.js
CHANGED
|
@@ -50,7 +50,14 @@ function SdkGen(opts) {
|
|
|
50
50
|
const def = opts.def || 'def.yml';
|
|
51
51
|
const jostraca = Jostraca();
|
|
52
52
|
async function generate(spec) {
|
|
53
|
-
const { model,
|
|
53
|
+
const { model, config } = spec;
|
|
54
|
+
// console.log('SDKGEN.config', config)
|
|
55
|
+
let Root = spec.root;
|
|
56
|
+
if (null == Root) {
|
|
57
|
+
clear(config.root);
|
|
58
|
+
const rootModule = require(config.root);
|
|
59
|
+
Root = rootModule.Root;
|
|
60
|
+
}
|
|
54
61
|
/*
|
|
55
62
|
if (await prepare(spec, { fs, folder, def })) {
|
|
56
63
|
return
|
|
@@ -59,7 +66,7 @@ function SdkGen(opts) {
|
|
|
59
66
|
// console.log('OPTIONS', opts)
|
|
60
67
|
const opts = { fs, folder, meta: { spec } };
|
|
61
68
|
try {
|
|
62
|
-
await jostraca.generate(opts, () =>
|
|
69
|
+
await jostraca.generate(opts, () => Root({ model }));
|
|
63
70
|
}
|
|
64
71
|
catch (err) {
|
|
65
72
|
console.log('SDKGEN ERROR: ', err);
|
|
@@ -73,11 +80,12 @@ function SdkGen(opts) {
|
|
|
73
80
|
generate,
|
|
74
81
|
};
|
|
75
82
|
}
|
|
76
|
-
SdkGen.makeBuild = async function (
|
|
83
|
+
SdkGen.makeBuild = async function (opts) {
|
|
77
84
|
// console.log('SdkGen.makeBuild', opts)
|
|
78
85
|
const sdkgen = SdkGen(opts);
|
|
79
86
|
const apidef = (0, apidef_1.ApiDef)();
|
|
80
87
|
const config = {
|
|
88
|
+
root: opts.root,
|
|
81
89
|
def: opts.def,
|
|
82
90
|
kind: 'openapi-3',
|
|
83
91
|
model: opts.model ? (opts.model.folder + '/api.jsonic') : undefined,
|
|
@@ -87,9 +95,29 @@ SdkGen.makeBuild = async function (root, opts) {
|
|
|
87
95
|
await apidef.watch(config);
|
|
88
96
|
return async function build(model, build) {
|
|
89
97
|
// TODO: voxgig model needs to handle errors from here
|
|
90
|
-
return sdkgen.generate({ model, build,
|
|
98
|
+
return sdkgen.generate({ model, build, config });
|
|
91
99
|
};
|
|
92
100
|
};
|
|
101
|
+
// Adapted from https://github.com/sindresorhus/import-fresh - Thanks!
|
|
102
|
+
function clear(path) {
|
|
103
|
+
let filePath = require.resolve(path);
|
|
104
|
+
if (require.cache[filePath]) {
|
|
105
|
+
const children = require.cache[filePath].children.map(child => child.id);
|
|
106
|
+
// Delete module from cache
|
|
107
|
+
delete require.cache[filePath];
|
|
108
|
+
for (const id of children) {
|
|
109
|
+
clear(id);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
if (require.cache[filePath] && require.cache[filePath].parent) {
|
|
113
|
+
let i = require.cache[filePath].parent.children.length;
|
|
114
|
+
while (i--) {
|
|
115
|
+
if (require.cache[filePath].parent.children[i].id === filePath) {
|
|
116
|
+
require.cache[filePath].parent.children.splice(i, 1);
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
}
|
|
93
121
|
// Prevents TS2742
|
|
94
122
|
exports.cmp = JostracaModule.cmp;
|
|
95
123
|
exports.names = JostracaModule.names;
|
package/dist/sdkgen.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sdkgen.js","sourceRoot":"","sources":["../src/sdkgen.ts"],"names":[],"mappings":";AAAA,oDAAoD;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"sdkgen.js","sourceRoot":"","sources":["../src/sdkgen.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@voxgig/sdkgen",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.9.1",
|
|
4
4
|
"main": "dist/sdkgen.js",
|
|
5
5
|
"type": "commonjs",
|
|
6
6
|
"types": "dist/sdkgen.d.ts",
|
|
@@ -37,14 +37,14 @@
|
|
|
37
37
|
"@types/js-yaml": "^4.0.9",
|
|
38
38
|
"@types/node": "22.5.5",
|
|
39
39
|
"aontu": "^0.22.0",
|
|
40
|
-
"esbuild": "^0.
|
|
40
|
+
"esbuild": "^0.24.0",
|
|
41
41
|
"json-schema-to-ts": "^3.1.1",
|
|
42
42
|
"memfs": "^4.12.0",
|
|
43
43
|
"typescript": "^5.6.2"
|
|
44
44
|
},
|
|
45
45
|
"dependencies": {
|
|
46
46
|
"@redocly/openapi-core": "^1.25.3",
|
|
47
|
-
"@voxgig/apidef": "^0.0.
|
|
48
|
-
"jostraca": "^0.
|
|
47
|
+
"@voxgig/apidef": "^0.0.9",
|
|
48
|
+
"jostraca": "^0.7.0"
|
|
49
49
|
}
|
|
50
50
|
}
|
package/src/sdkgen.ts
CHANGED
|
@@ -19,6 +19,7 @@ import { PrepareOpenAPI } from './prepare-openapi'
|
|
|
19
19
|
|
|
20
20
|
|
|
21
21
|
type SdkGenOptions = {
|
|
22
|
+
root: string
|
|
22
23
|
folder: string
|
|
23
24
|
def?: string
|
|
24
25
|
fs: any
|
|
@@ -43,7 +44,18 @@ function SdkGen(opts: SdkGenOptions) {
|
|
|
43
44
|
|
|
44
45
|
|
|
45
46
|
async function generate(spec: any) {
|
|
46
|
-
const { model,
|
|
47
|
+
const { model, config } = spec
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
// console.log('SDKGEN.config', config)
|
|
51
|
+
|
|
52
|
+
let Root = spec.root
|
|
53
|
+
|
|
54
|
+
if (null == Root) {
|
|
55
|
+
clear(config.root)
|
|
56
|
+
const rootModule = require(config.root)
|
|
57
|
+
Root = rootModule.Root
|
|
58
|
+
}
|
|
47
59
|
|
|
48
60
|
/*
|
|
49
61
|
if (await prepare(spec, { fs, folder, def })) {
|
|
@@ -56,7 +68,7 @@ function SdkGen(opts: SdkGenOptions) {
|
|
|
56
68
|
const opts = { fs, folder, meta: { spec } }
|
|
57
69
|
|
|
58
70
|
try {
|
|
59
|
-
await jostraca.generate(opts, () =>
|
|
71
|
+
await jostraca.generate(opts, () => Root({ model }))
|
|
60
72
|
}
|
|
61
73
|
catch (err: any) {
|
|
62
74
|
console.log('SDKGEN ERROR: ', err)
|
|
@@ -77,7 +89,7 @@ function SdkGen(opts: SdkGenOptions) {
|
|
|
77
89
|
}
|
|
78
90
|
|
|
79
91
|
|
|
80
|
-
SdkGen.makeBuild = async function(
|
|
92
|
+
SdkGen.makeBuild = async function(opts: SdkGenOptions) {
|
|
81
93
|
// console.log('SdkGen.makeBuild', opts)
|
|
82
94
|
|
|
83
95
|
const sdkgen = SdkGen(opts)
|
|
@@ -85,6 +97,7 @@ SdkGen.makeBuild = async function(root: any, opts: SdkGenOptions) {
|
|
|
85
97
|
const apidef = ApiDef()
|
|
86
98
|
|
|
87
99
|
const config = {
|
|
100
|
+
root: opts.root,
|
|
88
101
|
def: opts.def,
|
|
89
102
|
kind: 'openapi-3',
|
|
90
103
|
model: opts.model ? (opts.model.folder + '/api.jsonic') : undefined,
|
|
@@ -96,12 +109,43 @@ SdkGen.makeBuild = async function(root: any, opts: SdkGenOptions) {
|
|
|
96
109
|
|
|
97
110
|
return async function build(model: any, build: any) {
|
|
98
111
|
// TODO: voxgig model needs to handle errors from here
|
|
99
|
-
return sdkgen.generate({ model, build,
|
|
112
|
+
return sdkgen.generate({ model, build, config })
|
|
100
113
|
}
|
|
101
114
|
}
|
|
102
115
|
|
|
103
116
|
|
|
104
117
|
|
|
118
|
+
// Adapted from https://github.com/sindresorhus/import-fresh - Thanks!
|
|
119
|
+
function clear(path: string) {
|
|
120
|
+
let filePath = require.resolve(path)
|
|
121
|
+
|
|
122
|
+
if (require.cache[filePath]) {
|
|
123
|
+
const children = require.cache[filePath].children.map(child => child.id)
|
|
124
|
+
|
|
125
|
+
// Delete module from cache
|
|
126
|
+
delete require.cache[filePath]
|
|
127
|
+
|
|
128
|
+
for (const id of children) {
|
|
129
|
+
clear(id)
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
|
|
134
|
+
if (require.cache[filePath] && require.cache[filePath].parent) {
|
|
135
|
+
let i = require.cache[filePath].parent.children.length
|
|
136
|
+
|
|
137
|
+
while (i--) {
|
|
138
|
+
if (require.cache[filePath].parent.children[i].id === filePath) {
|
|
139
|
+
require.cache[filePath].parent.children.splice(i, 1)
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
|
|
147
|
+
|
|
148
|
+
|
|
105
149
|
export type {
|
|
106
150
|
SdkGenOptions,
|
|
107
151
|
}
|