@voxgig/create-sdkgen 0.0.3 → 0.0.6

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 (105) hide show
  1. package/bin/voxgig-create-sdkgen +196 -0
  2. package/dist/create-sdkgen.d.ts +11 -8
  3. package/dist/create-sdkgen.js +61 -63
  4. package/dist/create-sdkgen.js.map +1 -1
  5. package/dist/standard/ModelSdk.js +8 -61
  6. package/dist/standard/ModelSdk.js.map +1 -1
  7. package/dist/standard/Root.js +58 -57
  8. package/dist/standard/Root.js.map +1 -1
  9. package/dist/tsconfig.tsbuildinfo +1 -1
  10. package/package.json +13 -10
  11. package/src/create-sdkgen.ts +56 -74
  12. package/src/standard/ModelSdk.ts +9 -71
  13. package/src/standard/Root.ts +26 -68
  14. package/bin/run-create-sdkgen.js +0 -269
  15. package/bin/run-create-sdkgen.js~ +0 -1
  16. package/src/standard/ModelSdk.ts~ +0 -1
  17. package/src/standard/Root.ts~ +0 -3
  18. package/src/utility.ts +0 -8
  19. package/tm/standard/.env.local +0 -2
  20. package/tm/standard/build/sdk.js +0 -25
  21. package/tm/standard/def/DEFINITION.md +0 -2
  22. package/tm/standard/model/.model-config/model-config.jsonic +0 -13
  23. package/tm/standard/model/go.jsonic +0 -6
  24. package/tm/standard/model/js.jsonic +0 -6
  25. package/tm/standard/model/php.jsonic +0 -6
  26. package/tm/standard/model/py.jsonic +0 -7
  27. package/tm/standard/model/rb.jsonic +0 -6
  28. package/tm/standard/model/sdk.jsonic.off +0 -60
  29. package/tm/standard/package.json +0 -30
  30. package/tm/standard/src/Root.ts +0 -60
  31. package/tm/standard/src/go/Entity_go.ts +0 -226
  32. package/tm/standard/src/go/MainEntity_go.ts +0 -26
  33. package/tm/standard/src/go/Main_go.ts +0 -168
  34. package/tm/standard/src/go/Quick_go.ts +0 -108
  35. package/tm/standard/src/go/ReadmeInstall_go.ts +0 -19
  36. package/tm/standard/src/go/ReadmeQuick_go.ts +0 -45
  37. package/tm/standard/src/go/TestAcceptEntity_go.ts +0 -219
  38. package/tm/standard/src/go/TestAccept_go.ts +0 -38
  39. package/tm/standard/src/go/TestEntity_go.ts +0 -79
  40. package/tm/standard/src/go/TestMain_go.ts +0 -61
  41. package/tm/standard/src/go/Test_go.ts +0 -20
  42. package/tm/standard/src/js/Entity_js.ts +0 -135
  43. package/tm/standard/src/js/MainEntity_js.ts +0 -22
  44. package/tm/standard/src/js/Main_js.ts +0 -128
  45. package/tm/standard/src/js/Quick_js.ts +0 -72
  46. package/tm/standard/src/js/ReadmeInstall_js.ts +0 -19
  47. package/tm/standard/src/js/ReadmeQuick_js.ts +0 -27
  48. package/tm/standard/src/js/TestAcceptEntity_js.ts +0 -101
  49. package/tm/standard/src/js/TestAccept_js.ts +0 -60
  50. package/tm/standard/src/js/TestEntity_js.ts +0 -24
  51. package/tm/standard/src/js/TestMain_js.ts +0 -123
  52. package/tm/standard/src/js/Test_js.ts +0 -24
  53. package/tm/standard/src/php/Entity_php.ts +0 -97
  54. package/tm/standard/src/php/MainEntity_php.ts +0 -43
  55. package/tm/standard/src/php/Main_php.ts +0 -50
  56. package/tm/standard/src/php/Quick_php.ts +0 -59
  57. package/tm/standard/src/php/TestAcceptEntity_php.ts +0 -81
  58. package/tm/standard/src/php/TestAccept_php.ts +0 -33
  59. package/tm/standard/src/php/TestEntity_php.ts +0 -64
  60. package/tm/standard/src/php/TestMain_php.ts +0 -120
  61. package/tm/standard/src/php/Test_php.ts +0 -21
  62. package/tm/standard/src/py/Entity_py.ts +0 -98
  63. package/tm/standard/src/py/MainEntity_py.ts +0 -19
  64. package/tm/standard/src/py/Main_py.ts +0 -211
  65. package/tm/standard/src/py/Quick_py.ts +0 -133
  66. package/tm/standard/src/py/TestAcceptEntity_py.ts +0 -47
  67. package/tm/standard/src/py/TestAccept_py.ts +0 -77
  68. package/tm/standard/src/py/TestEntity_py.ts +0 -50
  69. package/tm/standard/src/py/TestMain_py.ts +0 -103
  70. package/tm/standard/src/py/Test_py.ts +0 -28
  71. package/tm/standard/src/rb/Client_rb.ts +0 -142
  72. package/tm/standard/src/rb/Entity_rb.ts +0 -153
  73. package/tm/standard/src/rb/Error_rb.ts +0 -56
  74. package/tm/standard/src/rb/MainEntity_rb.ts +0 -16
  75. package/tm/standard/src/rb/Main_rb.ts +0 -55
  76. package/tm/standard/src/rb/Quick_rb.ts +0 -65
  77. package/tm/standard/src/rb/ReadmeInstall_rb.ts +0 -19
  78. package/tm/standard/src/rb/ReadmeQuick_rb.ts +0 -30
  79. package/tm/standard/src/rb/TestAcceptEntity_rb.ts +0 -83
  80. package/tm/standard/src/rb/TestAccept_rb.ts +0 -45
  81. package/tm/standard/src/rb/TestEntity_rb.ts +0 -82
  82. package/tm/standard/src/rb/TestMain_rb.ts +0 -67
  83. package/tm/standard/src/rb/Test_rb.ts +0 -27
  84. package/tm/standard/src/tsconfig.json +0 -15
  85. package/tm/standard/tm/go/.env.example +0 -2
  86. package/tm/standard/tm/go/LICENSE +0 -22
  87. package/tm/standard/tm/go/go.mod +0 -5
  88. package/tm/standard/tm/go/go.sum +0 -2
  89. package/tm/standard/tm/js/LICENSE +0 -22
  90. package/tm/standard/tm/js/package.json +0 -17
  91. package/tm/standard/tm/php/LICENSE +0 -22
  92. package/tm/standard/tm/py/LICENSE +0 -22
  93. package/tm/standard/tm/py/MANIFEST.in +0 -4
  94. package/tm/standard/tm/py/Makefile +0 -14
  95. package/tm/standard/tm/py/pyproject.toml +0 -4
  96. package/tm/standard/tm/py/pytest.ini +0 -3
  97. package/tm/standard/tm/py/requirements.txt +0 -4
  98. package/tm/standard/tm/py/setup.cfg +0 -2
  99. package/tm/standard/tm/py/setup.py +0 -82
  100. package/tm/standard/tm/rb/.rspec +0 -1
  101. package/tm/standard/tm/rb/Gemfile +0 -21
  102. package/tm/standard/tm/rb/LICENSE +0 -22
  103. package/tm/standard/tm/rb/Rakefile +0 -6
  104. package/tm/standard/tm/rb/spec/spec_helper.rb +0 -22
  105. package/tm/standard/tm/rb/tm.gemspec +0 -39
@@ -0,0 +1,196 @@
1
+ #!/usr/bin/env node
2
+
3
+ const Path = require('node:path')
4
+ const { statSync } = require('node:fs')
5
+ const { parseArgs } = require('node:util')
6
+
7
+ const { Gubu, Fault } = require('gubu')
8
+
9
+ const Pkg = require('../package.json')
10
+
11
+ const { CreateSdkGen } = require('../dist/create-sdkgen.js')
12
+
13
+ const rootpath = require.resolve('../dist/standard/Root')
14
+
15
+ let CONSOLE = console
16
+
17
+
18
+ try {
19
+ let options = resolveOptions()
20
+
21
+ if(options.debug) {
22
+ DEBUG = true
23
+ }
24
+
25
+ if(options.version) {
26
+ version()
27
+ }
28
+
29
+ if(options.help) {
30
+ help()
31
+ }
32
+
33
+ if(options.version || options.help) {
34
+ exit()
35
+ }
36
+
37
+ options = validateOptions(options)
38
+
39
+ generate(options)
40
+ }
41
+ catch(err) {
42
+ handleError(err)
43
+ }
44
+
45
+
46
+
47
+ function exit(err) {
48
+ let code = 0
49
+ if(err) {
50
+ code = 1
51
+ }
52
+ process.exit(code)
53
+ }
54
+
55
+
56
+ function generate(options) {
57
+ const createSdkGen = CreateSdkGen({
58
+ debug: options.debug
59
+ })
60
+
61
+
62
+ const spec = {
63
+ name: options.name,
64
+ root: './standard/Root',
65
+ def: options.def,
66
+ }
67
+
68
+ createSdkGen.generate(spec)
69
+ }
70
+
71
+
72
+
73
+ function resolveOptions() {
74
+
75
+ let args
76
+
77
+ try {
78
+ args = parseArgs({
79
+ allowPositionals: true,
80
+ options: {
81
+ def: {
82
+ type: 'string',
83
+ short: 'd',
84
+ default: ''
85
+ },
86
+
87
+ debug: {
88
+ type: 'string',
89
+ short: 'g',
90
+ default: 'info'
91
+ },
92
+
93
+ help: {
94
+ type: 'boolean',
95
+ short: 'h',
96
+ },
97
+
98
+ version: {
99
+ type: 'boolean',
100
+ short: 'v',
101
+ },
102
+
103
+ }
104
+ })
105
+ }
106
+ catch(err) {
107
+ if('ERR_PARSE_ARGS_UNKNOWN_OPTION' === err.code) {
108
+ handleError(err.message.replace(/\. .+$/,'.'))
109
+ }
110
+ throw err
111
+ }
112
+
113
+ // Set fake name if -v or -h used.
114
+ let name = args.positionals[0]
115
+ name = null == name ? '' : name
116
+ name = '' === name && (args.values.help || args.values.version) ? '__none__' : name
117
+
118
+ const options = {
119
+ name,
120
+ def: args.values.def,
121
+ debug: !!args.values.debug,
122
+ help: !!args.values.help,
123
+ version: !!args.values.version,
124
+ }
125
+
126
+ return options
127
+ }
128
+
129
+
130
+ function validateOptions(rawOptions) {
131
+ const optShape = Gubu({
132
+ name: Fault('The first argument must be the project name.', String),
133
+ def: '',
134
+ debug: Boolean,
135
+ help: Boolean,
136
+ version: Boolean,
137
+ })
138
+
139
+ const err = []
140
+ const options = optShape(rawOptions,{err})
141
+
142
+ if(err[0]) {
143
+ handleError(err[0].text)
144
+ }
145
+
146
+ return options
147
+ }
148
+
149
+
150
+ function handleError(err) {
151
+ CONSOLE.log('Voxgig Create SDK Error: '+err)
152
+ exit(err)
153
+ }
154
+
155
+
156
+ function version() {
157
+ CONSOLE.log(Pkg.version)
158
+ }
159
+
160
+
161
+ function help() {
162
+ let s = `
163
+ Create a Voxgig SDK Generator project.
164
+
165
+ Usage: npm create @voxgig/sdkgen@latest <name> <args>
166
+
167
+ <name> is the name of the SDK project. This is also used to
168
+ create a project folder. If run against an existing folder
169
+ generated files will be overwritten.
170
+
171
+ <args> are the command arguments:
172
+
173
+ --def Path to the OpenAPI definition file (optional).
174
+ -d
175
+
176
+ --debug Set log level (default: info): trace, error, debug, info, warn, fatal.
177
+ -g
178
+
179
+ --help Print this help message.
180
+ -h
181
+
182
+ --version Print version number.
183
+ -v
184
+
185
+
186
+ Examples:
187
+
188
+ # Basic usage
189
+ > npm create @voxgig/sdkgen@latest foo
190
+ # Creates the SDK Project in the folder ./foo
191
+
192
+ See also: https://voxgig.com/sdkgen
193
+ `
194
+
195
+ CONSOLE.log(s)
196
+ }
@@ -1,14 +1,17 @@
1
+ import { Pino } from '@voxgig/util';
1
2
  type FullCreateSdkGenOptions = {
2
- folder: string;
3
- fs: any;
4
- model: any;
5
- meta: any;
6
- rootpath: string;
3
+ fs?: any;
4
+ debug?: boolean | string;
5
+ pino?: ReturnType<typeof Pino>;
7
6
  };
8
7
  type CreateSdkGenOptions = Partial<FullCreateSdkGenOptions>;
9
- declare function CreateSdkGen(opts: CreateSdkGenOptions): {
10
- generate: (spec: any) => Promise<void>;
11
- watch: (spec: any) => Promise<void>;
8
+ type GenerateSpec = {
9
+ name: string;
10
+ def: string;
11
+ root: string;
12
+ };
13
+ declare function CreateSdkGen(opts: FullCreateSdkGenOptions): {
14
+ generate: (spec: GenerateSpec) => Promise<void>;
12
15
  };
13
16
  export type { CreateSdkGenOptions, };
14
17
  export { CreateSdkGen, };
@@ -16,84 +16,82 @@ 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;
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
+ })();
36
+ var __importDefault = (this && this.__importDefault) || function (mod) {
37
+ return (mod && mod.__esModule) ? mod : { "default": mod };
25
38
  };
26
39
  Object.defineProperty(exports, "__esModule", { value: true });
27
40
  exports.CreateSdkGen = CreateSdkGen;
28
41
  const Fs = __importStar(require("node:fs"));
29
- const chokidar_1 = require("chokidar");
42
+ const node_path_1 = __importDefault(require("node:path"));
43
+ const util_1 = require("@voxgig/util");
30
44
  const JostracaModule = __importStar(require("jostraca"));
31
- const { Jostraca } = JostracaModule;
45
+ const { each, names, Jostraca } = JostracaModule;
32
46
  function CreateSdkGen(opts) {
33
47
  const fs = opts.fs || Fs;
34
- const folder = opts.folder || '.';
48
+ const pino = (0, util_1.prettyPino)('create', opts);
49
+ const log = pino.child({ cmp: 'create' });
35
50
  const jostraca = Jostraca();
36
- const rootpath = opts.rootpath;
37
51
  async function generate(spec) {
38
- // console.log('CreateSdkGen.generate', spec)
39
- const { model } = spec;
40
- const ctx$ = { fs, folder, meta: { spec } };
41
- clear();
42
- const { Root } = require(rootpath);
43
- try {
44
- await jostraca.generate(ctx$, () => Root({ model }));
45
- }
46
- catch (err) {
47
- console.log('CREATE SDKGEN ERROR: ', err);
48
- throw err;
49
- }
50
- }
51
- async function watch(spec) {
52
- const fsw = new chokidar_1.FSWatcher();
53
- let last_change_time = 0;
54
- await generate(spec);
55
- fsw.on('change', (args) => {
56
- // console.log('CHANGE', args)
57
- const dorun = 1111 < Date.now() - last_change_time;
58
- if (dorun) {
59
- last_change_time = Date.now();
60
- generate(spec);
52
+ const start = Date.now();
53
+ log.info({ point: 'generate-start', start });
54
+ log.debug({ point: 'generate-spec', spec, note: JSON.stringify(spec, null, 2) });
55
+ const rootModule = require(spec.root);
56
+ const Root = rootModule.Root;
57
+ const name = spec.name;
58
+ spec.def = (null == spec.def || '' === spec.def) ? name + '-openapi3.yml' : spec.def;
59
+ const folder = node_path_1.default.join(process.cwd(), name + (name.endsWith('-sdk') ? '' : '-sdk'));
60
+ const opts = {
61
+ fs: () => fs,
62
+ folder,
63
+ log: log.child({ cmp: 'jostraca' }),
64
+ meta: { spec },
65
+ existing: {
66
+ // write: false,
67
+ // present: true,
68
+ merge: true
61
69
  }
62
- });
63
- spec.watch
64
- .map((wf) => (__dirname + '/' + wf))
65
- // .map((wf: string) => (console.log(wf), wf))
66
- .map((wf) => fsw.add(wf));
67
- // generate()
68
- }
69
- function clear() {
70
- if (rootpath) {
71
- clearRequire(rootpath);
72
- }
70
+ };
71
+ const model = {
72
+ name,
73
+ year: new Date().getFullYear(),
74
+ };
75
+ names(model, model.name);
76
+ log.debug({ point: 'generate-model', model, note: JSON.stringify(model, null, 2) });
77
+ const info = await jostraca.generate(opts, () => Root({ model, spec }));
78
+ logfiles(info, log);
79
+ log.info({ point: 'generate-end' });
73
80
  }
74
81
  return {
75
82
  generate,
76
- watch,
77
83
  };
78
84
  }
79
- // Adapted from https://github.com/sindresorhus/import-fresh - Thanks!
80
- function clearRequire(path) {
81
- let filePath = require.resolve(path);
82
- if (require.cache[filePath]) {
83
- const children = require.cache[filePath].children.map(child => child.id);
84
- // Delete module from cache
85
- delete require.cache[filePath];
86
- for (const id of children) {
87
- clearRequire(id);
85
+ function logfiles(info, log) {
86
+ const cwd = process.cwd();
87
+ ['preserve', 'present', 'merge'].map(action => {
88
+ let entries = info.file[action];
89
+ if (0 < entries.length) {
90
+ log.info({
91
+ point: 'file-' + action, entries,
92
+ note: '\n' + entries.map((n) => n.path.replace(cwd, '.')).join('\n')
93
+ });
88
94
  }
89
- }
90
- if (require.cache[filePath] && require.cache[filePath].parent) {
91
- let i = require.cache[filePath].parent.children.length;
92
- while (i--) {
93
- if (require.cache[filePath].parent.children[i].id === filePath) {
94
- require.cache[filePath].parent.children.splice(i, 1);
95
- }
96
- }
97
- }
95
+ });
98
96
  }
99
97
  //# sourceMappingURL=create-sdkgen.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"create-sdkgen.js","sourceRoot":"","sources":["../src/create-sdkgen.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create-sdkgen.js","sourceRoot":"","sources":["../src/create-sdkgen.ts"],"names":[],"mappings":"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"}
@@ -3,68 +3,15 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ModelSdk = void 0;
4
4
  const jostraca_1 = require("jostraca");
5
5
  const ModelSdk = (0, jostraca_1.cmp)(function ModelSdk(props) {
6
- const { ctx$, ctx$: { model } } = props;
7
- // console.log('ModelSdk 2', model)
8
- // TODO: use apidef
9
- // const def = ctx$.fs.readFileSync(model.def.filepath)
6
+ const { spec } = props;
10
7
  (0, jostraca_1.File)({ name: 'sdk.jsonic' }, () => {
11
- (0, jostraca_1.Content)(`
12
- name: '${model.name}'
13
-
14
- @"api.jsonic"
15
- @"def.jsonic"
16
-
17
- main: sdk: build: &: { name: .$KEY }
18
-
19
- main: sdk: build: js: @"js.jsonic"
20
-
21
- main: sdk: build: rb: @"rb.jsonic"
22
-
23
- main: sdk: build: py: @"py.jsonic"
24
-
25
- main: sdk: build: php: @"php.jsonic"
26
-
27
- main: sdk: build: go: @"go.jsonic"
28
-
29
-
30
-
31
- main: sdk: test: quick: entity: name: q
32
-
33
-
34
- main: sdk: entity: $.main.api.entity
35
-
36
-
37
- main: sdk: entity: &: {
38
- name: .$KEY
39
- publish: *true | boolean
40
- }
41
-
42
-
43
-
44
- main: sdk: options: &: {
45
- name: .$KEY
46
- publish: *true | boolean
47
- }
48
-
49
-
50
- main: sdk: options: {
51
-
52
- endpoint: {
53
- kind: *String | string
54
- short: "${model.Name} API URL"
55
- }
56
-
57
- apikey: {
58
- kind: *String | string
59
- short: "${model.Name} API Key"
60
- }
61
-
62
- fetch: {
63
- kind: *Any | string
64
- publish: false
65
- }
66
- }
67
- `);
8
+ (0, jostraca_1.Fragment)({
9
+ from: __dirname + '/../../project/.sdk/model/sdk.fragment.jsonic',
10
+ replace: {
11
+ NAME: spec.name,
12
+ DEF: spec.def,
13
+ }
14
+ });
68
15
  });
69
16
  });
70
17
  exports.ModelSdk = ModelSdk;
@@ -1 +1 @@
1
- {"version":3,"file":"ModelSdk.js","sourceRoot":"","sources":["../../src/standard/ModelSdk.ts"],"names":[],"mappings":";;;AACA,uCAWiB;AAIjB,MAAM,QAAQ,GAAG,IAAA,cAAG,EAAC,SAAS,QAAQ,CAAC,KAAU;IAC/C,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,EAAE,GAAG,KAAK,CAAA;IAGvC,mCAAmC;IAEnC,mBAAmB;IACnB,uDAAuD;IAGvD,IAAA,eAAI,EAAC,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,GAAG,EAAE;QAChC,IAAA,kBAAO,EAAC;SACH,KAAK,CAAC,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cA0CL,KAAK,CAAC,IAAI;;;;;cAKV,KAAK,CAAC,IAAI;;;;;;;;CAQvB,CAAC,CAAA;IACA,CAAC,CAAC,CAAA;AAEJ,CAAC,CAAC,CAAA;AAIA,4BAAQ"}
1
+ {"version":3,"file":"ModelSdk.js","sourceRoot":"","sources":["../../src/standard/ModelSdk.ts"],"names":[],"mappings":";;;AACA,uCAKiB;AAIjB,MAAM,QAAQ,GAAG,IAAA,cAAG,EAAC,SAAS,QAAQ,CAAC,KAAU;IAC/C,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,CAAA;IAGtB,IAAA,eAAI,EAAC,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,GAAG,EAAE;QAChC,IAAA,mBAAQ,EAAC;YACP,IAAI,EAAE,SAAS,GAAG,+CAA+C;YACjE,OAAO,EAAE;gBACP,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,GAAG,EAAE,IAAI,CAAC,GAAG;aACd;SACF,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AAEJ,CAAC,CAAC,CAAA;AAIA,4BAAQ"}
@@ -1,76 +1,77 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
2
35
  var __importDefault = (this && this.__importDefault) || function (mod) {
3
36
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
37
  };
5
38
  Object.defineProperty(exports, "__esModule", { value: true });
6
39
  exports.Root = void 0;
7
40
  const node_path_1 = __importDefault(require("node:path"));
41
+ const Fs = __importStar(require("node:fs"));
8
42
  const jostraca_1 = require("jostraca");
9
43
  const ModelSdk_1 = require("./ModelSdk");
44
+ // TODO: rename to RootSdk
10
45
  const Root = (0, jostraca_1.cmp)(function Root(props) {
11
- const { model, ctx$ } = props;
12
- const { folder, meta } = ctx$;
13
- const { spec } = meta;
14
- console.log('Root 5');
15
- // console.log('SPEC', spec)
16
- (0, jostraca_1.names)(model, model.name);
17
- // console.log('MODEL')
18
- // console.dir(model, { depth: null })
46
+ const { ctx$, ctx$: { folder }, spec, model } = props;
47
+ // TODO: move to @voxgig/util as duplicated
48
+ model.const = { name: model.name };
49
+ (0, jostraca_1.names)(model.const, model.name);
50
+ model.const.year = new Date().getFullYear();
19
51
  ctx$.model = model;
20
- /*
21
- let createInfo = { exclude: [], last: Number.MAX_SAFE_INTEGER }
22
-
23
-
24
- try {
25
- createInfo = JSON.parse(ctx$.fs.readFileSync(
26
- Path.join(folder, '.voxgig', 'create-sdkgen.json'), 'utf8'))
27
- }
28
- catch (err: any) {
29
- console.log(err)
30
- // TODO: file not foound ignored, handle others!
31
- }
32
-
33
- ctx$.info = createInfo
34
-
35
- console.log('INFO', ctx$.info)
36
- */
37
52
  (0, jostraca_1.Project)({ folder }, () => {
38
- // TODO: perhaps remove the need for this, create top level folder in Project
39
- // would keep paths indo of project folder name
40
- // Folder({ name: Path.basename(folder) }, () => {
41
- // File({ name: 'foo.txt' }, () => {
42
- // Content('FOO')
43
- // })
44
- // console.log('FOLDER', folder)
45
- (0, jostraca_1.Copy)({ from: __dirname + '/../../tm/standard' });
46
- const def = model.def.filepath;
47
- if (null != def && '' !== def) {
53
+ (0, jostraca_1.Copy)({
54
+ from: __dirname + '/../../project',
55
+ });
56
+ const origdef = spec.def;
57
+ const projdef = node_path_1.default.basename(origdef);
58
+ spec.def = projdef;
59
+ (0, jostraca_1.Folder)({ name: '.sdk' }, () => {
48
60
  (0, jostraca_1.Folder)({ name: 'def' }, () => {
49
- (0, jostraca_1.Copy)({ from: def, name: node_path_1.default.basename(def) });
61
+ if (Fs.existsSync(origdef)) {
62
+ (0, jostraca_1.Copy)({ from: origdef, to: projdef });
63
+ }
64
+ else {
65
+ (0, jostraca_1.File)({ name: projdef }, () => {
66
+ (0, jostraca_1.Content)('# OpenAPI Definition');
67
+ });
68
+ }
69
+ });
70
+ (0, jostraca_1.Folder)({ name: 'model' }, () => {
71
+ (0, ModelSdk_1.ModelSdk)({ spec });
50
72
  });
51
- }
52
- (0, jostraca_1.Folder)({ name: '.voxgig' }, () => { });
53
- (0, jostraca_1.Folder)({ name: 'model' }, () => {
54
- (0, ModelSdk_1.ModelSdk)({});
55
73
  });
56
74
  });
57
- /*
58
- // TODO: need mechanism to ensure this is last
59
- setTimeout(() => {
60
- try {
61
- const info = {
62
- last: Date.now(),
63
- exclude: ctx$.info.exclude,
64
- }
65
- ctx$.fs.writeFileSync(Path.join(folder, '.voxgig', 'create-sdkgen.json'),
66
- JSON.stringify(info, null, 2))
67
- }
68
- catch (err: any) {
69
- console.log(err)
70
- // TODO: file not foound ignored, handle others!
71
- }
72
- }, 777)
73
- */
74
75
  });
75
76
  exports.Root = Root;
76
77
  //# sourceMappingURL=Root.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Root.js","sourceRoot":"","sources":["../../src/standard/Root.ts"],"names":[],"mappings":";;;;;;AAEA,0DAA4B;AAG5B,uCAWiB;AAGjB,yCAAqC;AAGrC,MAAM,IAAI,GAAG,IAAA,cAAG,EAAC,SAAS,IAAI,CAAC,KAAU;IACvC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,KAAK,CAAA;IAE7B,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAA;IAC7B,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAA;IAErB,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;IAErB,4BAA4B;IAE5B,IAAA,gBAAK,EAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,CAAA;IAExB,uBAAuB;IACvB,sCAAsC;IAEtC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;IAElB;;;;;;;;;;;;;;;;MAgBE;IAEF,IAAA,kBAAO,EAAC,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE;QAEvB,6EAA6E;QAC7E,+CAA+C;QAC/C,kDAAkD;QAElD,oCAAoC;QACpC,mBAAmB;QACnB,KAAK;QAEL,gCAAgC;QAChC,IAAA,eAAI,EAAC,EAAE,IAAI,EAAE,SAAS,GAAG,oBAAoB,EAAE,CAAC,CAAA;QAEhD,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAA;QAC9B,IAAI,IAAI,IAAI,GAAG,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;YAC9B,IAAA,iBAAM,EAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE;gBAC3B,IAAA,eAAI,EAAC,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,mBAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;YAC/C,CAAC,CAAC,CAAA;QACJ,CAAC;QAED,IAAA,iBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAA;QAEtC,IAAA,iBAAM,EAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE;YAC7B,IAAA,mBAAQ,EAAC,EAAE,CAAC,CAAA;QACd,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF;;;;;;;;;;;;;;;;QAgBI;AACN,CAAC,CAAC,CAAA;AAIA,oBAAI"}
1
+ {"version":3,"file":"Root.js","sourceRoot":"","sources":["../../src/standard/Root.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,0DAA4B;AAC5B,4CAA6B;AAE7B,uCAUiB;AAGjB,yCAAqC;AAGrC,0BAA0B;AAC1B,MAAM,IAAI,GAAG,IAAA,cAAG,EAAC,SAAS,IAAI,CAAC,KAAU;IACvC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,KAAK,CAAA;IAErD,2CAA2C;IAC3C,KAAK,CAAC,KAAK,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAA;IAClC,IAAA,gBAAK,EAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,CAAA;IAC9B,KAAK,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;IAE3C,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;IAElB,IAAA,kBAAO,EAAC,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE;QACvB,IAAA,eAAI,EAAC;YACH,IAAI,EAAE,SAAS,GAAG,gBAAgB;SACnC,CAAC,CAAA;QAEF,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAA;QACxB,MAAM,OAAO,GAAG,mBAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;QACtC,IAAI,CAAC,GAAG,GAAG,OAAO,CAAA;QAElB,IAAA,iBAAM,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE;YAC5B,IAAA,iBAAM,EAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE;gBAC3B,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;oBAC3B,IAAA,eAAI,EAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,CAAA;gBACtC,CAAC;qBACI,CAAC;oBACJ,IAAA,eAAI,EAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE;wBAC3B,IAAA,kBAAO,EAAC,sBAAsB,CAAC,CAAA;oBACjC,CAAC,CAAC,CAAA;gBACJ,CAAC;YACH,CAAC,CAAC,CAAA;YAEF,IAAA,iBAAM,EAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE;gBAC7B,IAAA,mBAAQ,EAAC,EAAE,IAAI,EAAE,CAAC,CAAA;YACpB,CAAC,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;IAEJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAIA,oBAAI"}
@@ -1 +1 @@
1
- {"root":["../src/create-sdkgen.ts","../src/utility.ts","../src/standard/modelsdk.ts","../src/standard/root.ts"],"version":"5.6.2"}
1
+ {"root":["../src/create-sdkgen.ts","../src/standard/modelsdk.ts","../src/standard/root.ts"],"version":"5.8.3"}