@voxgig/sdkgen 0.14.0 → 0.16.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.
Files changed (52) hide show
  1. package/bin/voxgig-sdkgen +135 -0
  2. package/dist/action/feature.d.ts +2 -0
  3. package/dist/action/feature.js +76 -0
  4. package/dist/action/feature.js.map +1 -0
  5. package/dist/action/lang.d.ts +2 -0
  6. package/dist/action/lang.js +68 -0
  7. package/dist/action/lang.js.map +1 -0
  8. package/dist/action/target.d.ts +2 -0
  9. package/dist/action/target.js +82 -0
  10. package/dist/action/target.js.map +1 -0
  11. package/dist/cmp/Entity.js +3 -3
  12. package/dist/cmp/Entity.js.map +1 -1
  13. package/dist/cmp/Feature.js +10 -3
  14. package/dist/cmp/Feature.js.map +1 -1
  15. package/dist/cmp/FeatureHook.d.ts +2 -0
  16. package/dist/cmp/FeatureHook.js +17 -0
  17. package/dist/cmp/FeatureHook.js.map +1 -0
  18. package/dist/cmp/Hook.d.ts +2 -0
  19. package/dist/cmp/Hook.js +10 -0
  20. package/dist/cmp/Hook.js.map +1 -0
  21. package/dist/cmp/Main.js +12 -5
  22. package/dist/cmp/Main.js.map +1 -1
  23. package/dist/cmp/Readme.js +8 -8
  24. package/dist/cmp/Readme.js.map +1 -1
  25. package/dist/cmp/ReadmeInstall.js +3 -3
  26. package/dist/cmp/ReadmeInstall.js.map +1 -1
  27. package/dist/cmp/ReadmeOptions.js +2 -2
  28. package/dist/cmp/ReadmeOptions.js.map +1 -1
  29. package/dist/cmp/ReadmeQuick.js +3 -3
  30. package/dist/cmp/ReadmeQuick.js.map +1 -1
  31. package/dist/sdkgen.d.ts +15 -4
  32. package/dist/sdkgen.js +106 -35
  33. package/dist/sdkgen.js.map +1 -1
  34. package/dist/tsconfig.tsbuildinfo +1 -1
  35. package/dist/utility.d.ts +4 -1
  36. package/dist/utility.js +11 -2
  37. package/dist/utility.js.map +1 -1
  38. package/model/sdkgen.jsonic +58 -6
  39. package/package.json +13 -13
  40. package/src/action/feature.ts +120 -0
  41. package/src/action/target.ts +127 -0
  42. package/src/cmp/Entity.ts +6 -4
  43. package/src/cmp/Feature.ts +11 -4
  44. package/src/cmp/FeatureHook.ts +23 -0
  45. package/src/cmp/Main.ts +14 -6
  46. package/src/cmp/Readme.ts +8 -8
  47. package/src/cmp/ReadmeInstall.ts +3 -3
  48. package/src/cmp/ReadmeOptions.ts +2 -2
  49. package/src/cmp/ReadmeQuick.ts +3 -3
  50. package/src/sdkgen.ts +116 -34
  51. package/src/utility.ts +11 -1
  52. package/src/prepare-openapi.ts +0 -59
package/dist/sdkgen.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import * as JostracaModule from 'jostraca';
2
1
  import { Pino } from '@voxgig/util';
2
+ import * as JostracaModule from 'jostraca';
3
3
  import { Main } from './cmp/Main';
4
4
  import { Entity } from './cmp/Entity';
5
5
  import { Feature } from './cmp/Feature';
@@ -7,6 +7,7 @@ import { Readme } from './cmp/Readme';
7
7
  import { ReadmeInstall } from './cmp/ReadmeInstall';
8
8
  import { ReadmeOptions } from './cmp/ReadmeOptions';
9
9
  import { ReadmeEntity } from './cmp/ReadmeEntity';
10
+ import { FeatureHook } from './cmp/FeatureHook';
10
11
  type SdkGenOptions = {
11
12
  folder: string;
12
13
  fs: any;
@@ -25,10 +26,14 @@ type SdkGenOptions = {
25
26
  declare const Jostraca: typeof JostracaModule.Jostraca;
26
27
  declare function SdkGen(opts: SdkGenOptions): {
27
28
  pino: import("pino").Logger<string, boolean>;
28
- generate: (spec: any) => Promise<void>;
29
+ generate: (spec: any) => Promise<{
30
+ ok: boolean;
31
+ name: string;
32
+ }>;
33
+ action: (args: string[]) => Promise<void>;
29
34
  };
30
35
  declare namespace SdkGen {
31
- var makeBuild: (opts: SdkGenOptions) => Promise<(model: any, build: any, ctx: any) => Promise<void>>;
36
+ var makeBuild: (opts: SdkGenOptions) => Promise<(model: any, build: any, ctx: any) => Promise<any>>;
32
37
  }
33
38
  export type { SdkGenOptions, };
34
39
  type Component = (props: any, children?: any) => void;
@@ -43,6 +48,9 @@ export declare const cmap: (o: any, p: any) => any;
43
48
  export declare const vmap: (o: any, p: any) => any;
44
49
  export declare const get: (root: any, path: string | string[]) => any;
45
50
  export declare const getx: (root: any, path: string | string[]) => any;
51
+ export declare const template: (root: any, path: string | string[]) => any;
52
+ export declare const deep: (...args: any[]) => any;
53
+ export declare const omap: (...args: any[]) => any;
46
54
  export declare const Project: Component;
47
55
  export declare const Folder: Component;
48
56
  export declare const File: Component;
@@ -50,4 +58,7 @@ export declare const Content: Component;
50
58
  export declare const Copy: Component;
51
59
  export declare const Fragment: Component;
52
60
  export declare const Inject: Component;
53
- export { Main, Entity, Feature, Readme, ReadmeInstall, ReadmeOptions, ReadmeEntity, Jostraca, SdkGen, };
61
+ export declare const Line: Component;
62
+ export declare const Slot: Component;
63
+ export declare const List: Component;
64
+ export { Main, Entity, Feature, Readme, ReadmeInstall, ReadmeOptions, ReadmeEntity, FeatureHook, Jostraca, SdkGen, };
package/dist/sdkgen.js CHANGED
@@ -16,22 +16,32 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
16
16
  }) : function(o, v) {
17
17
  o["default"] = v;
18
18
  });
19
- var __importStar = (this && this.__importStar) || function (mod) {
20
- if (mod && mod.__esModule) return mod;
21
- var result = {};
22
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
23
- __setModuleDefault(result, mod);
24
- return result;
25
- };
19
+ var __importStar = (this && this.__importStar) || (function () {
20
+ var ownKeys = function(o) {
21
+ ownKeys = Object.getOwnPropertyNames || function (o) {
22
+ var ar = [];
23
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
24
+ return ar;
25
+ };
26
+ return ownKeys(o);
27
+ };
28
+ return function (mod) {
29
+ if (mod && mod.__esModule) return mod;
30
+ var result = {};
31
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
32
+ __setModuleDefault(result, mod);
33
+ return result;
34
+ };
35
+ })();
26
36
  Object.defineProperty(exports, "__esModule", { value: true });
27
- exports.Jostraca = exports.ReadmeEntity = exports.ReadmeOptions = exports.ReadmeInstall = exports.Readme = exports.Feature = exports.Entity = exports.Main = exports.Inject = exports.Fragment = exports.Copy = exports.Content = exports.File = exports.Folder = exports.Project = exports.getx = exports.get = exports.vmap = exports.cmap = exports.select = exports.kebabify = exports.camelify = exports.snakify = exports.each = exports.names = exports.cmp = void 0;
37
+ exports.Jostraca = exports.FeatureHook = exports.ReadmeEntity = exports.ReadmeOptions = exports.ReadmeInstall = exports.Readme = exports.Feature = exports.Entity = exports.Main = exports.List = exports.Slot = exports.Line = exports.Inject = exports.Fragment = exports.Copy = exports.Content = exports.File = exports.Folder = exports.Project = exports.omap = exports.deep = exports.template = exports.getx = exports.get = exports.vmap = exports.cmap = exports.select = exports.kebabify = exports.camelify = exports.snakify = exports.each = exports.names = exports.cmp = void 0;
28
38
  exports.SdkGen = SdkGen;
29
39
  const Fs = __importStar(require("node:fs"));
30
- const JostracaModule = __importStar(require("jostraca"));
31
- // import Pino from 'pino'
32
- // import PinoPretty from 'pino-pretty'
33
40
  const util_1 = require("@voxgig/util");
34
- const apidef_1 = require("@voxgig/apidef");
41
+ const jsonic_1 = require("jsonic");
42
+ const JostracaModule = __importStar(require("jostraca"));
43
+ const aontu_1 = require("aontu");
44
+ const utility_1 = require("./utility");
35
45
  const Main_1 = require("./cmp/Main");
36
46
  Object.defineProperty(exports, "Main", { enumerable: true, get: function () { return Main_1.Main; } });
37
47
  const Entity_1 = require("./cmp/Entity");
@@ -46,17 +56,22 @@ const ReadmeOptions_1 = require("./cmp/ReadmeOptions");
46
56
  Object.defineProperty(exports, "ReadmeOptions", { enumerable: true, get: function () { return ReadmeOptions_1.ReadmeOptions; } });
47
57
  const ReadmeEntity_1 = require("./cmp/ReadmeEntity");
48
58
  Object.defineProperty(exports, "ReadmeEntity", { enumerable: true, get: function () { return ReadmeEntity_1.ReadmeEntity; } });
49
- const prepare_openapi_1 = require("./prepare-openapi");
59
+ const FeatureHook_1 = require("./cmp/FeatureHook");
60
+ Object.defineProperty(exports, "FeatureHook", { enumerable: true, get: function () { return FeatureHook_1.FeatureHook; } });
61
+ const target_1 = require("./action/target");
62
+ const feature_1 = require("./action/feature");
50
63
  const { Jostraca } = JostracaModule;
51
64
  exports.Jostraca = Jostraca;
65
+ const ACTION_MAP = {
66
+ target: target_1.action_target,
67
+ feature: feature_1.action_feature,
68
+ };
52
69
  function SdkGen(opts) {
53
70
  const fs = opts.fs || Fs;
54
- const folder = opts.folder || '.';
55
- // const def = opts.def || 'def.yml'
71
+ const folder = opts.folder || '../';
56
72
  const jostraca = Jostraca();
57
73
  const pino = (0, util_1.prettyPino)('sdkgen', opts);
58
74
  const log = pino.child({ cmp: 'sdkgen' });
59
- // console.log('SDKGEN OPTS', opts)
60
75
  async function generate(spec) {
61
76
  const start = Date.now();
62
77
  const { model, config } = spec;
@@ -68,25 +83,82 @@ function SdkGen(opts) {
68
83
  const rootModule = require(config.root);
69
84
  Root = rootModule.Root;
70
85
  }
71
- /*
72
- if (await prepare(spec, { fs, folder, def })) {
73
- return
74
- }
75
- */
76
- const opts = { fs, folder, log: log.child({ cmp: 'jostraca' }), meta: { spec } };
77
- await jostraca.generate(opts, () => Root({ model }));
86
+ const jopts = {
87
+ fs: () => fs,
88
+ folder,
89
+ log: log.child({ cmp: 'jostraca' }),
90
+ meta: { spec },
91
+ debug: opts.debug,
92
+ };
93
+ await jostraca.generate(jopts, () => Root({ model }));
78
94
  log.info({ point: 'generate-end' });
95
+ return { ok: true, name: 'sdkgen' };
96
+ }
97
+ async function action(args) {
98
+ const pargs = args.map(arg => (0, jsonic_1.Jsonic)(arg));
99
+ const actname = args[0];
100
+ const action = ACTION_MAP[actname];
101
+ if (null == action) {
102
+ throw new utility_1.SdkGenError('Unknown action: ' + actname);
103
+ }
104
+ const { model, tree } = resolveModel();
105
+ const ctx = {
106
+ fs: () => fs,
107
+ log,
108
+ folder: '.', // The `generate` folder,
109
+ model,
110
+ tree,
111
+ };
112
+ await action(pargs, ctx);
79
113
  }
80
- async function prepare(spec, ctx) {
81
- return await (0, prepare_openapi_1.PrepareOpenAPI)(spec, ctx);
114
+ function resolveModel() {
115
+ const path = './model/sdk.jsonic';
116
+ const aopts = { path };
117
+ const src = fs.readFileSync(path, 'utf8');
118
+ const tree = (0, aontu_1.Aontu)(src, aopts);
119
+ const hasErr = tree.err && 0 < tree.err.length;
120
+ if (hasErr) {
121
+ for (let serr of tree.err) {
122
+ let err = new utility_1.SdkGenError('Model Error: ' + serr.msg);
123
+ err.cause$ = [serr];
124
+ if ('syntax' === serr.why) {
125
+ err.uxmsg$ = true;
126
+ }
127
+ // log.error({ fail: 'parse', point: 'guide-parse', file: path, err })
128
+ err.rooterrs$ = tree.err;
129
+ throw err;
130
+ }
131
+ }
132
+ let genctx = new aontu_1.Context({ root: tree });
133
+ const model = tree.gen(genctx);
134
+ // TODO: collect all errors
135
+ if (genctx.err && 0 < genctx.err.length) {
136
+ const err = new utility_1.SdkGenError('Model Error:\n' +
137
+ (genctx.err.map((pe) => pe.msg)).join('\n'));
138
+ // log.error({ fail: 'build', what: 'guide', file: path, err })
139
+ err.errs = () => genctx.err;
140
+ throw err;
141
+ }
142
+ // TODO: FIX: This is a hack to set the correct src file
143
+ // aontu bug: url is empty
144
+ tree.url = path;
145
+ model.const = { name: model.name };
146
+ (0, exports.names)(model.const, model.name);
147
+ model.const.year = new Date().getFullYear();
148
+ return {
149
+ model,
150
+ tree,
151
+ };
82
152
  }
83
153
  return {
84
154
  pino,
85
155
  generate,
156
+ action,
86
157
  };
87
158
  }
88
159
  SdkGen.makeBuild = async function (opts) {
89
160
  let sdkgen = undefined;
161
+ // let apidef: any = undefined
90
162
  const config = {
91
163
  root: opts.root,
92
164
  def: opts.def || 'no-def',
@@ -99,18 +171,11 @@ SdkGen.makeBuild = async function (opts) {
99
171
  sdkgen = SdkGen({
100
172
  ...opts,
101
173
  pino: build.log,
174
+ debug: build.spec.debug,
102
175
  });
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
176
  }
113
- await sdkgen.generate({ model, build, config });
177
+ // await apidef.generate({ model, build, config })
178
+ return await sdkgen.generate({ model, build, config });
114
179
  };
115
180
  };
116
181
  // Adapted from https://github.com/sindresorhus/import-fresh - Thanks!
@@ -148,6 +213,9 @@ exports.cmap = JostracaModule.cmap;
148
213
  exports.vmap = JostracaModule.vmap;
149
214
  exports.get = JostracaModule.get;
150
215
  exports.getx = JostracaModule.getx;
216
+ exports.template = JostracaModule.template;
217
+ exports.deep = JostracaModule.deep;
218
+ exports.omap = JostracaModule.omap;
151
219
  exports.Project = JostracaModule.Project;
152
220
  exports.Folder = JostracaModule.Folder;
153
221
  exports.File = JostracaModule.File;
@@ -155,4 +223,7 @@ exports.Content = JostracaModule.Content;
155
223
  exports.Copy = JostracaModule.Copy;
156
224
  exports.Fragment = JostracaModule.Fragment;
157
225
  exports.Inject = JostracaModule.Inject;
226
+ exports.Line = JostracaModule.Line;
227
+ exports.Slot = JostracaModule.Slot;
228
+ exports.List = JostracaModule.List;
158
229
  //# sourceMappingURL=sdkgen.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sdkgen.js","sourceRoot":"","sources":["../src/sdkgen.ts"],"names":[],"mappings":";AAAA,oDAAoD;;;;;;;;;;;;;;;;;;;;;;;;;;AAqNlD,wBAAM;AAnNR,4CAA6B;AAG7B,yDAA0C;AAE1C,0BAA0B;AAC1B,uCAAuC;AAEvC,uCAA+C;AAE/C,2CAAuC;AAGvC,qCAAiC;AA6L/B,qFA7LO,WAAI,OA6LP;AA5LN,yCAAqC;AA6LnC,uFA7LO,eAAM,OA6LP;AA5LR,2CAAuC;AA6LrC,wFA7LO,iBAAO,OA6LP;AA5LT,yCAAqC;AA6LnC,uFA7LO,eAAM,OA6LP;AA5LR,uDAAmD;AA6LjD,8FA7LO,6BAAa,OA6LP;AA5Lf,uDAAmD;AA6LjD,8FA7LO,6BAAa,OA6LP;AA5Lf,qDAAiD;AA6L/C,6FA7LO,2BAAY,OA6LP;AA3Ld,uDAAkD;AAoBlD,MAAM,EAAE,QAAQ,EAAE,GAAG,cAAc,CAAA;AAyKjC,4BAAQ;AAtKV,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,oCAAoC;IACpC,MAAM,QAAQ,GAAG,QAAQ,EAAE,CAAA;IAE3B,MAAM,IAAI,GAAG,IAAA,iBAAU,EAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;IAEvC,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAA;IAEzC,mCAAmC;IAGnC,KAAK,UAAU,QAAQ,CAAC,IAAS;QAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QACxB,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAA;QAE9B,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,CAAC,CAAA;QAC5C,GAAG,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,CAAA;QAE3C,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;QAEpB,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;YACxC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;YAClB,MAAM,UAAU,GAAQ,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;YAC5C,IAAI,GAAG,UAAU,CAAC,IAAI,CAAA;QACxB,CAAC;QAED;;;;UAIE;QAEF,MAAM,IAAI,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,CAAA;QAEhF,MAAM,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAA;QAEpD,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,CAAA;IACrC,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,IAAI;QACJ,QAAQ;KACT,CAAA;AAEH,CAAC;AAGD,MAAM,CAAC,SAAS,GAAG,KAAK,WAAU,IAAmB;IACnD,IAAI,MAAM,GAAQ,SAAS,CAAA;IAE3B,MAAM,MAAM,GAAG;QACb,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,GAAG,EAAE,IAAI,CAAC,GAAG,IAAI,QAAQ;QACzB,IAAI,EAAE,WAAW;QACjB,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,UAAU;QACpE,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,EAAE;KACtB,CAAA;IAED,OAAO,KAAK,UAAU,KAAK,CAAC,KAAU,EAAE,KAAU,EAAE,GAAQ;QAC1D,IAAI,IAAI,IAAI,MAAM,EAAE,CAAC;YACnB,MAAM,GAAG,MAAM,CAAC;gBACd,GAAG,IAAI;gBACP,IAAI,EAAE,KAAK,CAAC,GAAG;aAChB,CAAC,CAAA;YAEF,MAAM,MAAM,GAAG,IAAA,eAAM,EAAC;gBACpB,IAAI,EAAE,KAAK,CAAC,GAAG;aAChB,CAAC,CAAA;YAEF,IAAI,IAAI,KAAK,GAAG,CAAC,KAAK,EAAE,CAAC;gBACvB,MAAM,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;YAC5B,CAAC;iBACI,CAAC;gBACJ,MAAM,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;YAC/B,CAAC;QACH,CAAC;QAED,MAAM,MAAM,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAA;IACjD,CAAC,CAAA;AACH,CAAC,CAAA;AAID,sEAAsE;AACtE,SAAS,KAAK,CAAC,IAAY;IACzB,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;QACjB,OAAM;IACR,CAAC;IAED,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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"}
@@ -1 +1 @@
1
- {"root":["../src/prepare-openapi.ts","../src/sdkgen.ts","../src/utility.ts","../src/cmp/entity.ts","../src/cmp/feature.ts","../src/cmp/main.ts","../src/cmp/readme.ts","../src/cmp/readmeentity.ts","../src/cmp/readmeinstall.ts","../src/cmp/readmeintro.ts","../src/cmp/readmemodel.ts","../src/cmp/readmeoptions.ts","../src/cmp/readmequick.ts"],"version":"5.6.3"}
1
+ {"root":["../src/sdkgen.ts","../src/utility.ts","../src/action/feature.ts","../src/action/target.ts","../src/cmp/entity.ts","../src/cmp/feature.ts","../src/cmp/featurehook.ts","../src/cmp/main.ts","../src/cmp/readme.ts","../src/cmp/readmeentity.ts","../src/cmp/readmeinstall.ts","../src/cmp/readmeintro.ts","../src/cmp/readmemodel.ts","../src/cmp/readmeoptions.ts","../src/cmp/readmequick.ts"],"version":"5.7.2"}
package/dist/utility.d.ts CHANGED
@@ -2,4 +2,7 @@ declare const resolvePath: (ctx$: any, path: string) => any;
2
2
  declare const requirePath: (ctx$: any, path: string, flags?: {
3
3
  ignore?: boolean;
4
4
  }) => any;
5
- export { resolvePath, requirePath, };
5
+ declare class SdkGenError extends Error {
6
+ constructor(...args: any[]);
7
+ }
8
+ export { resolvePath, requirePath, SdkGenError, };
package/dist/utility.js CHANGED
@@ -3,10 +3,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.requirePath = exports.resolvePath = void 0;
6
+ exports.SdkGenError = exports.requirePath = exports.resolvePath = void 0;
7
7
  const node_path_1 = __importDefault(require("node:path"));
8
+ // TODO: move to @voxgig/util as duplicated with @voxgig/sdkgen
8
9
  const resolvePath = (ctx$, path) => {
9
- const fullpath = node_path_1.default.join(ctx$.folder, '..', 'dist', path);
10
+ // console.log('RP', ctx$.folder)
11
+ const fullpath = node_path_1.default.join(ctx$.folder, 'generate', 'dist', path);
10
12
  return fullpath;
11
13
  };
12
14
  exports.resolvePath = resolvePath;
@@ -26,4 +28,11 @@ const requirePath = (ctx$, path, flags) => {
26
28
  }
27
29
  };
28
30
  exports.requirePath = requirePath;
31
+ class SdkGenError extends Error {
32
+ constructor(...args) {
33
+ super(...args);
34
+ this.name = 'SdkGenError';
35
+ }
36
+ }
37
+ exports.SdkGenError = SdkGenError;
29
38
  //# sourceMappingURL=utility.js.map
@@ -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;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"}
1
+ {"version":3,"file":"utility.js","sourceRoot":"","sources":["../src/utility.ts"],"names":[],"mappings":";;;;;;AACA,0DAA4B;AAE5B,+DAA+D;AAE/D,MAAM,WAAW,GAAG,CAAC,IAAS,EAAE,IAAY,EAAO,EAAE;IACnD,iCAAiC;IACjC,MAAM,QAAQ,GAAG,mBAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,CAAA;IACjE,OAAO,QAAQ,CAAA;AACjB,CAAC,CAAA;AA8BC,kCAAW;AA3Bb,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;AAaC,kCAAW;AAVb,MAAM,WAAY,SAAQ,KAAK;IAC7B,YAAY,GAAG,IAAW;QACxB,KAAK,CAAC,GAAG,IAAI,CAAC,CAAA;QACd,IAAI,CAAC,IAAI,GAAG,aAAa,CAAA;IAC3B,CAAC;CACF;AAMC,kCAAW"}
@@ -1,19 +1,71 @@
1
1
 
2
2
 
3
- main: sdk: entity: &: {
3
+ main: def: {
4
+ desc: *'' | string
5
+ }
6
+
7
+ main: sdk: target: &: {
4
8
  name: .$KEY
5
- publish: *true | boolean
9
+ active: *true | boolean
10
+ ext: string
11
+ comment: line: string
12
+ module: {
13
+ name: string
14
+ }
15
+ deps: &: {
16
+ active: *false | boolean
17
+ version: *'*' | string
18
+ }
6
19
  }
7
20
 
8
21
 
9
- main: sdk: option: &: {
10
- name: .$KEY
11
- publish: *true | boolean
22
+ main: sdk: entity: &: {
23
+ name: .$KEY
24
+ active: *true | boolean
12
25
  }
13
26
 
14
27
 
15
28
  main: sdk: feature: &: {
16
- name: .$KEY
29
+ # name: .$KEY # FIX: aontu bug - name not resolved
17
30
  active: *false | boolean
31
+ title: string
32
+
33
+ # TODO: version '0.0.1' | semver # where semver is a string format type as per semver.org
34
+ version: *'0.0.1' | string
35
+
36
+ hook: &: {
37
+ active: *false | boolean
38
+ await: *false | boolean
39
+ }
40
+
41
+ hook: {
42
+ PostConstruct: {}
43
+ SetData: {}
44
+ GetData: {}
45
+ GetQuery: {}
46
+
47
+ PreOperation: {}
48
+ ModifyOp: {}
49
+ PreFetch: {}
50
+ PostFetch: {}
51
+ ModifyResult: {}
52
+ PostOperation: {}
53
+ }
54
+
55
+ # Target specific structures
56
+ target: &: deps: &: {
57
+ active: *false | boolean
58
+ version: *'*' | string
59
+ }
60
+ }
61
+
62
+
63
+ main: sdk: option: &: {
64
+ name: .$KEY
65
+ active: *true | boolean
18
66
  }
19
67
 
68
+
69
+
70
+
71
+
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@voxgig/sdkgen",
3
- "version": "0.14.0",
3
+ "version": "0.16.0",
4
4
  "main": "dist/sdkgen.js",
5
5
  "type": "commonjs",
6
6
  "types": "dist/sdkgen.d.ts",
@@ -15,6 +15,9 @@
15
15
  "type": "git",
16
16
  "url": "git://github.com/voxgig/sdkgen.git"
17
17
  },
18
+ "bin": {
19
+ "voxgig-sdkgen": "bin/voxgig-sdkgen"
20
+ },
18
21
  "scripts": {
19
22
  "test": "node --enable-source-maps --test dist-test",
20
23
  "test22": "node --enable-source-maps --test \"dist-test/*.test.js\"",
@@ -37,19 +40,16 @@
37
40
  "devDependencies": {
38
41
  "@hapi/code": "^9.0.3",
39
42
  "@types/js-yaml": "^4.0.9",
40
- "@types/node": "22.9.0",
41
- "aontu": "^0.25.1",
42
- "esbuild": "^0.24.0",
43
+ "@types/node": "22.10.2",
44
+ "esbuild": "^0.24.1",
43
45
  "json-schema-to-ts": "^3.1.1",
44
- "memfs": "^4.14.0",
45
- "typescript": "^5.6.3"
46
+ "memfs": "^4.15.0",
47
+ "typescript": "^5.7.2"
46
48
  },
47
- "dependencies": {
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"
49
+ "peerDependencies": {
50
+ "@redocly/openapi-core": ">=1",
51
+ "@voxgig/util": ">=0",
52
+ "aontu": ">=0",
53
+ "jostraca": ">=0"
54
54
  }
55
55
  }
@@ -0,0 +1,120 @@
1
+
2
+ import {
3
+ Jostraca,
4
+ Project,
5
+ File,
6
+ Folder,
7
+ Content,
8
+ Copy,
9
+ cmp,
10
+ each,
11
+ } from 'jostraca'
12
+
13
+
14
+ import { SdkGenError } from '../utility'
15
+
16
+
17
+ const CMD_MAP: any = {
18
+ add: cmd_feature_add
19
+ }
20
+
21
+ const BASE = 'node_modules/@voxgig/sdkgen'
22
+
23
+ async function action_feature(args: any[], ctx: any) {
24
+
25
+ const cmdname = args[1]
26
+
27
+ const cmd = CMD_MAP[cmdname]
28
+
29
+ if (null == cmd) {
30
+ throw new SdkGenError('Unknown feature cmd: ' + cmdname)
31
+ }
32
+
33
+ await cmd(args, ctx)
34
+ }
35
+
36
+
37
+ async function cmd_feature_add(args: any[], ctx: any) {
38
+
39
+ let features = args[2]
40
+ features = 'string' === typeof features ? features.split(',') : features
41
+
42
+ const jostraca = Jostraca()
43
+
44
+ const opts = {
45
+ fs: ctx.fs,
46
+ folder: ctx.folder,
47
+ log: ctx.log.child({ cmp: 'jostraca' }),
48
+ meta: { model: ctx.model, tree: ctx.tree }
49
+ }
50
+
51
+ await jostraca.generate(opts, () => FeatureRoot({ features }))
52
+
53
+ }
54
+
55
+
56
+ const FeatureRoot = cmp(function FeatureRoot(props: any) {
57
+ const { ctx$, features } = props
58
+
59
+ // TODO: model should be a top level ctx property
60
+ const model = ctx$.model = ctx$.meta.model
61
+ const target = model.main.sdk.target
62
+
63
+ Project({}, () => {
64
+ each(features, (n) => {
65
+ const name = n.val$
66
+ // TODO: validate feature is a-z0-9-_. only
67
+
68
+ Folder({ name: 'model/feature' }, () => {
69
+ Copy({
70
+ from: BASE + '/project/generate/model/feature/' + name + '.jsonic',
71
+ exclude: true
72
+ })
73
+ })
74
+
75
+ each(target, (target) =>
76
+ Folder({ name: 'tm/' + target.name + '/src/feature/' + name }, () => {
77
+ Copy({
78
+ from: BASE + '/project/generate/tm/' + target.name + '/src/feature/' + name,
79
+ exclude: true
80
+ })
81
+ }))
82
+
83
+ })
84
+ })
85
+
86
+ modifyModel({
87
+ features,
88
+ model: ctx$.meta.model,
89
+ tree: ctx$.meta.tree,
90
+ fs: ctx$.fs
91
+ })
92
+
93
+ })
94
+
95
+
96
+ async function modifyModel({ features, model, tree, fs }: any) {
97
+ // TODO: This is a kludge.
98
+ // Aontu should provide option for as-is AST so that can be used
99
+ // to find injection point more reliably
100
+
101
+ const path = tree.url
102
+ let src = fs().readFileSync(path, 'utf8')
103
+
104
+ // Inject feature file references into model
105
+ features.sort().map((feature: string) => {
106
+ const lineRE =
107
+ new RegExp(`@"feature/${feature}.jsonic"`)
108
+ if (!src.match(lineRE)) {
109
+ src = src.replace(/(main:\s+sdk:\s+feature:\s+\{\s*\}\n)/, '$1' +
110
+ `@"feature/${feature}.jsonic"\n`)
111
+ }
112
+ })
113
+
114
+ fs().writeFileSync(path, src)
115
+ }
116
+
117
+
118
+ export {
119
+ action_feature
120
+ }