@voxgig/sdkgen 0.26.1 → 0.30.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 (157) hide show
  1. package/bin/voxgig-sdkgen +1 -1
  2. package/dist/cmp/Feature.js +11 -9
  3. package/dist/cmp/Feature.js.map +1 -1
  4. package/dist/cmp/Main.js +6 -2
  5. package/dist/cmp/Main.js.map +1 -1
  6. package/model/sdkgen.jsonic +1 -1
  7. package/package.json +5 -5
  8. package/project/.sdk/model/feature/log.jsonic +1 -1
  9. package/project/.sdk/model/feature/test.jsonic +1 -1
  10. package/project/.sdk/model/target/go.jsonic +19 -4
  11. package/project/.sdk/model/target/ts.jsonic +3 -3
  12. package/project/.sdk/src/cmp/go/Config_go.ts +119 -0
  13. package/project/.sdk/src/cmp/go/EntityOperation_go.ts +48 -0
  14. package/project/.sdk/src/cmp/go/Entity_go.ts +67 -0
  15. package/project/.sdk/src/cmp/go/MainEntity_go.ts +22 -0
  16. package/project/.sdk/src/cmp/go/Main_go.ts +209 -0
  17. package/project/.sdk/src/cmp/go/Package_go.ts +89 -0
  18. package/project/.sdk/src/cmp/go/TestDirect_go.ts +373 -0
  19. package/project/.sdk/src/cmp/go/TestEntity_go.ts +341 -0
  20. package/project/.sdk/src/cmp/go/Test_go.ts +37 -0
  21. package/project/.sdk/src/cmp/go/fragment/Entity.fragment.go +146 -0
  22. package/project/.sdk/src/cmp/go/fragment/EntityCreateOp.fragment.go +35 -0
  23. package/project/.sdk/src/cmp/go/fragment/EntityListOp.fragment.go +26 -0
  24. package/project/.sdk/src/cmp/go/fragment/EntityLoadOp.fragment.go +38 -0
  25. package/project/.sdk/src/cmp/go/fragment/EntityRemoveOp.fragment.go +38 -0
  26. package/project/.sdk/src/cmp/go/fragment/EntityUpdateOp.fragment.go +38 -0
  27. package/project/.sdk/src/cmp/go/fragment/Main.fragment.go +250 -0
  28. package/project/.sdk/src/cmp/go/fragment/SdkError.fragment.go +22 -0
  29. package/project/.sdk/src/cmp/go/tsconfig.json +15 -0
  30. package/project/.sdk/src/cmp/go/utility_go.ts +88 -0
  31. package/project/.sdk/src/cmp/js/fragment/EntityCreateOp.fragment.js +6 -6
  32. package/project/.sdk/src/cmp/js/fragment/EntityListOp.fragment.js +6 -6
  33. package/project/.sdk/src/cmp/js/fragment/EntityLoadOp.fragment.js +6 -6
  34. package/project/.sdk/src/cmp/js/fragment/EntityRemoveOp.fragment.js +6 -6
  35. package/project/.sdk/src/cmp/js/fragment/EntityUpdateOp.fragment.js +6 -6
  36. package/project/.sdk/src/cmp/js/fragment/Main.fragment.js +85 -1
  37. package/project/.sdk/src/cmp/ts/EntityOperation_ts.ts +1 -1
  38. package/project/.sdk/src/cmp/ts/Main_ts.ts +4 -4
  39. package/project/.sdk/src/cmp/ts/SdkError_ts.ts +42 -0
  40. package/project/.sdk/src/cmp/ts/TestDirect_ts.ts +288 -0
  41. package/project/.sdk/src/cmp/ts/TestEntity_ts.ts +14 -6
  42. package/project/.sdk/src/cmp/ts/Test_ts.ts +2 -0
  43. package/project/.sdk/src/cmp/ts/fragment/Direct.test.fragment.ts +30 -0
  44. package/project/.sdk/src/cmp/ts/fragment/EntityCreateOp.fragment.ts +12 -12
  45. package/project/.sdk/src/cmp/ts/fragment/EntityListOp.fragment.ts +12 -12
  46. package/project/.sdk/src/cmp/ts/fragment/EntityLoadOp.fragment.ts +12 -12
  47. package/project/.sdk/src/cmp/ts/fragment/EntityRemoveOp.fragment.ts +13 -13
  48. package/project/.sdk/src/cmp/ts/fragment/EntityUpdateOp.fragment.ts +12 -12
  49. package/project/.sdk/src/cmp/ts/fragment/Main.fragment.ts +102 -6
  50. package/project/.sdk/src/cmp/ts/fragment/SdkError.fragment.ts +25 -0
  51. package/project/.sdk/tm/go/Makefile +10 -0
  52. package/project/.sdk/tm/go/core/context.go +267 -0
  53. package/project/.sdk/tm/go/core/control.go +7 -0
  54. package/project/.sdk/tm/go/core/error.go +25 -0
  55. package/project/.sdk/tm/go/core/helpers.go +33 -0
  56. package/project/.sdk/tm/go/core/operation.go +61 -0
  57. package/project/.sdk/tm/go/core/response.go +55 -0
  58. package/project/.sdk/tm/go/core/result.go +73 -0
  59. package/project/.sdk/tm/go/core/spec.go +97 -0
  60. package/project/.sdk/tm/go/core/target.go +102 -0
  61. package/project/.sdk/tm/go/core/types.go +44 -0
  62. package/project/.sdk/tm/go/core/utility_type.go +54 -0
  63. package/project/.sdk/tm/go/feature/base_feature.go +40 -0
  64. package/project/.sdk/tm/go/feature/test_feature.go +196 -0
  65. package/project/.sdk/tm/go/src/feature/README.md +1 -0
  66. package/project/.sdk/tm/go/src/feature/base/.gitkeep +0 -0
  67. package/project/.sdk/tm/go/src/feature/test/.gitkeep +0 -0
  68. package/project/.sdk/tm/go/test/custom_utility_test.go +80 -0
  69. package/project/.sdk/tm/go/test/exists_test.go +16 -0
  70. package/project/.sdk/tm/go/test/primary_utility_test.go +899 -0
  71. package/project/.sdk/tm/go/test/runner_test.go +428 -0
  72. package/project/.sdk/tm/go/test/struct_runner_test.go +1094 -0
  73. package/project/.sdk/tm/go/test/struct_utility_test.go +1423 -0
  74. package/project/.sdk/tm/go/utility/clean.go +7 -0
  75. package/project/.sdk/tm/go/utility/done.go +20 -0
  76. package/project/.sdk/tm/go/utility/feature_add.go +10 -0
  77. package/project/.sdk/tm/go/utility/feature_hook.go +30 -0
  78. package/project/.sdk/tm/go/utility/feature_init.go +30 -0
  79. package/project/.sdk/tm/go/utility/fetcher.go +102 -0
  80. package/project/.sdk/tm/go/utility/make_context.go +7 -0
  81. package/project/.sdk/tm/go/utility/make_error.go +69 -0
  82. package/project/.sdk/tm/go/utility/make_fetch_def.go +44 -0
  83. package/project/.sdk/tm/go/utility/make_options.go +130 -0
  84. package/project/.sdk/tm/go/utility/make_request.go +59 -0
  85. package/project/.sdk/tm/go/utility/make_response.go +46 -0
  86. package/project/.sdk/tm/go/utility/make_result.go +55 -0
  87. package/project/.sdk/tm/go/utility/make_spec.go +68 -0
  88. package/project/.sdk/tm/go/utility/make_target.go +95 -0
  89. package/project/.sdk/tm/go/utility/make_url.go +41 -0
  90. package/project/.sdk/tm/go/utility/param.go +66 -0
  91. package/project/.sdk/tm/go/utility/prepare_auth.go +40 -0
  92. package/project/.sdk/tm/go/utility/prepare_body.go +14 -0
  93. package/project/.sdk/tm/go/utility/prepare_headers.go +22 -0
  94. package/project/.sdk/tm/go/utility/prepare_method.go +21 -0
  95. package/project/.sdk/tm/go/utility/prepare_params.go +41 -0
  96. package/project/.sdk/tm/go/utility/prepare_path.go +21 -0
  97. package/project/.sdk/tm/go/utility/prepare_query.go +47 -0
  98. package/project/.sdk/tm/go/utility/register.go +39 -0
  99. package/project/.sdk/tm/go/utility/result_basic.go +31 -0
  100. package/project/.sdk/tm/go/utility/result_body.go +17 -0
  101. package/project/.sdk/tm/go/utility/result_headers.go +22 -0
  102. package/project/.sdk/tm/go/utility/struct/go.mod +3 -0
  103. package/project/.sdk/tm/go/utility/struct/voxgigstruct.go +4891 -0
  104. package/project/.sdk/tm/go/utility/transform_request.go +32 -0
  105. package/project/.sdk/tm/go/utility/transform_response.go +45 -0
  106. package/project/.sdk/tm/js/src/feature/log/LogFeature.js +2 -2
  107. package/project/.sdk/tm/ts/src/Context.ts +144 -0
  108. package/project/.sdk/tm/ts/src/Control.ts +20 -0
  109. package/project/.sdk/tm/ts/src/Operation.ts +24 -0
  110. package/project/.sdk/tm/ts/src/Response.ts +26 -0
  111. package/project/.sdk/tm/ts/src/Result.ts +30 -0
  112. package/project/.sdk/tm/ts/src/Spec.ts +40 -0
  113. package/project/.sdk/tm/ts/src/Target.ts +36 -0
  114. package/project/.sdk/tm/ts/src/feature/base/BaseFeature.ts +1 -1
  115. package/project/.sdk/tm/ts/src/feature/log/LogFeature.ts +2 -2
  116. package/project/.sdk/tm/ts/src/feature/test/TestFeature.ts +7 -7
  117. package/project/.sdk/tm/ts/src/types.ts +15 -205
  118. package/project/.sdk/tm/ts/src/utility/DoneUtility.ts +2 -3
  119. package/project/.sdk/tm/ts/src/utility/{AddfeatureUtility.ts → FeatureAddUtility.ts} +2 -2
  120. package/project/.sdk/tm/ts/src/utility/{InitfeatureUtility.ts → FeatureInitUtility.ts} +2 -2
  121. package/project/.sdk/tm/ts/src/utility/FetcherUtility.ts +5 -3
  122. package/project/.sdk/tm/ts/src/utility/{ErrorUtility.ts → MakeErrorUtility.ts} +4 -4
  123. package/project/.sdk/tm/ts/src/utility/MakeFetchDefUtility.ts +46 -0
  124. package/project/.sdk/tm/ts/src/utility/{OptionsUtility.ts → MakeOptionsUtility.ts} +10 -7
  125. package/project/.sdk/tm/ts/src/utility/MakeRequestUtility.ts +66 -0
  126. package/project/.sdk/tm/ts/src/utility/MakeResponseUtility.ts +61 -0
  127. package/project/.sdk/tm/ts/src/utility/{ResultUtility.ts → MakeResultUtility.ts} +6 -6
  128. package/project/.sdk/tm/ts/src/utility/MakeSpecUtility.ts +61 -0
  129. package/project/.sdk/tm/ts/src/utility/{SelectionUtility.ts → MakeTargetUtility.ts} +22 -24
  130. package/project/.sdk/tm/ts/src/utility/{FullurlUtility.ts → MakeUrlUtility.ts} +7 -8
  131. package/project/.sdk/tm/ts/src/utility/{FindparamUtility.ts → ParamUtility.ts} +21 -8
  132. package/project/.sdk/tm/ts/src/utility/{AuthUtility.ts → PrepareAuthUtility.ts} +4 -4
  133. package/project/.sdk/tm/ts/src/utility/{BodyUtility.ts → PrepareBodyUtility.ts} +7 -7
  134. package/project/.sdk/tm/ts/src/utility/{HeadersUtility.ts → PrepareHeadersUtility.ts} +5 -7
  135. package/project/.sdk/tm/ts/src/utility/{MethodUtility.ts → PrepareMethodUtility.ts} +6 -6
  136. package/project/.sdk/tm/ts/src/utility/PrepareParamsUtility.ts +37 -0
  137. package/project/.sdk/tm/ts/src/utility/PreparePathUtility.ts +3 -4
  138. package/project/.sdk/tm/ts/src/utility/PrepareQueryUtility.ts +30 -0
  139. package/project/.sdk/tm/ts/src/utility/{ResbasicUtility.ts → ResultBasicUtility.ts} +11 -6
  140. package/project/.sdk/tm/ts/src/utility/{ResbodyUtility.ts → ResultBodyUtility.ts} +4 -3
  141. package/project/.sdk/tm/ts/src/utility/{ResheadersUtility.ts → ResultHeadersUtility.ts} +4 -3
  142. package/project/.sdk/tm/ts/src/utility/{ReqformUtility.ts → TransformRequestUtility.ts} +9 -7
  143. package/project/.sdk/tm/ts/src/utility/{ResformUtility.ts → TransformResponseUtility.ts} +10 -7
  144. package/project/.sdk/tm/ts/src/utility/Utility.ts +47 -62
  145. package/project/.sdk/tm/ts/test/runner.ts +25 -4
  146. package/project/.sdk/tm/ts/test/utility/PrimaryUtility.test.ts +386 -175
  147. package/src/cmp/Feature.ts +11 -9
  148. package/src/cmp/Main.ts +8 -2
  149. package/project/.sdk/tm/ts/src/utility/JoinurlUtility.ts +0 -15
  150. package/project/.sdk/tm/ts/src/utility/OperationUtility.ts +0 -23
  151. package/project/.sdk/tm/ts/src/utility/ParamsUtility.ts +0 -37
  152. package/project/.sdk/tm/ts/src/utility/QueryUtility.ts +0 -27
  153. package/project/.sdk/tm/ts/src/utility/RequestUtility.ts +0 -83
  154. package/project/.sdk/tm/ts/src/utility/ResponseUtility.ts +0 -61
  155. package/project/.sdk/tm/ts/src/utility/SpecUtility.ts +0 -68
  156. /package/project/.sdk/tm/ts/src/utility/{FeaturehookUtility.ts → FeatureHookUtility.ts} +0 -0
  157. /package/project/.sdk/tm/ts/src/utility/{ContextUtility.ts → MakeContextUtility.ts} +0 -0
@@ -0,0 +1,32 @@
1
+ package utility
2
+
3
+ import (
4
+ vs "github.com/voxgig/struct"
5
+
6
+ "GOMODULE/core"
7
+ )
8
+
9
+ func transformRequestUtil(ctx *core.Context) any {
10
+ spec := ctx.Spec
11
+ target := ctx.Target
12
+
13
+ if spec != nil {
14
+ spec.Step = "reqform"
15
+ }
16
+
17
+ transform := core.ToMapAny(vs.GetProp(target, "transform"))
18
+ if transform == nil {
19
+ return ctx.Reqdata
20
+ }
21
+
22
+ reqform := vs.GetProp(transform, "req")
23
+ if reqform == nil {
24
+ return ctx.Reqdata
25
+ }
26
+
27
+ reqdata := vs.Transform(map[string]any{
28
+ "reqdata": ctx.Reqdata,
29
+ }, reqform)
30
+
31
+ return reqdata
32
+ }
@@ -0,0 +1,45 @@
1
+ package utility
2
+
3
+ import (
4
+ vs "github.com/voxgig/struct"
5
+
6
+ "GOMODULE/core"
7
+ )
8
+
9
+ func transformResponseUtil(ctx *core.Context) any {
10
+ spec := ctx.Spec
11
+ result := ctx.Result
12
+ target := ctx.Target
13
+
14
+ if spec != nil {
15
+ spec.Step = "resform"
16
+ }
17
+
18
+ if result == nil || !result.Ok {
19
+ return nil
20
+ }
21
+
22
+ transform := core.ToMapAny(vs.GetProp(target, "transform"))
23
+ if transform == nil {
24
+ return nil
25
+ }
26
+
27
+ resform := vs.GetProp(transform, "res")
28
+ if resform == nil {
29
+ return nil
30
+ }
31
+
32
+ resdata := vs.Transform(map[string]any{
33
+ "ok": result.Ok,
34
+ "status": result.Status,
35
+ "statusText": result.StatusText,
36
+ "headers": result.Headers,
37
+ "body": result.Body,
38
+ "err": result.Err,
39
+ "resdata": result.Resdata,
40
+ "resmatch": result.Resmatch,
41
+ }, resform)
42
+
43
+ result.Resdata = resdata
44
+ return resdata
45
+ }
@@ -69,8 +69,8 @@ class LogFeature {
69
69
  }
70
70
 
71
71
 
72
- PreOperation(ctx) {
73
- this.#loghook('PreOperation', ctx)
72
+ PreTarget(ctx) {
73
+ this.#loghook('PreTarget', ctx)
74
74
  }
75
75
 
76
76
  PreSpec(ctx) {
@@ -0,0 +1,144 @@
1
+
2
+ import { inspect } from 'node:util'
3
+
4
+ import { ProjectNameSDK } from './ProjectNameSDK'
5
+ import { ProjectNameError } from './ProjectNameError'
6
+
7
+ import { Utility } from './utility/Utility'
8
+ import { getprop, setprop, getpath } from './utility/StructUtility'
9
+
10
+ import { Operation } from './Operation'
11
+ import { Response } from './Response'
12
+ import { Result } from './Result'
13
+ import { Spec } from './Spec'
14
+
15
+
16
+ // TODO: move to own file
17
+ class Context {
18
+
19
+ id = 'C' + ('' + Math.random()).substring(2, 10)
20
+
21
+ // Store the output of each operation step.
22
+ out: Record<string, any> = {}
23
+
24
+ // Store for the current operation.
25
+ current: WeakMap<String, any> = new WeakMap()
26
+
27
+
28
+ ctrl: Record<string, any> = {}
29
+ meta: Record<string, any> = {}
30
+
31
+ client: ProjectNameSDK
32
+ utility: Utility
33
+
34
+ op: Operation
35
+ target: any
36
+
37
+ config: Record<string, any>
38
+ entopts: Record<string, any>
39
+ options: Record<string, any>
40
+
41
+ opmap: Record<string, Operation>
42
+
43
+ response?: Response
44
+ result?: Result
45
+ spec?: Spec
46
+
47
+ data?: any
48
+ reqdata?: any
49
+ match?: any
50
+ reqmatch?: any
51
+
52
+ entity?: any
53
+
54
+ // Shared persistent store.
55
+ shared: WeakMap<String, any>
56
+
57
+
58
+ constructor(ctxmap: Record<string, any>, basectx?: Context) {
59
+ this.client = getprop(ctxmap, 'client', getprop(basectx, 'client'))
60
+ this.utility = getprop(ctxmap, 'utility', getprop(basectx, 'utility'))
61
+
62
+ this.ctrl = getprop(ctxmap, 'ctrl', getprop(basectx, 'ctrl', this.ctrl))
63
+ this.meta = getprop(ctxmap, 'meta', getprop(basectx, 'meta', this.meta))
64
+
65
+ this.config = getprop(ctxmap, 'config', getprop(basectx, 'config'))
66
+ this.entopts = getprop(ctxmap, 'entopts', getprop(basectx, 'entopts'))
67
+ this.options = getprop(ctxmap, 'options', getprop(basectx, 'options'))
68
+
69
+ this.entity = getprop(ctxmap, 'entity', getprop(basectx, 'entity'))
70
+ this.shared = getprop(ctxmap, 'shared', getprop(basectx, 'shared'))
71
+ this.opmap = getprop(ctxmap, 'opmap', getprop(basectx, 'opmap'))
72
+
73
+ this.data = getprop(ctxmap, 'data', {})
74
+ this.reqdata = getprop(ctxmap, 'reqdata', {})
75
+ this.match = getprop(ctxmap, 'match', {})
76
+ this.reqmatch = getprop(ctxmap, 'reqmatch', {})
77
+
78
+ this.target = getprop(ctxmap, 'target', getprop(basectx, 'target'))
79
+ this.spec = getprop(ctxmap, 'spec', getprop(basectx, 'spec'))
80
+ this.result = getprop(ctxmap, 'result', getprop(basectx, 'result'))
81
+ this.response = getprop(ctxmap, 'response', getprop(basectx, 'response'))
82
+
83
+ const opname = getprop(ctxmap, 'opname')
84
+ this.op = this.resolveOp(opname)
85
+ }
86
+
87
+
88
+ resolveOp(opname: string): Operation {
89
+ let op: Operation = getprop(this.opmap, opname)
90
+
91
+ if (null == op && null != opname) {
92
+ const entname = getprop(this.entity, 'name', '')
93
+ const opcfg = getpath(this.config, ['entity', entname, 'op', opname])
94
+ let input = 'match'
95
+
96
+ if ('update' === opname || 'create' === opname) {
97
+ input = 'data'
98
+ }
99
+
100
+ op = new Operation({
101
+ entity: entname,
102
+ name: opname,
103
+ input,
104
+ targets: getprop(opcfg, 'targets', [])
105
+ })
106
+
107
+ setprop(this.opmap, opname, op)
108
+ }
109
+
110
+ return op
111
+ }
112
+
113
+
114
+ error(code: string, msg: string) {
115
+ return new ProjectNameError(code, msg, this)
116
+ }
117
+
118
+
119
+ toJSON() {
120
+ return {
121
+ id: this.id,
122
+ op: this.op,
123
+ spec: this.spec,
124
+ entity: this.entity,
125
+ result: this.result,
126
+ response: this.response,
127
+ meta: this.meta,
128
+ }
129
+ }
130
+
131
+ toString() {
132
+ return 'Context ' + (this as any).utility?.struct.jsonify(this.toJSON())
133
+ }
134
+
135
+ [inspect.custom]() {
136
+ return this.toString()
137
+ }
138
+
139
+ }
140
+
141
+
142
+ export {
143
+ Context,
144
+ }
@@ -0,0 +1,20 @@
1
+
2
+ import { getprop } from './utility/StructUtility'
3
+
4
+
5
+ class Control {
6
+ throw?: boolean
7
+ err?: any
8
+ explain?: any
9
+
10
+ constructor(ctrlmap: Record<string, any>) {
11
+ this.throw = getprop(ctrlmap, 'throw')
12
+ this.err = getprop(ctrlmap, 'err')
13
+ this.explain = getprop(ctrlmap, 'explain')
14
+ }
15
+ }
16
+
17
+
18
+ export {
19
+ Control,
20
+ }
@@ -0,0 +1,24 @@
1
+
2
+ import { getprop } from './utility/StructUtility'
3
+
4
+ import { Target } from './Target'
5
+
6
+
7
+ class Operation {
8
+ entity: string
9
+ name: string
10
+ input: string
11
+ targets: Target[]
12
+
13
+ constructor(opmap: Record<string, any>) {
14
+ this.entity = getprop(opmap, 'entity', '_')
15
+ this.name = getprop(opmap, 'name', '_')
16
+ this.input = getprop(opmap, 'input', '_')
17
+ this.targets = getprop(opmap, 'targets', [])
18
+ }
19
+ }
20
+
21
+
22
+ export {
23
+ Operation,
24
+ }
@@ -0,0 +1,26 @@
1
+
2
+ import { getprop } from './utility/StructUtility'
3
+
4
+
5
+ class Response {
6
+ status: number
7
+ statusText: string
8
+ headers: any
9
+ json: Function
10
+ err?: Error
11
+ body?: any
12
+
13
+ constructor(resmap: Record<string, any>) {
14
+ this.status = getprop(resmap, 'status', -1)
15
+ this.statusText = getprop(resmap, 'statusText', '')
16
+ this.headers = getprop(resmap, 'headers')
17
+ this.json = resmap.json ? resmap.json.bind(resmap) : async () => undefined
18
+ this.body = getprop(resmap, 'body')
19
+ this.err = getprop(resmap, 'err')
20
+ }
21
+ }
22
+
23
+
24
+ export {
25
+ Response,
26
+ }
@@ -0,0 +1,30 @@
1
+
2
+ import { getprop } from './utility/StructUtility'
3
+
4
+
5
+ class Result {
6
+ ok: boolean
7
+ status: number
8
+ statusText: string
9
+ headers: Record<string, string>
10
+ body?: any
11
+ err?: any
12
+ resdata?: any
13
+ resmatch?: any
14
+
15
+ constructor(resmap: Record<string, any>) {
16
+ this.ok = getprop(resmap, 'ok', false)
17
+ this.status = getprop(resmap, 'status', -1)
18
+ this.statusText = getprop(resmap, 'statusText', '')
19
+ this.headers = getprop(resmap, 'headers', {})
20
+ this.body = getprop(resmap, 'body')
21
+ this.err = getprop(resmap, 'err')
22
+ this.resdata = getprop(resmap, 'resdata')
23
+ this.resmatch = getprop(resmap, 'resmatch')
24
+ }
25
+ }
26
+
27
+
28
+ export {
29
+ Result,
30
+ }
@@ -0,0 +1,40 @@
1
+
2
+ import { getprop } from './utility/StructUtility'
3
+
4
+
5
+ class Spec {
6
+ parts: string[]
7
+ headers: Record<string, string>
8
+ alias: any
9
+ base: string
10
+ prefix: string
11
+ suffix: string
12
+ params: Record<string, string>
13
+ query: Record<string, string>
14
+ step: string
15
+ method: string
16
+ body: any
17
+ url?: string
18
+ path?: string
19
+
20
+ constructor(specmap: Record<string, any>) {
21
+ this.parts = getprop(specmap, 'parts', [])
22
+ this.headers = getprop(specmap, 'headers', {})
23
+ this.alias = getprop(specmap, 'alias', {})
24
+ this.base = getprop(specmap, 'base', '')
25
+ this.prefix = getprop(specmap, 'prefix', '')
26
+ this.suffix = getprop(specmap, 'suffix', '')
27
+ this.params = getprop(specmap, 'params', {})
28
+ this.query = getprop(specmap, 'query', {})
29
+ this.step = getprop(specmap, 'step', '')
30
+ this.method = getprop(specmap, 'method', 'GET')
31
+ this.body = getprop(specmap, 'body')
32
+ this.url = getprop(specmap, 'url')
33
+ this.path = getprop(specmap, 'path')
34
+ }
35
+ }
36
+
37
+
38
+ export {
39
+ Spec,
40
+ }
@@ -0,0 +1,36 @@
1
+
2
+ import { getprop } from './utility/StructUtility'
3
+
4
+
5
+ class Target {
6
+ args: { params: any[] }
7
+ rename: { params: Record<string, string> }
8
+ method: string
9
+ orig: string
10
+ parts: string[]
11
+ params: string[]
12
+ select: any
13
+ active: boolean
14
+ relations: any[]
15
+ alias: Record<string, string>
16
+ transform: { req: any, res: any }
17
+
18
+ constructor(altmap: Record<string, any>) {
19
+ this.args = getprop(altmap, 'args', { params: [] })
20
+ this.rename = getprop(altmap, 'rename', { params: {} })
21
+ this.method = getprop(altmap, 'method', '')
22
+ this.orig = getprop(altmap, 'orig', '')
23
+ this.parts = getprop(altmap, 'parts', [])
24
+ this.params = getprop(altmap, 'params', [])
25
+ this.select = getprop(altmap, 'select')
26
+ this.active = getprop(altmap, 'active', false)
27
+ this.relations = getprop(altmap, 'relations', [])
28
+ this.alias = getprop(altmap, 'alias', {})
29
+ this.transform = getprop(altmap, 'transform', { req: undefined, res: undefined })
30
+ }
31
+ }
32
+
33
+
34
+ export {
35
+ Target,
36
+ }
@@ -23,7 +23,7 @@ class BaseFeature implements Feature {
23
23
  GetMatch(this: any, _ctx: any) { }
24
24
 
25
25
 
26
- PreOperation(this: any, _ctx: any) { }
26
+ PreTarget(this: any, _ctx: any) { }
27
27
 
28
28
  PreSpec(this: any, _ctx: any) { }
29
29
 
@@ -65,8 +65,8 @@ class LogFeature extends BaseFeature {
65
65
  }
66
66
 
67
67
 
68
- PreOperation(this: any, ctx: any) {
69
- this._loghook('PreOperation', ctx)
68
+ PreTarget(this: any, ctx: any) {
69
+ this._loghook('PreTarget', ctx)
70
70
  }
71
71
 
72
72
  PreSpec(this: any, ctx: any) {
@@ -42,7 +42,7 @@ class TestFeature extends BaseFeature {
42
42
 
43
43
  function testFetcher(ctx: any, _fullurl: string, _fetchdef: any) {
44
44
  const struct = ctx.utility.struct
45
- const findparam = ctx.utility.findparam
45
+ const param = ctx.utility.param
46
46
 
47
47
  const getprop = struct.getprop
48
48
  const clone = struct.clone
@@ -134,7 +134,7 @@ class TestFeature extends BaseFeature {
134
134
  }
135
135
  else if ('create' === op.name) {
136
136
  const args = self.buildArgs(ctx, op, ctx.reqdata)
137
- let id = findparam(ctx, 'id')
137
+ let id = param(ctx, 'id')
138
138
  if (null == id) {
139
139
  id = ((1e4 * Math.random() | 0).toString(16) +
140
140
  (1e4 * Math.random() | 0).toString(16) +
@@ -157,7 +157,7 @@ class TestFeature extends BaseFeature {
157
157
 
158
158
  buildArgs(ctx: any, op: any, args: any): any {
159
159
  const struct = ctx.utility.struct
160
- const findparam = ctx.utility.findparam
160
+ const param = ctx.utility.param
161
161
 
162
162
  const getprop = struct.getprop
163
163
  const keysof = struct.keysof
@@ -168,12 +168,12 @@ class TestFeature extends BaseFeature {
168
168
  const isempty = struct.isempty
169
169
 
170
170
  const opname = getprop(op, 'name')
171
- const alt =
171
+ const target =
172
172
  getelem(getpath(ctx.config, [
173
- 'entity', getprop(ctx.entity, 'name'), 'op', opname, 'alts']), -1)
173
+ 'entity', getprop(ctx.entity, 'name'), 'op', opname, 'targets']), -1)
174
174
 
175
175
  const reqd = transform(
176
- select(getpath(alt, ['args', 'param']), { reqd: true }),
176
+ select(getpath(target, ['args', 'params']), { reqd: true }),
177
177
  ['`$EACH`', '', '`$KEY.name`']
178
178
  )
179
179
 
@@ -182,7 +182,7 @@ class TestFeature extends BaseFeature {
182
182
 
183
183
  for (let k of keysof(args)) {
184
184
  if ('id' === k || !isempty(select(reqd, k))) {
185
- const v = findparam(ctx, k)
185
+ const v = param(ctx, k)
186
186
  const ka = getprop(op.alias, k)
187
187
 
188
188
  let qor: any = [{ [k]: v }]