@voxgig/sdkgen 0.12.0 → 0.14.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.
- package/dist/cmp/Entity.js +1 -2
- package/dist/cmp/Entity.js.map +1 -1
- package/dist/cmp/ReadmeInstall.js +1 -1
- package/dist/cmp/ReadmeInstall.js.map +1 -1
- package/dist/cmp/ReadmeQuick.js +1 -1
- package/dist/cmp/ReadmeQuick.js.map +1 -1
- package/dist/sdkgen.d.ts +5 -1
- package/dist/sdkgen.js +38 -22
- package/dist/sdkgen.js.map +1 -1
- package/dist/utility.js +5 -3
- package/dist/utility.js.map +1 -1
- package/package.json +9 -6
- package/src/cmp/Entity.ts +2 -4
- package/src/cmp/ReadmeInstall.ts +2 -1
- package/src/cmp/ReadmeQuick.ts +2 -2
- package/src/sdkgen.ts +49 -26
- package/src/utility.ts +5 -3
package/dist/cmp/Entity.js
CHANGED
|
@@ -5,8 +5,7 @@ const jostraca_1 = require("jostraca");
|
|
|
5
5
|
const utility_1 = require("../utility");
|
|
6
6
|
const Entity = (0, jostraca_1.cmp)(function Entity(props) {
|
|
7
7
|
const { build, entity, ctx$ } = props;
|
|
8
|
-
|
|
9
|
-
const Entity_sdk = require((0, utility_1.resolvePath)(ctx$, `./${build.name}/Entity_${build.name}`));
|
|
8
|
+
const Entity_sdk = (0, utility_1.requirePath)(ctx$, `./${build.name}/Entity_${build.name}`);
|
|
10
9
|
Entity_sdk['Entity']({ build, entity });
|
|
11
10
|
});
|
|
12
11
|
exports.Entity = Entity;
|
package/dist/cmp/Entity.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Entity.js","sourceRoot":"","sources":["../../src/cmp/Entity.ts"],"names":[],"mappings":";;;AACA,uCAA8B;AAE9B,wCAAwC;AAGxC,MAAM,MAAM,GAAG,IAAA,cAAG,EAAC,SAAS,MAAM,CAAC,KAAU;IAC3C,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,CAAA;IAErC,
|
|
1
|
+
{"version":3,"file":"Entity.js","sourceRoot":"","sources":["../../src/cmp/Entity.ts"],"names":[],"mappings":";;;AACA,uCAA8B;AAE9B,wCAAwC;AAGxC,MAAM,MAAM,GAAG,IAAA,cAAG,EAAC,SAAS,MAAM,CAAC,KAAU;IAC3C,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,CAAA;IAErC,MAAM,UAAU,GAAG,IAAA,qBAAW,EAAC,IAAI,EAAE,KAAK,KAAK,CAAC,IAAI,WAAW,KAAK,CAAC,IAAI,EAAE,CAAC,CAAA;IAC5E,UAAU,CAAC,QAAQ,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAA;AACzC,CAAC,CAAC,CAAA;AAIA,wBAAM"}
|
|
@@ -9,7 +9,7 @@ const ReadmeInstall = (0, jostraca_1.cmp)(function ReadmeInstall(props) {
|
|
|
9
9
|
## Install
|
|
10
10
|
`);
|
|
11
11
|
// Optional
|
|
12
|
-
const ReadmeInstall_sdk = (0, utility_1.requirePath)(ctx$, `./${build.name}/ReadmeInstall_${build.name}
|
|
12
|
+
const ReadmeInstall_sdk = (0, utility_1.requirePath)(ctx$, `./${build.name}/ReadmeInstall_${build.name}`, { ignore: true });
|
|
13
13
|
if (ReadmeInstall_sdk) {
|
|
14
14
|
ReadmeInstall_sdk['ReadmeInstall']({ build });
|
|
15
15
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReadmeInstall.js","sourceRoot":"","sources":["../../src/cmp/ReadmeInstall.ts"],"names":[],"mappings":";;;AAEA,uCAAuC;AAEvC,wCAAwC;AAGxC,MAAM,aAAa,GAAG,IAAA,cAAG,EAAC,SAAS,aAAa,CAAC,KAAU;IACzD,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,KAAK,CAAA;IAE7B,IAAA,kBAAO,EAAC;;CAET,CAAC,CAAA;IAEA,WAAW;IACX,MAAM,iBAAiB,
|
|
1
|
+
{"version":3,"file":"ReadmeInstall.js","sourceRoot":"","sources":["../../src/cmp/ReadmeInstall.ts"],"names":[],"mappings":";;;AAEA,uCAAuC;AAEvC,wCAAwC;AAGxC,MAAM,aAAa,GAAG,IAAA,cAAG,EAAC,SAAS,aAAa,CAAC,KAAU;IACzD,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,KAAK,CAAA;IAE7B,IAAA,kBAAO,EAAC;;CAET,CAAC,CAAA;IAEA,WAAW;IACX,MAAM,iBAAiB,GACrB,IAAA,qBAAW,EAAC,IAAI,EAAE,KAAK,KAAK,CAAC,IAAI,kBAAkB,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAA;IAEpF,IAAI,iBAAiB,EAAE,CAAC;QACtB,iBAAiB,CAAC,eAAe,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAA;IAC/C,CAAC;AACH,CAAC,CAAC,CAAA;AAOA,sCAAa"}
|
package/dist/cmp/ReadmeQuick.js
CHANGED
|
@@ -9,7 +9,7 @@ const ReadmeQuick = (0, jostraca_1.cmp)(function ReadmeQuick(props) {
|
|
|
9
9
|
## Quick Start
|
|
10
10
|
|
|
11
11
|
`);
|
|
12
|
-
const ReadmeQuick_sdk = (0, utility_1.requirePath)(ctx$, `./${build.name}/ReadmeQuick_${build.name}
|
|
12
|
+
const ReadmeQuick_sdk = (0, utility_1.requirePath)(ctx$, `./${build.name}/ReadmeQuick_${build.name}`, { ignore: true });
|
|
13
13
|
if (ReadmeQuick_sdk) {
|
|
14
14
|
ReadmeQuick_sdk['ReadmeQuick']({ build });
|
|
15
15
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReadmeQuick.js","sourceRoot":"","sources":["../../src/cmp/ReadmeQuick.ts"],"names":[],"mappings":";;;AACA,uCAAuC;AAEvC,wCAAwC;AAGxC,MAAM,WAAW,GAAG,IAAA,cAAG,EAAC,SAAS,WAAW,CAAC,KAAU;IACrD,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,KAAK,CAAA;IAE7B,IAAA,kBAAO,EAAC;;;CAGT,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"ReadmeQuick.js","sourceRoot":"","sources":["../../src/cmp/ReadmeQuick.ts"],"names":[],"mappings":";;;AACA,uCAAuC;AAEvC,wCAAwC;AAGxC,MAAM,WAAW,GAAG,IAAA,cAAG,EAAC,SAAS,WAAW,CAAC,KAAU;IACrD,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,KAAK,CAAA;IAE7B,IAAA,kBAAO,EAAC;;;CAGT,CAAC,CAAA;IAEA,MAAM,eAAe,GACnB,IAAA,qBAAW,EAAC,IAAI,EAAE,KAAK,KAAK,CAAC,IAAI,gBAAgB,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAA;IAElF,IAAI,eAAe,EAAE,CAAC;QACpB,eAAe,CAAC,aAAa,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAA;IAC3C,CAAC;AACH,CAAC,CAAC,CAAA;AAMA,kCAAW"}
|
package/dist/sdkgen.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import * as JostracaModule from 'jostraca';
|
|
2
|
+
import { Pino } from '@voxgig/util';
|
|
2
3
|
import { Main } from './cmp/Main';
|
|
3
4
|
import { Entity } from './cmp/Entity';
|
|
4
5
|
import { Feature } from './cmp/Feature';
|
|
@@ -18,13 +19,16 @@ type SdkGenOptions = {
|
|
|
18
19
|
meta?: {
|
|
19
20
|
name: string;
|
|
20
21
|
};
|
|
22
|
+
debug?: boolean | string;
|
|
23
|
+
pino?: ReturnType<typeof Pino>;
|
|
21
24
|
};
|
|
22
25
|
declare const Jostraca: typeof JostracaModule.Jostraca;
|
|
23
26
|
declare function SdkGen(opts: SdkGenOptions): {
|
|
27
|
+
pino: import("pino").Logger<string, boolean>;
|
|
24
28
|
generate: (spec: any) => Promise<void>;
|
|
25
29
|
};
|
|
26
30
|
declare namespace SdkGen {
|
|
27
|
-
var makeBuild: (opts: SdkGenOptions) => Promise<(model: any, build: any) => Promise<void>>;
|
|
31
|
+
var makeBuild: (opts: SdkGenOptions) => Promise<(model: any, build: any, ctx: any) => Promise<void>>;
|
|
28
32
|
}
|
|
29
33
|
export type { SdkGenOptions, };
|
|
30
34
|
type Component = (props: any, children?: any) => void;
|
package/dist/sdkgen.js
CHANGED
|
@@ -28,6 +28,9 @@ exports.Jostraca = exports.ReadmeEntity = exports.ReadmeOptions = exports.Readme
|
|
|
28
28
|
exports.SdkGen = SdkGen;
|
|
29
29
|
const Fs = __importStar(require("node:fs"));
|
|
30
30
|
const JostracaModule = __importStar(require("jostraca"));
|
|
31
|
+
// import Pino from 'pino'
|
|
32
|
+
// import PinoPretty from 'pino-pretty'
|
|
33
|
+
const util_1 = require("@voxgig/util");
|
|
31
34
|
const apidef_1 = require("@voxgig/apidef");
|
|
32
35
|
const Main_1 = require("./cmp/Main");
|
|
33
36
|
Object.defineProperty(exports, "Main", { enumerable: true, get: function () { return Main_1.Main; } });
|
|
@@ -49,13 +52,18 @@ exports.Jostraca = Jostraca;
|
|
|
49
52
|
function SdkGen(opts) {
|
|
50
53
|
const fs = opts.fs || Fs;
|
|
51
54
|
const folder = opts.folder || '.';
|
|
52
|
-
const def = opts.def || 'def.yml'
|
|
55
|
+
// const def = opts.def || 'def.yml'
|
|
53
56
|
const jostraca = Jostraca();
|
|
57
|
+
const pino = (0, util_1.prettyPino)('sdkgen', opts);
|
|
58
|
+
const log = pino.child({ cmp: 'sdkgen' });
|
|
59
|
+
// console.log('SDKGEN OPTS', opts)
|
|
54
60
|
async function generate(spec) {
|
|
61
|
+
const start = Date.now();
|
|
55
62
|
const { model, config } = spec;
|
|
56
|
-
|
|
63
|
+
log.info({ point: 'generate-start', start });
|
|
64
|
+
log.debug({ point: 'generate-spec', spec });
|
|
57
65
|
let Root = spec.root;
|
|
58
|
-
if (null == Root) {
|
|
66
|
+
if (null == Root && null != config.root) {
|
|
59
67
|
clear(config.root);
|
|
60
68
|
const rootModule = require(config.root);
|
|
61
69
|
Root = rootModule.Root;
|
|
@@ -65,43 +73,51 @@ function SdkGen(opts) {
|
|
|
65
73
|
return
|
|
66
74
|
}
|
|
67
75
|
*/
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
await jostraca.generate(opts, () => Root({ model }));
|
|
72
|
-
}
|
|
73
|
-
catch (err) {
|
|
74
|
-
console.log('SDKGEN ERROR: ', err);
|
|
75
|
-
throw err;
|
|
76
|
-
}
|
|
76
|
+
const opts = { fs, folder, log: log.child({ cmp: 'jostraca' }), meta: { spec } };
|
|
77
|
+
await jostraca.generate(opts, () => Root({ model }));
|
|
78
|
+
log.info({ point: 'generate-end' });
|
|
77
79
|
}
|
|
78
80
|
async function prepare(spec, ctx) {
|
|
79
81
|
return await (0, prepare_openapi_1.PrepareOpenAPI)(spec, ctx);
|
|
80
82
|
}
|
|
81
83
|
return {
|
|
84
|
+
pino,
|
|
82
85
|
generate,
|
|
83
86
|
};
|
|
84
87
|
}
|
|
85
88
|
SdkGen.makeBuild = async function (opts) {
|
|
86
|
-
|
|
87
|
-
const sdkgen = SdkGen(opts);
|
|
88
|
-
const apidef = (0, apidef_1.ApiDef)();
|
|
89
|
+
let sdkgen = undefined;
|
|
89
90
|
const config = {
|
|
90
91
|
root: opts.root,
|
|
91
|
-
def: opts.def,
|
|
92
|
+
def: opts.def || 'no-def',
|
|
92
93
|
kind: 'openapi-3',
|
|
93
|
-
model: opts.model ? (opts.model.folder + '/api.jsonic') :
|
|
94
|
+
model: opts.model ? (opts.model.folder + '/api.jsonic') : 'no-model',
|
|
94
95
|
meta: opts.meta || {},
|
|
95
|
-
entity: opts.model ? opts.model.entity : undefined,
|
|
96
96
|
};
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
97
|
+
return async function build(model, build, ctx) {
|
|
98
|
+
if (null == sdkgen) {
|
|
99
|
+
sdkgen = SdkGen({
|
|
100
|
+
...opts,
|
|
101
|
+
pino: build.log,
|
|
102
|
+
});
|
|
103
|
+
const apidef = (0, apidef_1.ApiDef)({
|
|
104
|
+
pino: build.log,
|
|
105
|
+
});
|
|
106
|
+
if (true === ctx.watch) {
|
|
107
|
+
await apidef.watch(config);
|
|
108
|
+
}
|
|
109
|
+
else {
|
|
110
|
+
await apidef.generate(config);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
await sdkgen.generate({ model, build, config });
|
|
101
114
|
};
|
|
102
115
|
};
|
|
103
116
|
// Adapted from https://github.com/sindresorhus/import-fresh - Thanks!
|
|
104
117
|
function clear(path) {
|
|
118
|
+
if (null == path) {
|
|
119
|
+
return;
|
|
120
|
+
}
|
|
105
121
|
let filePath = require.resolve(path);
|
|
106
122
|
if (require.cache[filePath]) {
|
|
107
123
|
const children = require.cache[filePath].children.map(child => child.id);
|
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/dist/utility.js
CHANGED
|
@@ -12,15 +12,17 @@ const resolvePath = (ctx$, path) => {
|
|
|
12
12
|
exports.resolvePath = resolvePath;
|
|
13
13
|
const requirePath = (ctx$, path, flags) => {
|
|
14
14
|
const fullpath = resolvePath(ctx$, path);
|
|
15
|
-
const ignore = null == flags?.ignore ?
|
|
15
|
+
const ignore = null == flags?.ignore ? false : flags.ignore;
|
|
16
16
|
try {
|
|
17
17
|
return require(fullpath);
|
|
18
18
|
}
|
|
19
19
|
catch (err) {
|
|
20
|
-
if (
|
|
20
|
+
if (ignore) {
|
|
21
|
+
ctx$.log.warn({ point: 'require-missing', path, note: path });
|
|
22
|
+
}
|
|
23
|
+
else {
|
|
21
24
|
throw err;
|
|
22
25
|
}
|
|
23
|
-
console.warn('MISSING: ', path);
|
|
24
26
|
}
|
|
25
27
|
};
|
|
26
28
|
exports.requirePath = requirePath;
|
package/dist/utility.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utility.js","sourceRoot":"","sources":["../src/utility.ts"],"names":[],"mappings":";;;;;;AACA,0DAA4B;AAG5B,MAAM,WAAW,GAAG,CAAC,IAAS,EAAE,IAAY,EAAO,EAAE;IACnD,MAAM,QAAQ,GAAG,mBAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,CAAA;IAC3D,OAAO,QAAQ,CAAA;AACjB,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"utility.js","sourceRoot":"","sources":["../src/utility.ts"],"names":[],"mappings":";;;;;;AACA,0DAA4B;AAG5B,MAAM,WAAW,GAAG,CAAC,IAAS,EAAE,IAAY,EAAO,EAAE;IACnD,MAAM,QAAQ,GAAG,mBAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,CAAA;IAC3D,OAAO,QAAQ,CAAA;AACjB,CAAC,CAAA;AAuBC,kCAAW;AApBb,MAAM,WAAW,GAAG,CAAC,IAAS,EAAE,IAAY,EAAE,KAA4B,EAAO,EAAE;IACjF,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;IACxC,MAAM,MAAM,GAAG,IAAI,IAAI,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAA;IAE3D,IAAI,CAAC;QACH,OAAO,OAAO,CAAC,QAAQ,CAAC,CAAA;IAC1B,CAAC;IACD,OAAO,GAAQ,EAAE,CAAC;QAChB,IAAI,MAAM,EAAE,CAAC;YACX,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;QAC/D,CAAC;aACI,CAAC;YACJ,MAAM,GAAG,CAAA;QACX,CAAC;IACH,CAAC;AACH,CAAC,CAAA;AAMC,kCAAW"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@voxgig/sdkgen",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.14.0",
|
|
4
4
|
"main": "dist/sdkgen.js",
|
|
5
5
|
"type": "commonjs",
|
|
6
6
|
"types": "dist/sdkgen.d.ts",
|
|
@@ -37,16 +37,19 @@
|
|
|
37
37
|
"devDependencies": {
|
|
38
38
|
"@hapi/code": "^9.0.3",
|
|
39
39
|
"@types/js-yaml": "^4.0.9",
|
|
40
|
-
"@types/node": "22.
|
|
41
|
-
"aontu": "^0.
|
|
40
|
+
"@types/node": "22.9.0",
|
|
41
|
+
"aontu": "^0.25.1",
|
|
42
42
|
"esbuild": "^0.24.0",
|
|
43
43
|
"json-schema-to-ts": "^3.1.1",
|
|
44
44
|
"memfs": "^4.14.0",
|
|
45
45
|
"typescript": "^5.6.3"
|
|
46
46
|
},
|
|
47
47
|
"dependencies": {
|
|
48
|
-
"@redocly/openapi-core": "^1.25.
|
|
49
|
-
"@voxgig/apidef": "^
|
|
50
|
-
"
|
|
48
|
+
"@redocly/openapi-core": "^1.25.11",
|
|
49
|
+
"@voxgig/apidef": "^1.1.1",
|
|
50
|
+
"@voxgig/util": "^0.0.6",
|
|
51
|
+
"jostraca": "^0.8.1",
|
|
52
|
+
"pino": "^9.5.0",
|
|
53
|
+
"pino-pretty": "^13.0.0"
|
|
51
54
|
}
|
|
52
55
|
}
|
package/src/cmp/Entity.ts
CHANGED
|
@@ -1,15 +1,13 @@
|
|
|
1
1
|
|
|
2
2
|
import { cmp } from 'jostraca'
|
|
3
3
|
|
|
4
|
-
import {
|
|
4
|
+
import { requirePath } from '../utility'
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
const Entity = cmp(function Entity(props: any) {
|
|
8
8
|
const { build, entity, ctx$ } = props
|
|
9
9
|
|
|
10
|
-
|
|
11
|
-
const Entity_sdk = require(resolvePath(ctx$, `./${build.name}/Entity_${build.name}`))
|
|
12
|
-
|
|
10
|
+
const Entity_sdk = requirePath(ctx$, `./${build.name}/Entity_${build.name}`)
|
|
13
11
|
Entity_sdk['Entity']({ build, entity })
|
|
14
12
|
})
|
|
15
13
|
|
package/src/cmp/ReadmeInstall.ts
CHANGED
|
@@ -13,7 +13,8 @@ const ReadmeInstall = cmp(function ReadmeInstall(props: any) {
|
|
|
13
13
|
`)
|
|
14
14
|
|
|
15
15
|
// Optional
|
|
16
|
-
const ReadmeInstall_sdk =
|
|
16
|
+
const ReadmeInstall_sdk =
|
|
17
|
+
requirePath(ctx$, `./${build.name}/ReadmeInstall_${build.name}`, { ignore: true })
|
|
17
18
|
|
|
18
19
|
if (ReadmeInstall_sdk) {
|
|
19
20
|
ReadmeInstall_sdk['ReadmeInstall']({ build })
|
package/src/cmp/ReadmeQuick.ts
CHANGED
|
@@ -12,8 +12,8 @@ const ReadmeQuick = cmp(function ReadmeQuick(props: any) {
|
|
|
12
12
|
|
|
13
13
|
`)
|
|
14
14
|
|
|
15
|
-
|
|
16
|
-
|
|
15
|
+
const ReadmeQuick_sdk =
|
|
16
|
+
requirePath(ctx$, `./${build.name}/ReadmeQuick_${build.name}`, { ignore: true })
|
|
17
17
|
|
|
18
18
|
if (ReadmeQuick_sdk) {
|
|
19
19
|
ReadmeQuick_sdk['ReadmeQuick']({ build })
|
package/src/sdkgen.ts
CHANGED
|
@@ -5,6 +5,11 @@ import * as Fs from 'node:fs'
|
|
|
5
5
|
|
|
6
6
|
import * as JostracaModule from 'jostraca'
|
|
7
7
|
|
|
8
|
+
// import Pino from 'pino'
|
|
9
|
+
// import PinoPretty from 'pino-pretty'
|
|
10
|
+
|
|
11
|
+
import { prettyPino, Pino } from '@voxgig/util'
|
|
12
|
+
|
|
8
13
|
import { ApiDef } from '@voxgig/apidef'
|
|
9
14
|
|
|
10
15
|
|
|
@@ -31,6 +36,8 @@ type SdkGenOptions = {
|
|
|
31
36
|
meta?: {
|
|
32
37
|
name: string
|
|
33
38
|
}
|
|
39
|
+
debug?: boolean | string
|
|
40
|
+
pino?: ReturnType<typeof Pino>
|
|
34
41
|
}
|
|
35
42
|
|
|
36
43
|
|
|
@@ -40,21 +47,28 @@ const { Jostraca } = JostracaModule
|
|
|
40
47
|
function SdkGen(opts: SdkGenOptions) {
|
|
41
48
|
const fs = opts.fs || Fs
|
|
42
49
|
const folder = opts.folder || '.'
|
|
43
|
-
const def = opts.def || 'def.yml'
|
|
50
|
+
// const def = opts.def || 'def.yml'
|
|
44
51
|
const jostraca = Jostraca()
|
|
45
52
|
|
|
53
|
+
const pino = prettyPino('sdkgen', opts)
|
|
54
|
+
|
|
55
|
+
const log = pino.child({ cmp: 'sdkgen' })
|
|
56
|
+
|
|
57
|
+
// console.log('SDKGEN OPTS', opts)
|
|
58
|
+
|
|
46
59
|
|
|
47
60
|
async function generate(spec: any) {
|
|
61
|
+
const start = Date.now()
|
|
48
62
|
const { model, config } = spec
|
|
49
63
|
|
|
50
|
-
|
|
51
|
-
|
|
64
|
+
log.info({ point: 'generate-start', start })
|
|
65
|
+
log.debug({ point: 'generate-spec', spec })
|
|
52
66
|
|
|
53
67
|
let Root = spec.root
|
|
54
68
|
|
|
55
|
-
if (null == Root) {
|
|
69
|
+
if (null == Root && null != config.root) {
|
|
56
70
|
clear(config.root)
|
|
57
|
-
const rootModule = require(config.root)
|
|
71
|
+
const rootModule: any = require(config.root)
|
|
58
72
|
Root = rootModule.Root
|
|
59
73
|
}
|
|
60
74
|
|
|
@@ -64,17 +78,11 @@ function SdkGen(opts: SdkGenOptions) {
|
|
|
64
78
|
}
|
|
65
79
|
*/
|
|
66
80
|
|
|
67
|
-
|
|
81
|
+
const opts = { fs, folder, log: log.child({ cmp: 'jostraca' }), meta: { spec } }
|
|
68
82
|
|
|
69
|
-
|
|
83
|
+
await jostraca.generate(opts, () => Root({ model }))
|
|
70
84
|
|
|
71
|
-
|
|
72
|
-
await jostraca.generate(opts, () => Root({ model }))
|
|
73
|
-
}
|
|
74
|
-
catch (err: any) {
|
|
75
|
-
console.log('SDKGEN ERROR: ', err)
|
|
76
|
-
throw err
|
|
77
|
-
}
|
|
85
|
+
log.info({ point: 'generate-end' })
|
|
78
86
|
}
|
|
79
87
|
|
|
80
88
|
|
|
@@ -84,6 +92,7 @@ function SdkGen(opts: SdkGenOptions) {
|
|
|
84
92
|
|
|
85
93
|
|
|
86
94
|
return {
|
|
95
|
+
pino,
|
|
87
96
|
generate,
|
|
88
97
|
}
|
|
89
98
|
|
|
@@ -91,26 +100,36 @@ function SdkGen(opts: SdkGenOptions) {
|
|
|
91
100
|
|
|
92
101
|
|
|
93
102
|
SdkGen.makeBuild = async function(opts: SdkGenOptions) {
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
const sdkgen = SdkGen(opts)
|
|
97
|
-
|
|
98
|
-
const apidef = ApiDef()
|
|
103
|
+
let sdkgen: any = undefined
|
|
99
104
|
|
|
100
105
|
const config = {
|
|
101
106
|
root: opts.root,
|
|
102
|
-
def: opts.def,
|
|
107
|
+
def: opts.def || 'no-def',
|
|
103
108
|
kind: 'openapi-3',
|
|
104
|
-
model: opts.model ? (opts.model.folder + '/api.jsonic') :
|
|
109
|
+
model: opts.model ? (opts.model.folder + '/api.jsonic') : 'no-model',
|
|
105
110
|
meta: opts.meta || {},
|
|
106
|
-
entity: opts.model ? opts.model.entity : undefined,
|
|
107
111
|
}
|
|
108
112
|
|
|
109
|
-
|
|
113
|
+
return async function build(model: any, build: any, ctx: any) {
|
|
114
|
+
if (null == sdkgen) {
|
|
115
|
+
sdkgen = SdkGen({
|
|
116
|
+
...opts,
|
|
117
|
+
pino: build.log,
|
|
118
|
+
})
|
|
119
|
+
|
|
120
|
+
const apidef = ApiDef({
|
|
121
|
+
pino: build.log,
|
|
122
|
+
})
|
|
123
|
+
|
|
124
|
+
if (true === ctx.watch) {
|
|
125
|
+
await apidef.watch(config)
|
|
126
|
+
}
|
|
127
|
+
else {
|
|
128
|
+
await apidef.generate(config)
|
|
129
|
+
}
|
|
130
|
+
}
|
|
110
131
|
|
|
111
|
-
|
|
112
|
-
// TODO: voxgig model needs to handle errors from here
|
|
113
|
-
return sdkgen.generate({ model, build, config })
|
|
132
|
+
await sdkgen.generate({ model, build, config })
|
|
114
133
|
}
|
|
115
134
|
}
|
|
116
135
|
|
|
@@ -118,6 +137,10 @@ SdkGen.makeBuild = async function(opts: SdkGenOptions) {
|
|
|
118
137
|
|
|
119
138
|
// Adapted from https://github.com/sindresorhus/import-fresh - Thanks!
|
|
120
139
|
function clear(path: string) {
|
|
140
|
+
if (null == path) {
|
|
141
|
+
return
|
|
142
|
+
}
|
|
143
|
+
|
|
121
144
|
let filePath = require.resolve(path)
|
|
122
145
|
|
|
123
146
|
if (require.cache[filePath]) {
|
package/src/utility.ts
CHANGED
|
@@ -10,16 +10,18 @@ const resolvePath = (ctx$: any, path: string): any => {
|
|
|
10
10
|
|
|
11
11
|
const requirePath = (ctx$: any, path: string, flags?: { ignore?: boolean }): any => {
|
|
12
12
|
const fullpath = resolvePath(ctx$, path)
|
|
13
|
-
const ignore = null == flags?.ignore ?
|
|
13
|
+
const ignore = null == flags?.ignore ? false : flags.ignore
|
|
14
14
|
|
|
15
15
|
try {
|
|
16
16
|
return require(fullpath)
|
|
17
17
|
}
|
|
18
18
|
catch (err: any) {
|
|
19
|
-
if (
|
|
19
|
+
if (ignore) {
|
|
20
|
+
ctx$.log.warn({ point: 'require-missing', path, note: path })
|
|
21
|
+
}
|
|
22
|
+
else {
|
|
20
23
|
throw err
|
|
21
24
|
}
|
|
22
|
-
console.warn('MISSING: ', path)
|
|
23
25
|
}
|
|
24
26
|
}
|
|
25
27
|
|