@voxgig/sdkgen 0.34.8 → 0.34.10

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/voxgig-sdkgen CHANGED
@@ -8,7 +8,7 @@ const { Gubu, Fault, One } = require('gubu')
8
8
 
9
9
  const { SdkGen } = require('../dist/sdkgen.js')
10
10
 
11
- const VERSION = '0.34.8'
11
+ const VERSION = '0.34.10'
12
12
  const KONSOLE = console
13
13
 
14
14
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@voxgig/sdkgen",
3
- "version": "0.34.8",
3
+ "version": "0.34.10",
4
4
  "main": "dist/sdkgen.js",
5
5
  "type": "commonjs",
6
6
  "types": "dist/sdkgen.d.ts",
@@ -39,6 +39,7 @@ const Entity = cmp(function Entity(props: any) {
39
39
  from: ff + 'Entity.fragment.js',
40
40
  replace: {
41
41
  ...entrep,
42
+ entityname: entity.name,
42
43
  SdkName: model.const.Name,
43
44
  EntityName: entity.Name,
44
45
 
@@ -40,6 +40,7 @@ const Entity = cmp(function Entity(props: any) {
40
40
  from: ff + 'Entity.fragment.ts',
41
41
  replace: {
42
42
  ...entrep,
43
+ entityname: entity.name,
43
44
  SdkName: model.const.Name,
44
45
  EntityName: entity.Name,
45
46
 
@@ -121,7 +121,7 @@ function directSetup(mockres?: any) {
121
121
 
122
122
  function generateDirectLoad(model: any, entity: any) {
123
123
  const loadOp = entity.op.load
124
- const loadPoint = loadOp.points[0]
124
+ const loadPoint = loadOp?.points?.[0]
125
125
 
126
126
  if (null == loadPoint) {
127
127
  return
@@ -218,7 +218,7 @@ ${paramAsserts} }
218
218
 
219
219
  function generateDirectList(model: any, entity: any) {
220
220
  const listOp = entity.op.list
221
- const listPoint = listOp.points[0]
221
+ const listPoint = listOp?.points?.[0]
222
222
 
223
223
  if (null == listPoint) {
224
224
  return
@@ -189,11 +189,33 @@ const generateCreate: OpGen = (
189
189
  const entvar = step.input.entvar ?? ref + '_ent'
190
190
  const datavar = step.input.datavar ?? (ref + '_data' + (step.input.suffix ?? ''))
191
191
 
192
+ const priorSteps = Object.values(flow.step).slice(0, Number(index))
193
+ const needsEnt = !priorSteps.some((s: any) =>
194
+ ['create', 'list', 'load', 'remove'].includes(s.op))
195
+
196
+ const hasDatvar = priorSteps.some((s: any) => {
197
+ if ('create' === s.op) {
198
+ const priorRef = s.input?.ref ?? entity.name + '_ref01'
199
+ const priorDatvar = s.input?.datavar ?? (priorRef + '_data' + (s.input?.suffix ?? ''))
200
+ return priorDatvar === datavar
201
+ }
202
+ return false
203
+ })
204
+
192
205
  Content(`
193
206
  // CREATE
194
- const ${entvar} = client.${nom(entity, 'Name')}()
195
- let ${datavar} = setup.data.new.${entity.name}['${ref}']
196
207
  `)
208
+ if (needsEnt) {
209
+ Content(` const ${entvar} = client.${nom(entity, 'Name')}()
210
+ `)
211
+ }
212
+ if (hasDatvar) {
213
+ Content(` ${datavar} = setup.data.new.${entity.name}['${ref}']
214
+ `)
215
+ } else {
216
+ Content(` let ${datavar} = setup.data.new.${entity.name}['${ref}']
217
+ `)
218
+ }
197
219
 
198
220
  each(step.match, (mi: any) => {
199
221
  Content(` ${datavar}['${mi.key$}'] = setup.idmap['${mi.val$}']
@@ -219,8 +241,9 @@ const generateList: OpGen = (
219
241
  const matchvar = step.input.matchvar ?? (ref + '_match' + (step.input.suffix ?? ''))
220
242
  const listvar = step.input.listvar ?? (ref + '_list' + (step.input.suffix ?? ''))
221
243
 
222
- const priorSteps = Object.values(flow.step).slice(0, index.key$)
223
- const needsEnt = !priorSteps.some((s: any) => 'create' === s.op)
244
+ const priorSteps = Object.values(flow.step).slice(0, Number(index))
245
+ const needsEnt = !priorSteps.some((s: any) =>
246
+ ['create', 'list', 'load', 'remove'].includes(s.op))
224
247
 
225
248
  Content(`
226
249
  // LIST
@@ -331,13 +354,14 @@ const generateLoad: OpGen = (
331
354
  const datavar = step.input.datavar ?? (ref + '_data' + (step.input.suffix ?? ''))
332
355
  const srcdatavar = step.input.srcdatavar ?? (ref + '_data' + (step.input.suffix ?? ''))
333
356
 
334
- const priorSteps = Object.values(flow.step).slice(0, index.key$)
335
- const hasCreate = priorSteps.some((s: any) => 'create' === s.op)
357
+ const priorSteps = Object.values(flow.step).slice(0, Number(index))
358
+ const hasEntVar = priorSteps.some((s: any) =>
359
+ ['create', 'list', 'load', 'remove'].includes(s.op))
336
360
 
337
361
  Content(`
338
362
  // LOAD
339
363
  `)
340
- if (!hasCreate) {
364
+ if (!hasEntVar) {
341
365
  Content(` const ${entvar} = client.${nom(entity, 'Name')}()
342
366
  const ${srcdatavar} = Object.values(setup.data.existing.${entity.name})[0] as any
343
367
  `)
@@ -362,8 +386,9 @@ const generateRemove: OpGen = (
362
386
  const matchvar = step.input.matchvar ?? (ref + '_match' + (step.input.suffix ?? ''))
363
387
  const srcdatavar = step.input.srcdatavar ?? (ref + '_data')
364
388
 
365
- const priorSteps = Object.values(flow.step).slice(0, index.key$)
366
- const needsEnt = !priorSteps.some((s: any) => 'create' === s.op)
389
+ const priorSteps = Object.values(flow.step).slice(0, Number(index))
390
+ const needsEnt = !priorSteps.some((s: any) =>
391
+ ['create', 'list', 'load', 'remove'].includes(s.op))
367
392
 
368
393
  Content(`
369
394
  // REMOVE
@@ -26,6 +26,11 @@ func makePointUtil(ctx *core.Context) (map[string]any, error) {
26
26
  "\" not allowed by SDK option allow.op value: \""+allowOp+"\"")
27
27
  }
28
28
 
29
+ if len(op.Points) == 0 {
30
+ return nil, ctx.MakeError("point_no_points",
31
+ "Operation \""+op.Name+"\" has no endpoint definitions.")
32
+ }
33
+
29
34
  if len(op.Points) == 1 {
30
35
  ctx.Point = op.Points[0]
31
36
  } else {
@@ -16,6 +16,11 @@ function makePoint(ctx: Context): Point | Error {
16
16
  '" not allowed by SDK option allow.op value: "' + options.allow.op + '"')
17
17
  }
18
18
 
19
+ if (0 === op.points.length) {
20
+ return ctx.error('point_no_points',
21
+ 'Operation "' + op.name + '" has no endpoint definitions.')
22
+ }
23
+
19
24
  // Choose the appropriate point based on the match or data.
20
25
  if (1 === op.points.length) {
21
26
  ctx.point = op.points[0]