@voxgig/create-sdkgen 0.1.2 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/bin/create-sdkgen CHANGED
@@ -74,6 +74,8 @@ function generate(options) {
74
74
  target: options.target,
75
75
  feature: options.feature,
76
76
  }
77
+
78
+ // console.log('OPTIONS', options)
77
79
 
78
80
  createSdkGen.generate(spec)
79
81
  }
@@ -0,0 +1,261 @@
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, One } = 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 KONSOLE = global['con'+'sole']
16
+
17
+
18
+ run()
19
+
20
+
21
+ async function run() {
22
+ try {
23
+ let options = resolveOptions()
24
+
25
+ if(options.debug) {
26
+ DEBUG = true
27
+ }
28
+
29
+ if(options.version) {
30
+ version()
31
+ }
32
+
33
+ if(options.help) {
34
+ help()
35
+ }
36
+
37
+ if(options.version || options.help) {
38
+ exit()
39
+ }
40
+
41
+ options = validateOptions(options)
42
+
43
+ generate(options)
44
+ }
45
+ catch(err) {
46
+ handleError(err)
47
+ }
48
+ }
49
+
50
+
51
+ function exit(err) {
52
+ let code = 0
53
+ if(err) {
54
+ code = 1
55
+ }
56
+ process.exit(code)
57
+ }
58
+
59
+
60
+ function generate(options) {
61
+ const createSdkGen = CreateSdkGen({
62
+ debug: options.debug
63
+ })
64
+
65
+
66
+ const spec = {
67
+ root: 'Root',
68
+
69
+ name: options.name,
70
+ def: options.def,
71
+ dryrun: options.dryrun,
72
+ project: options.project,
73
+ install: options.install,
74
+ target: options.target,
75
+ feature: options.feature,
76
+ }
77
+
78
+ createSdkGen.generate(spec)
79
+ }
80
+
81
+
82
+
83
+ function resolveOptions() {
84
+
85
+ let args
86
+
87
+ try {
88
+ args = parseArgs({
89
+ allowPositionals: true,
90
+ allowNegative: true,
91
+ options: {
92
+ def: {
93
+ type: 'string',
94
+ short: 'd',
95
+ default: ''
96
+ },
97
+
98
+ project: {
99
+ type: 'string',
100
+ short: 'p',
101
+ default: 'standard'
102
+ },
103
+
104
+ dryrun: {
105
+ type: 'boolean',
106
+ short: 'y',
107
+ },
108
+
109
+ install: {
110
+ type: 'boolean',
111
+ short: 'y',
112
+ default: true,
113
+ },
114
+
115
+ target: {
116
+ type: 'string',
117
+ short: 't',
118
+ multiple: true
119
+ },
120
+
121
+ feature: {
122
+ type: 'string',
123
+ short: 'f',
124
+ multiple: true
125
+ },
126
+
127
+ debug: {
128
+ type: 'string',
129
+ short: 'g',
130
+ default: 'info'
131
+ },
132
+
133
+ help: {
134
+ type: 'boolean',
135
+ short: 'h',
136
+ },
137
+
138
+ version: {
139
+ type: 'boolean',
140
+ short: 'v',
141
+ },
142
+
143
+ }
144
+ })
145
+ }
146
+ catch(err) {
147
+ if('ERR_PARSE_ARGS_UNKNOWN_OPTION' === err.code) {
148
+ handleError(err.message.replace(/\. .+$/,'.'))
149
+ }
150
+ throw err
151
+ }
152
+
153
+ // Set fake name if -v or -h used.
154
+ let name = args.positionals[0]
155
+ name = null == name ? '' : name
156
+ name = '' === name && (args.values.help || args.values.version) ? '__none__' : name
157
+
158
+ targets = args.values.target || []
159
+ if( 1 < args.positionals.length ) {
160
+ targets.push(args.positionals.slice(1))
161
+ }
162
+
163
+ features = args.values.feature || []
164
+
165
+ const options = {
166
+ name,
167
+ def: args.values.def,
168
+ project: args.values.project,
169
+ dryrun: !!args.values.dryrun,
170
+ install: !!args.values.install,
171
+ target: targets,
172
+ feature: features,
173
+ debug: args.values.debug,
174
+ help: !!args.values.help,
175
+ version: !!args.values.version,
176
+ }
177
+
178
+ // console.log('ARGS', args, options)
179
+
180
+ return options
181
+ }
182
+
183
+
184
+ function validateOptions(rawOptions) {
185
+ const optShape = Gubu({
186
+ name: Fault('The first argument must be the project name.', String),
187
+ def: '',
188
+ project: String,
189
+ dryrun: Boolean,
190
+ install: Boolean,
191
+ target: [String],
192
+ feature: [String],
193
+ debug: String,
194
+ help: Boolean,
195
+ version: Boolean,
196
+ })
197
+
198
+ const err = []
199
+ const options = optShape(rawOptions,{err})
200
+
201
+ if(err[0]) {
202
+ handleError(err[0].text)
203
+ }
204
+
205
+ return options
206
+ }
207
+
208
+
209
+ function handleError(err) {
210
+ KONSOLE.log('Voxgig Create SDK Error: '+err)
211
+ exit(err)
212
+ }
213
+
214
+
215
+ function version() {
216
+ KONSOLE.log(Pkg.version)
217
+ }
218
+
219
+
220
+ function help() {
221
+ let s = `
222
+ Create a Voxgig SDK Generator project.
223
+
224
+ Usage: npm create @voxgig/sdkgen@latest <name> <args>
225
+
226
+ <name> is the name of the SDK project. This is also used to
227
+ create a project folder. If run against an existing folder
228
+ generated files will be overwritten.
229
+
230
+ <args> are the command arguments:
231
+
232
+ --def Path to the OpenAPI definition file (optional).
233
+ -d
234
+
235
+ --project Project template (folder or package reference). Default: standard.
236
+ -p
237
+
238
+ --dryrun Perform a dry run, where no files are modified.
239
+ -y
240
+
241
+ --debug Set log level (default: info): trace, error, debug, info, warn, fatal.
242
+ -g
243
+
244
+ --help Print this help message.
245
+ -h
246
+
247
+ --version Print version number.
248
+ -v
249
+
250
+
251
+ Examples:
252
+
253
+ # Basic usage
254
+ > npm create @voxgig/sdkgen@latest foo
255
+ # Creates the SDK Project in the folder ./foo
256
+
257
+ See also: https://voxgig.com/sdkgen
258
+ `
259
+
260
+ KONSOLE.log(s)
261
+ }
@@ -85,8 +85,9 @@ function CreateSdkGen(opts) {
85
85
  names(model, model.name);
86
86
  names(model, model.name, 'project_name');
87
87
  log.debug({ point: 'generate-model', model, note: JSON.stringify(model, null, 2) });
88
+ // console.log('GENERATE', model, jopts)
88
89
  const jres = await jostraca.generate(jopts, () => Root({ model, spec }));
89
- // logfiles(jres, log)
90
+ // console.log('JRES', jres)
90
91
  (0, util_1.showChanges)(jopts.log, 'generate-result', jres, node_path_1.default.dirname(process.cwd()));
91
92
  if (!spec.dryrun && spec.install) {
92
93
  await installNpm(spec, jopts, model);
@@ -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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"}
@@ -1 +1 @@
1
- {"root":["../src/create-sdkgen.ts","../src/project/standard/modelsdk.ts","../src/project/standard/root.ts"],"version":"5.8.3"}
1
+ {"root":["../src/create-sdkgen.ts","../src/project/standard/modelsdk.ts","../src/project/standard/root.ts"],"version":"5.9.2"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@voxgig/create-sdkgen",
3
- "version": "0.1.2",
3
+ "version": "0.2.0",
4
4
  "main": "dist/create-sdkgen.js",
5
5
  "type": "commonjs",
6
6
  "types": "dist/create-sdkgen.d.ts",
@@ -44,14 +44,14 @@
44
44
  "@hapi/code": "^9.0.3",
45
45
  "@types/node": "24.1.0",
46
46
  "esbuild": "^0.25.8",
47
- "memfs": "^4.24.0",
48
- "typescript": "^5.8.3"
47
+ "memfs": "^4.25.1",
48
+ "typescript": "^5.9.2"
49
49
  },
50
50
  "dependencies": {
51
51
  "@voxgig/util": "^0.2.0",
52
52
  "aontu": "^0.28.0",
53
53
  "chokidar": "^4.0.3",
54
54
  "gubu": "^9.0.0",
55
- "jostraca": "^0.23.0"
55
+ "jostraca": "^0.24.0"
56
56
  }
57
57
  }
@@ -2,12 +2,14 @@
2
2
 
3
3
  @'@voxgig/model/model/.model-config/model-config.jsonic'
4
4
 
5
- sys: model: builders: {
5
+ sys: model: action: {
6
6
  apidef: load: 'build/apidef.js'
7
7
  sdkgen: load: 'build/sdkgen.js'
8
8
  // docgen: load: 'build/docgen.js'
9
9
  }
10
10
 
11
+ sys: model: order: action: 'apidef,sdkgen'
12
+
11
13
  sys: model: watch: {
12
14
  'src': {} # To catch fragment updates.
13
15
  'dist': {}
@@ -10,6 +10,7 @@
10
10
 
11
11
  # SDK Details.
12
12
  name: 'NAME'
13
+ origin: 'voxgig'
13
14
  def: 'DEF'
14
15
 
15
16
 
@@ -1,23 +1,26 @@
1
1
  {
2
2
  "name": "build-$$const.name$$-sdk",
3
3
  "version": "0.0.1",
4
- "description": "",
5
- "main": "index.js",
4
+ "description": "$$const.Name$$ SDK Project",
6
5
  "scripts": {
7
- "model": "voxgig-model model/sdk.jsonic",
8
- "model-watch": "voxgig-model -w model/sdk.jsonic",
6
+ "generate": "voxgig-model model/sdk.jsonic",
7
+ "watch-generate": "voxgig-model -w model/sdk.jsonic",
8
+ "dry-generate": "voxgig-model -y model/sdk.jsonic",
9
+ "watch-dry-generate": "voxgig-model -w -y model/sdk.jsonic",
9
10
  "test-model": "voxgig-model test/test.jsonic",
10
- "test-model-watch": "voxgig-model -w test/test.jsonic",
11
+ "watch-test-model": "voxgig-model -w test/test.jsonic",
11
12
  "watch": "tsc --build src -w",
12
13
  "build": "tsc --build src",
13
14
  "test": "echo no-test",
14
15
  "clean": "rm -rf node_modules yarn.lock package-lock.json",
15
16
  "reset": "npm run clean && npm i && npm run build && npm test",
16
- "add-target": "voxgig-sdkgen target add $npm_config_target",
17
- "add-feature": "voxgig-sdkgen feature add $npm_config_feature"
17
+ "add-target": "voxgig-sdkgen target add",
18
+ "dry-add-target": "voxgig-sdkgen -y target add",
19
+ "add-feature": "voxgig-sdkgen feature add",
20
+ "dry-add-feature": "voxgig-sdkgen -y feature add"
18
21
  },
19
- "author": "",
20
- "license": "MIT",
22
+ "author": "$$const.Name$$",
23
+ "license": "$$const.License$$",
21
24
  "devDependencies": {
22
25
  "@types/node": ">=24",
23
26
  "typescript": ">=5",
@@ -26,6 +26,8 @@ const {
26
26
  } = PointUtil
27
27
 
28
28
 
29
+ import { Top } from './Top'
30
+
29
31
 
30
32
  const Root = cmp(function Root(props: any) {
31
33
  const { model, ctx$ } = props
@@ -62,6 +64,9 @@ const Root = cmp(function Root(props: any) {
62
64
 
63
65
  Project({}, () => {
64
66
 
67
+ // TODO: jostraca should accept no props
68
+ Top({})
69
+
65
70
  each(target, (target: any) => {
66
71
  names(target, target.name)
67
72
 
@@ -0,0 +1,48 @@
1
+
2
+
3
+ import {
4
+ cmp, each, Line, File, Content
5
+ } from '@voxgig/sdkgen'
6
+
7
+
8
+ const Top = cmp(function Top(props: any) {
9
+ const { ctx$ } = props
10
+ const { model } = ctx$
11
+
12
+ File({ name: 'README.md' }, () => {
13
+ Content(`# ${model.Name} SDKs
14
+
15
+ ## API Entities
16
+
17
+ \`\`\`mermaid
18
+ flowchart LR
19
+ `)
20
+
21
+ const entityMap = model.main.api.entity
22
+
23
+ each(entityMap, (entity: any) => {
24
+ const ancestors = entity.ancestors || []
25
+ if (0 < ancestors.length) {
26
+ const pname = ancestors[ancestors.length - 1]
27
+ const parent = entityMap[pname]
28
+ if (null != parent) {
29
+ Line(` ${parent.Name} --> ${entity.Name}`)
30
+ }
31
+ }
32
+ })
33
+
34
+ Content(`
35
+ \`\`\`
36
+
37
+ `)
38
+
39
+
40
+
41
+ })
42
+ })
43
+
44
+
45
+ export {
46
+ Top
47
+ }
48
+
@@ -89,9 +89,11 @@ function CreateSdkGen(opts: FullCreateSdkGenOptions) {
89
89
 
90
90
  log.debug({ point: 'generate-model', model, note: JSON.stringify(model, null, 2) })
91
91
 
92
+ // console.log('GENERATE', model, jopts)
93
+
92
94
  const jres = await jostraca.generate(jopts, () => Root({ model, spec }))
93
95
 
94
- // logfiles(jres, log)
96
+ // console.log('JRES', jres)
95
97
 
96
98
  showChanges(jopts.log, 'generate-result', jres, Path.dirname(process.cwd()))
97
99
 
@@ -1,16 +0,0 @@
1
-
2
-
3
- @'@voxgig/model/model/.model-config/model-config.jsonic'
4
-
5
- sys: model: builders: {
6
- apidef: load: 'build/apidef.js'
7
- sdkgen: load: 'build/sdkgen.js'
8
- // docgen: load: 'build/docgen.js'
9
- }
10
-
11
- sys: model: watch: {
12
- 'dist': {}
13
- 'tm': {}
14
- 'def': {}
15
- # 'doc/static/src': {}
16
- }