@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 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: (root: any, opts: SdkGenOptions) => Promise<(model: any, build: any) => Promise<void>>;
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, root } = spec;
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, () => root({ model }));
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 (root, opts) {
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, root, config });
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;
@@ -1 +1 @@
1
- {"version":3,"file":"sdkgen.js","sourceRoot":"","sources":["../src/sdkgen.ts"],"names":[],"mappings":";AAAA,oDAAoD;;;;;;;;;;;;;;;;;;;;;;;;;;AA8IlD,wBAAM;AA5IR,4CAA6B;AAG7B,yDAA0C;AAE1C,2CAAuC;AAGvC,qCAAiC;AA4H/B,qFA5HO,WAAI,OA4HP;AA3HN,yCAAqC;AA4HnC,uFA5HO,eAAM,OA4HP;AA3HR,yCAAqC;AA4HnC,uFA5HO,eAAM,OA4HP;AA3HR,uDAAmD;AA4HjD,8FA5HO,6BAAa,OA4HP;AA3Hf,uDAAmD;AA4HjD,8FA5HO,6BAAa,OA4HP;AA3Hf,qDAAiD;AA4H/C,6FA5HO,2BAAY,OA4HP;AA1Hd,uDAAkD;AAiBlD,MAAM,EAAE,QAAQ,EAAE,GAAG,cAAc,CAAA;AA2GjC,4BAAQ;AAxGV,SAAS,MAAM,CAAC,IAAmB;IACjC,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,IAAI,EAAE,CAAA;IACxB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,GAAG,CAAA;IACjC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,SAAS,CAAA;IACjC,MAAM,QAAQ,GAAG,QAAQ,EAAE,CAAA;IAG3B,KAAK,UAAU,QAAQ,CAAC,IAAS;QAC/B,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI,CAAA;QAE5B;;;;UAIE;QAEF,+BAA+B;QAE/B,MAAM,IAAI,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,CAAA;QAE3C,IAAI,CAAC;YACH,MAAM,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAA;QACtD,CAAC;QACD,OAAO,GAAQ,EAAE,CAAC;YAChB,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAA;YAClC,MAAM,GAAG,CAAA;QACX,CAAC;IACH,CAAC;IAGD,KAAK,UAAU,OAAO,CAAC,IAAS,EAAE,GAAQ;QACxC,OAAO,MAAM,IAAA,gCAAc,EAAC,IAAI,EAAE,GAAG,CAAC,CAAA;IACxC,CAAC;IAGD,OAAO;QACL,QAAQ;KACT,CAAA;AAEH,CAAC;AAGD,MAAM,CAAC,SAAS,GAAG,KAAK,WAAU,IAAS,EAAE,IAAmB;IAC9D,wCAAwC;IAExC,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAA;IAE3B,MAAM,MAAM,GAAG,IAAA,eAAM,GAAE,CAAA;IAEvB,MAAM,MAAM,GAAG;QACb,GAAG,EAAE,IAAI,CAAC,GAAG;QACb,IAAI,EAAE,WAAW;QACjB,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS;QACnE,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,EAAE;QACrB,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;KACnD,CAAA;IAED,MAAM,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;IAE1B,OAAO,KAAK,UAAU,KAAK,CAAC,KAAU,EAAE,KAAU;QAChD,sDAAsD;QACtD,OAAO,MAAM,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAA;IACxD,CAAC,CAAA;AACH,CAAC,CAAA;AAaD,kBAAkB;AACL,QAAA,GAAG,GAAuC,cAAc,CAAC,GAAG,CAAA;AAC5D,QAAA,KAAK,GAAoD,cAAc,CAAC,KAAK,CAAA;AAC7E,QAAA,IAAI,GAAwC,cAAc,CAAC,IAAI,CAAA;AAC/D,QAAA,OAAO,GAAsC,cAAc,CAAC,OAAO,CAAA;AACnE,QAAA,QAAQ,GAAsC,cAAc,CAAC,QAAQ,CAAA;AACrE,QAAA,QAAQ,GAAsC,cAAc,CAAC,QAAQ,CAAA;AACrE,QAAA,MAAM,GAAqD,cAAc,CAAC,MAAM,CAAA;AAChF,QAAA,IAAI,GAA4B,cAAc,CAAC,IAAI,CAAA;AACnD,QAAA,IAAI,GAA4B,cAAc,CAAC,IAAI,CAAA;AACnD,QAAA,GAAG,GAAgD,cAAc,CAAC,GAAG,CAAA;AACrE,QAAA,IAAI,GAAgD,cAAc,CAAC,IAAI,CAAA;AAEvE,QAAA,OAAO,GAAc,cAAc,CAAC,OAAO,CAAA;AAC3C,QAAA,MAAM,GAAc,cAAc,CAAC,MAAM,CAAA;AACzC,QAAA,IAAI,GAAc,cAAc,CAAC,IAAI,CAAA;AACrC,QAAA,OAAO,GAAc,cAAc,CAAC,OAAO,CAAA;AAC3C,QAAA,IAAI,GAAc,cAAc,CAAC,IAAI,CAAA"}
1
+ {"version":3,"file":"sdkgen.js","sourceRoot":"","sources":["../src/sdkgen.ts"],"names":[],"mappings":";AAAA,oDAAoD;;;;;;;;;;;;;;;;;;;;;;;;;;AA0LlD,wBAAM;AAxLR,4CAA6B;AAG7B,yDAA0C;AAE1C,2CAAuC;AAGvC,qCAAiC;AAwK/B,qFAxKO,WAAI,OAwKP;AAvKN,yCAAqC;AAwKnC,uFAxKO,eAAM,OAwKP;AAvKR,yCAAqC;AAwKnC,uFAxKO,eAAM,OAwKP;AAvKR,uDAAmD;AAwKjD,8FAxKO,6BAAa,OAwKP;AAvKf,uDAAmD;AAwKjD,8FAxKO,6BAAa,OAwKP;AAvKf,qDAAiD;AAwK/C,6FAxKO,2BAAY,OAwKP;AAtKd,uDAAkD;AAkBlD,MAAM,EAAE,QAAQ,EAAE,GAAG,cAAc,CAAA;AAsJjC,4BAAQ;AAnJV,SAAS,MAAM,CAAC,IAAmB;IACjC,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,IAAI,EAAE,CAAA;IACxB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,GAAG,CAAA;IACjC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,SAAS,CAAA;IACjC,MAAM,QAAQ,GAAG,QAAQ,EAAE,CAAA;IAG3B,KAAK,UAAU,QAAQ,CAAC,IAAS;QAC/B,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAA;QAG9B,uCAAuC;QAEvC,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;QAEpB,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;YACjB,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;YAClB,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;YACvC,IAAI,GAAG,UAAU,CAAC,IAAI,CAAA;QACxB,CAAC;QAED;;;;UAIE;QAEF,+BAA+B;QAE/B,MAAM,IAAI,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,CAAA;QAE3C,IAAI,CAAC;YACH,MAAM,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAA;QACtD,CAAC;QACD,OAAO,GAAQ,EAAE,CAAC;YAChB,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAA;YAClC,MAAM,GAAG,CAAA;QACX,CAAC;IACH,CAAC;IAGD,KAAK,UAAU,OAAO,CAAC,IAAS,EAAE,GAAQ;QACxC,OAAO,MAAM,IAAA,gCAAc,EAAC,IAAI,EAAE,GAAG,CAAC,CAAA;IACxC,CAAC;IAGD,OAAO;QACL,QAAQ;KACT,CAAA;AAEH,CAAC;AAGD,MAAM,CAAC,SAAS,GAAG,KAAK,WAAU,IAAmB;IACnD,wCAAwC;IAExC,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAA;IAE3B,MAAM,MAAM,GAAG,IAAA,eAAM,GAAE,CAAA;IAEvB,MAAM,MAAM,GAAG;QACb,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,GAAG,EAAE,IAAI,CAAC,GAAG;QACb,IAAI,EAAE,WAAW;QACjB,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS;QACnE,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,EAAE;QACrB,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;KACnD,CAAA;IAED,MAAM,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;IAE1B,OAAO,KAAK,UAAU,KAAK,CAAC,KAAU,EAAE,KAAU;QAChD,sDAAsD;QACtD,OAAO,MAAM,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAA;IAClD,CAAC,CAAA;AACH,CAAC,CAAA;AAID,sEAAsE;AACtE,SAAS,KAAK,CAAC,IAAY;IACzB,IAAI,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IAEpC,IAAI,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5B,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;QAExE,2BAA2B;QAC3B,OAAO,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;QAE9B,KAAK,MAAM,EAAE,IAAI,QAAQ,EAAE,CAAC;YAC1B,KAAK,CAAC,EAAE,CAAC,CAAA;QACX,CAAC;IACH,CAAC;IAGD,IAAI,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,CAAC;QAC9D,IAAI,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAA;QAEtD,OAAO,CAAC,EAAE,EAAE,CAAC;YACX,IAAI,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,QAAQ,EAAE,CAAC;gBAC/D,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;YACtD,CAAC;QACH,CAAC;IACH,CAAC;AAEH,CAAC;AAcD,kBAAkB;AACL,QAAA,GAAG,GAAuC,cAAc,CAAC,GAAG,CAAA;AAC5D,QAAA,KAAK,GAAoD,cAAc,CAAC,KAAK,CAAA;AAC7E,QAAA,IAAI,GAAwC,cAAc,CAAC,IAAI,CAAA;AAC/D,QAAA,OAAO,GAAsC,cAAc,CAAC,OAAO,CAAA;AACnE,QAAA,QAAQ,GAAsC,cAAc,CAAC,QAAQ,CAAA;AACrE,QAAA,QAAQ,GAAsC,cAAc,CAAC,QAAQ,CAAA;AACrE,QAAA,MAAM,GAAqD,cAAc,CAAC,MAAM,CAAA;AAChF,QAAA,IAAI,GAA4B,cAAc,CAAC,IAAI,CAAA;AACnD,QAAA,IAAI,GAA4B,cAAc,CAAC,IAAI,CAAA;AACnD,QAAA,GAAG,GAAgD,cAAc,CAAC,GAAG,CAAA;AACrE,QAAA,IAAI,GAAgD,cAAc,CAAC,IAAI,CAAA;AAEvE,QAAA,OAAO,GAAc,cAAc,CAAC,OAAO,CAAA;AAC3C,QAAA,MAAM,GAAc,cAAc,CAAC,MAAM,CAAA;AACzC,QAAA,IAAI,GAAc,cAAc,CAAC,IAAI,CAAA;AACrC,QAAA,OAAO,GAAc,cAAc,CAAC,OAAO,CAAA;AAC3C,QAAA,IAAI,GAAc,cAAc,CAAC,IAAI,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@voxgig/sdkgen",
3
- "version": "0.8.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.23.1",
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.8",
48
- "jostraca": "^0.6.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, root } = spec
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, () => root({ model }))
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(root: any, opts: SdkGenOptions) {
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, root, config })
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
  }