@voxgig/sdkgen 0.25.0 → 0.28.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 (213) hide show
  1. package/bin/voxgig-sdkgen +6 -6
  2. package/dist/action/action.js +1 -2
  3. package/dist/action/action.js.map +1 -1
  4. package/dist/action/feature.js +4 -2
  5. package/dist/action/feature.js.map +1 -1
  6. package/dist/action/target.js +4 -2
  7. package/dist/action/target.js.map +1 -1
  8. package/dist/cmp/Entity.js +2 -1
  9. package/dist/cmp/Entity.js.map +1 -1
  10. package/dist/cmp/Feature.js +11 -9
  11. package/dist/cmp/Feature.js.map +1 -1
  12. package/dist/cmp/FeatureHook.js +2 -1
  13. package/dist/cmp/FeatureHook.js.map +1 -1
  14. package/dist/cmp/Main.js +6 -2
  15. package/dist/cmp/Main.js.map +1 -1
  16. package/dist/cmp/ReadmeEntity.js +2 -1
  17. package/dist/cmp/ReadmeEntity.js.map +1 -1
  18. package/dist/cmp/Test.d.ts +2 -0
  19. package/dist/cmp/Test.js +17 -0
  20. package/dist/cmp/Test.js.map +1 -0
  21. package/dist/sdkgen.d.ts +2 -1
  22. package/dist/sdkgen.js +17 -28
  23. package/dist/sdkgen.js.map +1 -1
  24. package/dist/tsconfig.tsbuildinfo +1 -1
  25. package/dist/types.d.ts +3 -1
  26. package/dist/types.js +4 -0
  27. package/dist/types.js.map +1 -1
  28. package/model/sdkgen.jsonic +9 -9
  29. package/package.json +8 -6
  30. package/project/.sdk/model/feature/log.jsonic +3 -3
  31. package/project/.sdk/model/feature/test.jsonic +8 -3
  32. package/project/.sdk/model/target/go.jsonic +19 -4
  33. package/project/.sdk/model/target/js.jsonic +2 -2
  34. package/project/.sdk/model/target/ts.jsonic +5 -5
  35. package/project/.sdk/src/cmp/go/Config_go.ts +119 -0
  36. package/project/.sdk/src/cmp/go/EntityOperation_go.ts +48 -0
  37. package/project/.sdk/src/cmp/go/Entity_go.ts +67 -0
  38. package/project/.sdk/src/cmp/go/MainEntity_go.ts +22 -0
  39. package/project/.sdk/src/cmp/go/Main_go.ts +209 -0
  40. package/project/.sdk/src/cmp/go/Package_go.ts +89 -0
  41. package/project/.sdk/src/cmp/go/TestDirect_go.ts +373 -0
  42. package/project/.sdk/src/cmp/go/TestEntity_go.ts +341 -0
  43. package/project/.sdk/src/cmp/go/Test_go.ts +37 -0
  44. package/project/.sdk/src/cmp/go/fragment/Entity.fragment.go +146 -0
  45. package/project/.sdk/src/cmp/go/fragment/EntityCreateOp.fragment.go +35 -0
  46. package/project/.sdk/src/cmp/go/fragment/EntityListOp.fragment.go +26 -0
  47. package/project/.sdk/src/cmp/go/fragment/EntityLoadOp.fragment.go +38 -0
  48. package/project/.sdk/src/cmp/go/fragment/EntityRemoveOp.fragment.go +38 -0
  49. package/project/.sdk/src/cmp/go/fragment/EntityUpdateOp.fragment.go +38 -0
  50. package/project/.sdk/src/cmp/go/fragment/Main.fragment.go +250 -0
  51. package/project/.sdk/src/cmp/go/fragment/SdkError.fragment.go +22 -0
  52. package/project/.sdk/src/cmp/go/tsconfig.json +15 -0
  53. package/project/.sdk/src/cmp/go/utility_go.ts +88 -0
  54. package/project/.sdk/src/cmp/js/Main_js.ts +3 -3
  55. package/project/.sdk/src/cmp/js/Quick_js.ts +1 -1
  56. package/project/.sdk/src/cmp/js/fragment/EntityCreateOp.fragment.js +6 -6
  57. package/project/.sdk/src/cmp/js/fragment/EntityListOp.fragment.js +6 -6
  58. package/project/.sdk/src/cmp/js/fragment/EntityLoadOp.fragment.js +6 -6
  59. package/project/.sdk/src/cmp/js/fragment/EntityRemoveOp.fragment.js +6 -6
  60. package/project/.sdk/src/cmp/js/fragment/EntityUpdateOp.fragment.js +6 -6
  61. package/project/.sdk/src/cmp/js/fragment/Main.fragment.js +85 -1
  62. package/project/.sdk/src/cmp/ts/Config_ts.ts +53 -6
  63. package/project/.sdk/src/cmp/ts/EntityOperation_ts.ts +3 -21
  64. package/project/.sdk/src/cmp/ts/Entity_ts.ts +3 -5
  65. package/project/.sdk/src/cmp/ts/Main_ts.ts +23 -13
  66. package/project/.sdk/src/cmp/ts/Package_ts.ts +30 -11
  67. package/project/.sdk/src/cmp/ts/SdkError_ts.ts +42 -0
  68. package/project/.sdk/src/cmp/ts/TestDirect_ts.ts +288 -0
  69. package/project/.sdk/src/cmp/ts/TestEntity_ts.ts +349 -2
  70. package/project/.sdk/src/cmp/ts/TestMain_ts.ts +0 -3
  71. package/project/.sdk/src/cmp/ts/Test_ts.ts +23 -3
  72. package/project/.sdk/src/cmp/ts/fragment/Config.fragment.ts +38 -5
  73. package/project/.sdk/src/cmp/ts/fragment/Direct.test.fragment.ts +30 -0
  74. package/project/.sdk/src/cmp/ts/fragment/Entity.fragment.ts +50 -38
  75. package/project/.sdk/src/cmp/ts/fragment/Entity.test.fragment.ts +9 -7
  76. package/project/.sdk/src/cmp/ts/fragment/EntityCreateOp.fragment.ts +47 -31
  77. package/project/.sdk/src/cmp/ts/fragment/EntityListOp.fragment.ts +49 -31
  78. package/project/.sdk/src/cmp/ts/fragment/EntityLoadOp.fragment.ts +50 -33
  79. package/project/.sdk/src/cmp/ts/fragment/EntityRemoveOp.fragment.ts +51 -32
  80. package/project/.sdk/src/cmp/ts/fragment/EntityUpdateOp.fragment.ts +51 -31
  81. package/project/.sdk/src/cmp/ts/fragment/Main.fragment.ts +166 -34
  82. package/project/.sdk/src/cmp/ts/fragment/SdkError.fragment.ts +25 -0
  83. package/project/.sdk/src/cmp/ts/tsconfig.json +15 -0
  84. package/project/.sdk/src/cmp/ts/utility_ts.ts +55 -1
  85. package/project/.sdk/tm/go/Makefile +10 -0
  86. package/project/.sdk/tm/go/core/context.go +267 -0
  87. package/project/.sdk/tm/go/core/control.go +7 -0
  88. package/project/.sdk/tm/go/core/error.go +25 -0
  89. package/project/.sdk/tm/go/core/helpers.go +33 -0
  90. package/project/.sdk/tm/go/core/operation.go +61 -0
  91. package/project/.sdk/tm/go/core/response.go +55 -0
  92. package/project/.sdk/tm/go/core/result.go +73 -0
  93. package/project/.sdk/tm/go/core/spec.go +97 -0
  94. package/project/.sdk/tm/go/core/target.go +102 -0
  95. package/project/.sdk/tm/go/core/types.go +44 -0
  96. package/project/.sdk/tm/go/core/utility_type.go +54 -0
  97. package/project/.sdk/tm/go/feature/base_feature.go +40 -0
  98. package/project/.sdk/tm/go/feature/test_feature.go +196 -0
  99. package/project/.sdk/tm/go/src/feature/README.md +1 -0
  100. package/project/.sdk/tm/go/src/feature/base/.gitkeep +0 -0
  101. package/project/.sdk/tm/go/src/feature/test/.gitkeep +0 -0
  102. package/project/.sdk/tm/go/test/custom_utility_test.go +80 -0
  103. package/project/.sdk/tm/go/test/exists_test.go +16 -0
  104. package/project/.sdk/tm/go/test/primary_utility_test.go +899 -0
  105. package/project/.sdk/tm/go/test/runner_test.go +428 -0
  106. package/project/.sdk/tm/go/test/struct_runner_test.go +1094 -0
  107. package/project/.sdk/tm/go/test/struct_utility_test.go +1423 -0
  108. package/project/.sdk/tm/go/utility/clean.go +7 -0
  109. package/project/.sdk/tm/go/utility/done.go +20 -0
  110. package/project/.sdk/tm/go/utility/feature_add.go +10 -0
  111. package/project/.sdk/tm/go/utility/feature_hook.go +30 -0
  112. package/project/.sdk/tm/go/utility/feature_init.go +30 -0
  113. package/project/.sdk/tm/go/utility/fetcher.go +102 -0
  114. package/project/.sdk/tm/go/utility/make_context.go +7 -0
  115. package/project/.sdk/tm/go/utility/make_error.go +69 -0
  116. package/project/.sdk/tm/go/utility/make_fetch_def.go +44 -0
  117. package/project/.sdk/tm/go/utility/make_options.go +130 -0
  118. package/project/.sdk/tm/go/utility/make_request.go +59 -0
  119. package/project/.sdk/tm/go/utility/make_response.go +46 -0
  120. package/project/.sdk/tm/go/utility/make_result.go +55 -0
  121. package/project/.sdk/tm/go/utility/make_spec.go +68 -0
  122. package/project/.sdk/tm/go/utility/make_target.go +95 -0
  123. package/project/.sdk/tm/go/utility/make_url.go +41 -0
  124. package/project/.sdk/tm/go/utility/param.go +66 -0
  125. package/project/.sdk/tm/go/utility/prepare_auth.go +40 -0
  126. package/project/.sdk/tm/go/utility/prepare_body.go +14 -0
  127. package/project/.sdk/tm/go/utility/prepare_headers.go +22 -0
  128. package/project/.sdk/tm/go/utility/prepare_method.go +21 -0
  129. package/project/.sdk/tm/go/utility/prepare_params.go +41 -0
  130. package/project/.sdk/tm/go/utility/prepare_path.go +21 -0
  131. package/project/.sdk/tm/go/utility/prepare_query.go +47 -0
  132. package/project/.sdk/tm/go/utility/register.go +39 -0
  133. package/project/.sdk/tm/go/utility/result_basic.go +31 -0
  134. package/project/.sdk/tm/go/utility/result_body.go +17 -0
  135. package/project/.sdk/tm/go/utility/result_headers.go +22 -0
  136. package/project/.sdk/tm/go/utility/struct/go.mod +3 -0
  137. package/project/.sdk/tm/go/utility/struct/voxgigstruct.go +4891 -0
  138. package/project/.sdk/tm/go/utility/transform_request.go +32 -0
  139. package/project/.sdk/tm/go/utility/transform_response.go +45 -0
  140. package/project/.sdk/tm/js/src/feature/log/LogFeature.js +2 -2
  141. package/project/.sdk/tm/ts/src/Context.ts +144 -0
  142. package/project/.sdk/tm/ts/src/Control.ts +20 -0
  143. package/project/.sdk/tm/ts/src/Operation.ts +24 -0
  144. package/project/.sdk/tm/ts/src/Response.ts +26 -0
  145. package/project/.sdk/tm/ts/src/Result.ts +30 -0
  146. package/project/.sdk/tm/ts/src/Spec.ts +40 -0
  147. package/project/.sdk/tm/ts/src/Target.ts +36 -0
  148. package/project/.sdk/tm/ts/src/feature/base/BaseFeature.ts +1 -1
  149. package/project/.sdk/tm/ts/src/feature/log/LogFeature.ts +2 -2
  150. package/project/.sdk/tm/ts/src/feature/test/TestFeature.ts +158 -104
  151. package/project/.sdk/tm/ts/src/types.ts +18 -78
  152. package/project/.sdk/tm/ts/src/utility/CleanUtility.ts +17 -31
  153. package/project/.sdk/tm/ts/src/utility/DoneUtility.ts +3 -4
  154. package/project/.sdk/tm/ts/src/utility/{AddfeatureUtility.ts → FeatureAddUtility.ts} +2 -2
  155. package/project/.sdk/tm/ts/src/utility/{FeaturehookUtility.ts → FeatureHookUtility.ts} +8 -5
  156. package/project/.sdk/tm/ts/src/utility/FeatureInitUtility.ts +15 -0
  157. package/project/.sdk/tm/ts/src/utility/FetcherUtility.ts +20 -2
  158. package/project/.sdk/tm/ts/src/utility/MakeContextUtility.ts +27 -0
  159. package/project/.sdk/tm/ts/src/utility/{ErrorUtility.ts → MakeErrorUtility.ts} +10 -6
  160. package/project/.sdk/tm/ts/src/utility/MakeFetchDefUtility.ts +46 -0
  161. package/project/.sdk/tm/ts/src/utility/{OptionsUtility.ts → MakeOptionsUtility.ts} +32 -7
  162. package/project/.sdk/tm/ts/src/utility/MakeRequestUtility.ts +66 -0
  163. package/project/.sdk/tm/ts/src/utility/MakeResponseUtility.ts +61 -0
  164. package/project/.sdk/tm/ts/src/utility/MakeResultUtility.ts +56 -0
  165. package/project/.sdk/tm/ts/src/utility/MakeSpecUtility.ts +61 -0
  166. package/project/.sdk/tm/ts/src/utility/MakeTargetUtility.ts +76 -0
  167. package/project/.sdk/tm/ts/src/utility/MakeUrlUtility.ts +61 -0
  168. package/project/.sdk/tm/ts/src/utility/{FindparamUtility.ts → ParamUtility.ts} +28 -8
  169. package/project/.sdk/tm/ts/src/utility/{AuthUtility.ts → PrepareAuthUtility.ts} +10 -4
  170. package/project/.sdk/tm/ts/src/utility/PrepareBodyUtility.ts +32 -0
  171. package/project/.sdk/tm/ts/src/utility/{HeadersUtility.ts → PrepareHeadersUtility.ts} +5 -7
  172. package/project/.sdk/tm/ts/src/utility/{MethodUtility.ts → PrepareMethodUtility.ts} +6 -6
  173. package/project/.sdk/tm/ts/src/utility/PrepareParamsUtility.ts +37 -0
  174. package/project/.sdk/tm/ts/src/utility/PreparePathUtility.ts +17 -0
  175. package/project/.sdk/tm/ts/src/utility/PrepareQueryUtility.ts +30 -0
  176. package/project/.sdk/tm/ts/src/utility/{ResbasicUtility.ts → ResultBasicUtility.ts} +12 -7
  177. package/project/.sdk/tm/ts/src/utility/ResultBodyUtility.ts +22 -0
  178. package/project/.sdk/tm/ts/src/utility/ResultHeadersUtility.ts +26 -0
  179. package/project/.sdk/tm/ts/src/utility/StructUtility.ts +1113 -525
  180. package/project/.sdk/tm/ts/src/utility/{ReqformUtility.ts → TransformRequestUtility.ts} +9 -7
  181. package/project/.sdk/tm/ts/src/utility/{ResformUtility.ts → TransformResponseUtility.ts} +11 -8
  182. package/project/.sdk/tm/ts/src/utility/Utility.ts +52 -65
  183. package/project/.sdk/tm/ts/test/exists.test.ts +0 -1
  184. package/project/.sdk/tm/ts/test/runner.ts +36 -13
  185. package/project/.sdk/tm/ts/test/utility/Custom.test.ts +30 -29
  186. package/project/.sdk/tm/ts/test/utility/PrimaryUtility.test.ts +385 -168
  187. package/project/.sdk/tm/ts/test/utility/StructUtility.test.ts +433 -189
  188. package/src/action/action.ts +1 -2
  189. package/src/action/feature.ts +7 -2
  190. package/src/action/target.ts +7 -7
  191. package/src/cmp/Entity.ts +7 -1
  192. package/src/cmp/Feature.ts +11 -9
  193. package/src/cmp/FeatureHook.ts +6 -1
  194. package/src/cmp/Main.ts +12 -2
  195. package/src/cmp/ReadmeEntity.ts +6 -1
  196. package/src/cmp/Test.ts +31 -0
  197. package/src/sdkgen.ts +19 -34
  198. package/src/types.ts +10 -1
  199. package/project/.sdk/src/cmp/ts/EntityTest_ts.ts +0 -180
  200. package/project/.sdk/tm/ts/src/utility/BodyUtility.ts +0 -29
  201. package/project/.sdk/tm/ts/src/utility/ContextUtility.ts +0 -67
  202. package/project/.sdk/tm/ts/src/utility/FullurlUtility.ts +0 -46
  203. package/project/.sdk/tm/ts/src/utility/InitfeatureUtility.ts +0 -13
  204. package/project/.sdk/tm/ts/src/utility/JoinurlUtility.ts +0 -15
  205. package/project/.sdk/tm/ts/src/utility/OperatorUtility.ts +0 -90
  206. package/project/.sdk/tm/ts/src/utility/ParamsUtility.ts +0 -37
  207. package/project/.sdk/tm/ts/src/utility/QueryUtility.ts +0 -27
  208. package/project/.sdk/tm/ts/src/utility/RequestUtility.ts +0 -66
  209. package/project/.sdk/tm/ts/src/utility/ResbodyUtility.ts +0 -19
  210. package/project/.sdk/tm/ts/src/utility/ResheadersUtility.ts +0 -23
  211. package/project/.sdk/tm/ts/src/utility/ResponseUtility.ts +0 -30
  212. package/project/.sdk/tm/ts/src/utility/ResultUtility.ts +0 -36
  213. package/project/.sdk/tm/ts/src/utility/SpecUtility.ts +0 -61
@@ -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) {