@voxgig/sdkgen 0.13.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.
@@ -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
- // console.log('BUILD name', build.name)
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;
@@ -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,wCAAwC;IACxC,MAAM,UAAU,GAAG,OAAO,CAAC,IAAA,qBAAW,EAAC,IAAI,EAAE,KAAK,KAAK,CAAC,IAAI,WAAW,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;IAErF,UAAU,CAAC,QAAQ,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAA;AACzC,CAAC,CAAC,CAAA;AAIA,wBAAM"}
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,GAAG,IAAA,qBAAW,EAAC,IAAI,EAAE,KAAK,KAAK,CAAC,IAAI,kBAAkB,KAAK,CAAC,IAAI,EAAE,CAAC,CAAA;IAE1F,IAAI,iBAAiB,EAAE,CAAC;QACtB,iBAAiB,CAAC,eAAe,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAA;IAC/C,CAAC;AACH,CAAC,CAAC,CAAA;AAOA,sCAAa"}
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"}
@@ -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;IAGA,MAAM,eAAe,GAAG,IAAA,qBAAW,EAAC,IAAI,EAAE,KAAK,KAAK,CAAC,IAAI,gBAAgB,KAAK,CAAC,IAAI,EAAE,CAAC,CAAA;IAEtF,IAAI,eAAe,EAAE,CAAC;QACpB,eAAe,CAAC,aAAa,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAA;IAC3C,CAAC;AACH,CAAC,CAAC,CAAA;AAMA,kCAAW"}
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
- // console.log('SDKGEN.config', config)
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
- // console.log('OPTIONS', opts)
69
- const opts = { fs, folder, meta: { spec } };
70
- try {
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
- // console.log('SdkGen.makeBuild', opts)
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') : undefined,
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
- await apidef.watch(config);
98
- return async function build(model, build) {
99
- // TODO: voxgig model needs to handle errors from here
100
- return sdkgen.generate({ model, build, config });
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);
@@ -1 +1 @@
1
- {"version":3,"file":"sdkgen.js","sourceRoot":"","sources":["../src/sdkgen.ts"],"names":[],"mappings":";AAAA,oDAAoD;;;;;;;;;;;;;;;;;;;;;;;;;;AA8LlD,wBAAM;AA5LR,4CAA6B;AAG7B,yDAA0C;AAE1C,2CAAuC;AAGvC,qCAAiC;AA2K/B,qFA3KO,WAAI,OA2KP;AA1KN,yCAAqC;AA2KnC,uFA3KO,eAAM,OA2KP;AA1KR,2CAAuC;AA2KrC,wFA3KO,iBAAO,OA2KP;AA1KT,yCAAqC;AA2KnC,uFA3KO,eAAM,OA2KP;AA1KR,uDAAmD;AA2KjD,8FA3KO,6BAAa,OA2KP;AA1Kf,uDAAmD;AA2KjD,8FA3KO,6BAAa,OA2KP;AA1Kf,qDAAiD;AA2K/C,6FA3KO,2BAAY,OA2KP;AAzKd,uDAAkD;AAkBlD,MAAM,EAAE,QAAQ,EAAE,GAAG,cAAc,CAAA;AAyJjC,4BAAQ;AAtJV,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;AACrC,QAAA,QAAQ,GAAc,cAAc,CAAC,QAAQ,CAAA;AAC7C,QAAA,MAAM,GAAc,cAAc,CAAC,MAAM,CAAA"}
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 ? true : 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 (!ignore) {
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;
@@ -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;AAqBC,kCAAW;AAlBb,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,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAA;IAE1D,IAAI,CAAC;QACH,OAAO,OAAO,CAAC,QAAQ,CAAC,CAAA;IAC1B,CAAC;IACD,OAAO,GAAQ,EAAE,CAAC;QAChB,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,GAAG,CAAA;QACX,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAA;IACjC,CAAC;AACH,CAAC,CAAA;AAMC,kCAAW"}
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.13.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.7.6",
41
- "aontu": "^0.22.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.7",
49
- "@voxgig/apidef": "^0.2.0",
50
- "jostraca": "^0.7.6"
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 { resolvePath } from '../utility'
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
- // console.log('BUILD name', build.name)
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
 
@@ -13,7 +13,8 @@ const ReadmeInstall = cmp(function ReadmeInstall(props: any) {
13
13
  `)
14
14
 
15
15
  // Optional
16
- const ReadmeInstall_sdk = requirePath(ctx$, `./${build.name}/ReadmeInstall_${build.name}`)
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 })
@@ -12,8 +12,8 @@ const ReadmeQuick = cmp(function ReadmeQuick(props: any) {
12
12
 
13
13
  `)
14
14
 
15
-
16
- const ReadmeQuick_sdk = requirePath(ctx$, `./${build.name}/ReadmeQuick_${build.name}`)
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
- // console.log('SDKGEN.config', config)
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
- // console.log('OPTIONS', opts)
81
+ const opts = { fs, folder, log: log.child({ cmp: 'jostraca' }), meta: { spec } }
68
82
 
69
- const opts = { fs, folder, meta: { spec } }
83
+ await jostraca.generate(opts, () => Root({ model }))
70
84
 
71
- try {
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
- // console.log('SdkGen.makeBuild', opts)
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') : undefined,
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
- await apidef.watch(config)
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
- return async function build(model: any, build: any) {
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 ? true : 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 (!ignore) {
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