@things-factory/integration-base 8.0.39 → 9.0.0-9.0.0-beta.59.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 (174) hide show
  1. package/dist-server/engine/connector/headless-connector.d.ts +23 -0
  2. package/dist-server/engine/connector/headless-connector.js +357 -0
  3. package/dist-server/engine/connector/headless-connector.js.map +1 -0
  4. package/dist-server/engine/connector/http-connector.js +1 -1
  5. package/dist-server/engine/connector/http-connector.js.map +1 -1
  6. package/dist-server/engine/connector/index.d.ts +1 -0
  7. package/dist-server/engine/connector/index.js +1 -0
  8. package/dist-server/engine/connector/index.js.map +1 -1
  9. package/dist-server/engine/index.d.ts +3 -2
  10. package/dist-server/engine/index.js +3 -2
  11. package/dist-server/engine/index.js.map +1 -1
  12. package/dist-server/engine/resource-pool/headless-pool.d.ts +1 -0
  13. package/dist-server/engine/resource-pool/headless-pool.js +62 -0
  14. package/dist-server/engine/resource-pool/headless-pool.js.map +1 -0
  15. package/dist-server/engine/resource-pool/index.d.ts +1 -0
  16. package/dist-server/engine/resource-pool/index.js +5 -0
  17. package/dist-server/engine/resource-pool/index.js.map +1 -0
  18. package/dist-server/engine/task/headless-post.js +19 -33
  19. package/dist-server/engine/task/headless-post.js.map +1 -1
  20. package/dist-server/engine/task/headless-scrap.js +20 -13
  21. package/dist-server/engine/task/headless-scrap.js.map +1 -1
  22. package/dist-server/engine/task/mqtt-publish.js +29 -6
  23. package/dist-server/engine/task/mqtt-publish.js.map +1 -1
  24. package/dist-server/engine/task/mqtt-subscribe.js +178 -64
  25. package/dist-server/engine/task/mqtt-subscribe.js.map +1 -1
  26. package/dist-server/index.d.ts +6 -6
  27. package/dist-server/index.js +10 -10
  28. package/dist-server/index.js.map +1 -1
  29. package/dist-server/routes.js +6 -6
  30. package/dist-server/routes.js.map +1 -1
  31. package/dist-server/service/connection/connection-mutation.js +17 -5
  32. package/dist-server/service/connection/connection-mutation.js.map +1 -1
  33. package/dist-server/service/connection/connection-query.js +3 -0
  34. package/dist-server/service/connection/connection-query.js.map +1 -1
  35. package/dist-server/service/index.d.ts +1 -1
  36. package/dist-server/tsconfig.tsbuildinfo +1 -1
  37. package/package.json +12 -11
  38. package/translations/en.json +12 -4
  39. package/translations/ja.json +12 -4
  40. package/translations/ko.json +12 -4
  41. package/translations/ms.json +12 -4
  42. package/translations/zh.json +12 -4
  43. package/server/controllers/index.ts +0 -2
  44. package/server/controllers/publish-data.ts +0 -29
  45. package/server/controllers/scenario-controller.ts +0 -154
  46. package/server/engine/analyzer/analyze-integration.ts +0 -115
  47. package/server/engine/connection-manager.ts +0 -232
  48. package/server/engine/connector/echo-back-connector.ts +0 -51
  49. package/server/engine/connector/echo-back-server.ts +0 -72
  50. package/server/engine/connector/graphql-connector.ts +0 -126
  51. package/server/engine/connector/http-connector.ts +0 -65
  52. package/server/engine/connector/index.ts +0 -12
  53. package/server/engine/connector/mqtt-connector.ts +0 -78
  54. package/server/engine/connector/mssql-connector.ts +0 -152
  55. package/server/engine/connector/mysql-connector.ts +0 -94
  56. package/server/engine/connector/operato-connector.ts +0 -264
  57. package/server/engine/connector/oracle-connector.ts +0 -218
  58. package/server/engine/connector/postgresql-connector.ts +0 -152
  59. package/server/engine/connector/proxy-connector.ts +0 -53
  60. package/server/engine/connector/socket-server.ts +0 -86
  61. package/server/engine/connector/sqlite-connector.ts +0 -69
  62. package/server/engine/edge-client.ts +0 -45
  63. package/server/engine/index.ts +0 -10
  64. package/server/engine/pending-queue.ts +0 -97
  65. package/server/engine/scenario-engine.ts +0 -106
  66. package/server/engine/task/book-up-scenario.ts +0 -73
  67. package/server/engine/task/csv-readline.ts +0 -127
  68. package/server/engine/task/data-accessor.ts +0 -36
  69. package/server/engine/task/data-mapper.ts +0 -47
  70. package/server/engine/task/database-query.ts +0 -56
  71. package/server/engine/task/echo-receive.ts +0 -21
  72. package/server/engine/task/echo-send.ts +0 -32
  73. package/server/engine/task/empty-check.ts +0 -38
  74. package/server/engine/task/end.ts +0 -18
  75. package/server/engine/task/floating-point.ts +0 -71
  76. package/server/engine/task/goto.ts +0 -27
  77. package/server/engine/task/graphql-mutate.ts +0 -79
  78. package/server/engine/task/graphql-query.ts +0 -78
  79. package/server/engine/task/headless-post.ts +0 -147
  80. package/server/engine/task/headless-scrap.ts +0 -80
  81. package/server/engine/task/http-get.ts +0 -117
  82. package/server/engine/task/http-post.ts +0 -148
  83. package/server/engine/task/index.ts +0 -45
  84. package/server/engine/task/jsonata.ts +0 -45
  85. package/server/engine/task/local-graphql-mutate.ts +0 -100
  86. package/server/engine/task/local-graphql-query.ts +0 -100
  87. package/server/engine/task/log.ts +0 -78
  88. package/server/engine/task/mqtt-publish.ts +0 -45
  89. package/server/engine/task/mqtt-subscribe.ts +0 -139
  90. package/server/engine/task/mssql-procedure.ts +0 -128
  91. package/server/engine/task/oracle-procedure.ts +0 -124
  92. package/server/engine/task/pick-pending-scenario.ts +0 -80
  93. package/server/engine/task/publish.ts +0 -40
  94. package/server/engine/task/random.ts +0 -53
  95. package/server/engine/task/reset-pending-queue.ts +0 -17
  96. package/server/engine/task/script.ts +0 -63
  97. package/server/engine/task/set-domain.ts +0 -37
  98. package/server/engine/task/sleep.ts +0 -34
  99. package/server/engine/task/socket-listener.ts +0 -96
  100. package/server/engine/task/state-group-read.ts +0 -69
  101. package/server/engine/task/state-read.ts +0 -56
  102. package/server/engine/task/state-write.ts +0 -65
  103. package/server/engine/task/stop-scenario.ts +0 -44
  104. package/server/engine/task/sub-scenario.ts +0 -57
  105. package/server/engine/task/switch-goto.ts +0 -43
  106. package/server/engine/task/switch-range-goto.ts +0 -53
  107. package/server/engine/task/switch-range-scenario.ts +0 -79
  108. package/server/engine/task/switch-range-set.ts +0 -48
  109. package/server/engine/task/switch-scenario.ts +0 -67
  110. package/server/engine/task/switch-set.ts +0 -37
  111. package/server/engine/task/throw.ts +0 -27
  112. package/server/engine/task/utils/headless-pool-for-scenario.ts +0 -71
  113. package/server/engine/task/utils/substitute.ts +0 -44
  114. package/server/engine/task/variables.ts +0 -17
  115. package/server/engine/task-registry.ts +0 -23
  116. package/server/engine/types.ts +0 -114
  117. package/server/index.ts +0 -20
  118. package/server/migrations/index.ts +0 -9
  119. package/server/restful/index.ts +0 -1
  120. package/server/restful/unstable/index.ts +0 -7
  121. package/server/restful/unstable/run-scenario.ts +0 -51
  122. package/server/restful/unstable/scenario-instance.ts +0 -52
  123. package/server/restful/unstable/scenario-instances.ts +0 -80
  124. package/server/restful/unstable/scenario.ts +0 -41
  125. package/server/restful/unstable/scenarios.ts +0 -69
  126. package/server/restful/unstable/start-scenario.ts +0 -33
  127. package/server/restful/unstable/stop-scenario.ts +0 -30
  128. package/server/routers/scenario-schedule-callback-router.ts +0 -69
  129. package/server/routers/scenario-view-router.ts +0 -46
  130. package/server/routes.ts +0 -35
  131. package/server/service/analysis/analysis-query.ts +0 -13
  132. package/server/service/analysis/index.ts +0 -3
  133. package/server/service/connection/connection-mutation.ts +0 -190
  134. package/server/service/connection/connection-query.ts +0 -87
  135. package/server/service/connection/connection-subscription.ts +0 -104
  136. package/server/service/connection/connection-type.ts +0 -305
  137. package/server/service/connection/index.ts +0 -7
  138. package/server/service/connector/connector-query.ts +0 -62
  139. package/server/service/connector/connector-type.ts +0 -29
  140. package/server/service/connector/index.ts +0 -4
  141. package/server/service/index.ts +0 -52
  142. package/server/service/payload-log/index.ts +0 -7
  143. package/server/service/payload-log/payload-log-mutation.ts +0 -151
  144. package/server/service/payload-log/payload-log-query.ts +0 -49
  145. package/server/service/payload-log/payload-log-type.ts +0 -36
  146. package/server/service/payload-log/payload-log.ts +0 -100
  147. package/server/service/property-spec.ts +0 -24
  148. package/server/service/scenario/index.ts +0 -6
  149. package/server/service/scenario/scenario-mutation.ts +0 -396
  150. package/server/service/scenario/scenario-query.ts +0 -109
  151. package/server/service/scenario/scenario-type.ts +0 -78
  152. package/server/service/scenario/scenario.ts +0 -124
  153. package/server/service/scenario-flow/scenario-flow.ts +0 -17
  154. package/server/service/scenario-instance/index.ts +0 -6
  155. package/server/service/scenario-instance/scenario-instance-mutation.ts +0 -44
  156. package/server/service/scenario-instance/scenario-instance-query.ts +0 -42
  157. package/server/service/scenario-instance/scenario-instance-subscription.ts +0 -118
  158. package/server/service/scenario-instance/scenario-instance-type.ts +0 -557
  159. package/server/service/scenario-queue/index.ts +0 -4
  160. package/server/service/scenario-queue/scenario-queue-subscription.ts +0 -55
  161. package/server/service/scenario-queue/scenario-queue-type.ts +0 -27
  162. package/server/service/state-register/data-resolver.ts +0 -56
  163. package/server/service/state-register/index.ts +0 -8
  164. package/server/service/state-register/state-register-mutation.ts +0 -166
  165. package/server/service/state-register/state-register-query.ts +0 -80
  166. package/server/service/state-register/state-register-type.ts +0 -80
  167. package/server/service/state-register/state-register.ts +0 -113
  168. package/server/service/step/index.ts +0 -6
  169. package/server/service/step/step-mutation.ts +0 -52
  170. package/server/service/step/step-query.ts +0 -55
  171. package/server/service/step/step-type.ts +0 -238
  172. package/server/service/task-type/index.ts +0 -4
  173. package/server/service/task-type/task-type-query.ts +0 -95
  174. package/server/service/task-type/task-type-type.ts +0 -29
@@ -1,69 +0,0 @@
1
- import gql from 'graphql-tag'
2
- import { TaskRegistry } from '../task-registry'
3
- import { InputStep } from '../../service/step/step-type'
4
- import { Context } from '../types'
5
-
6
- async function StateGroupRead(step: InputStep, { logger, publish, data, domain, user, client }: Context) {
7
- var {
8
- params: { group }
9
- } = step
10
-
11
- if (!group) {
12
- throw Error(`group should be defined: group - '${group}'`)
13
- }
14
-
15
- var { data: queryResult, errors } = await client.query({
16
- query: gql`
17
- query ($filters: [Filter!]) {
18
- stateRegisters(filters: $filters) {
19
- items {
20
- name
21
- state
22
- }
23
- }
24
- }
25
- `,
26
- variables: {
27
- filters: [
28
- {
29
- name: 'group',
30
- operator: 'eq',
31
- value: group
32
- }
33
- ]
34
- },
35
- context: {
36
- state: {
37
- domain,
38
- user
39
- }
40
- }
41
- })
42
-
43
- if (errors) {
44
- errors.forEach(error => {
45
- logger.error('GraphQL Error: %s', error)
46
- })
47
- }
48
-
49
- return {
50
- data: queryResult?.stateRegisters?.items.reduce((status, item) => {
51
- const { name, state } = item
52
- status[name] = state
53
- return status
54
- }, {})
55
- }
56
- }
57
-
58
- StateGroupRead.parameterSpec = [
59
- {
60
- type: 'string',
61
- name: 'group',
62
- label: 'group'
63
- }
64
- ]
65
-
66
- StateGroupRead.connectorFree = true
67
- StateGroupRead.help = 'integration/task/state-group-read'
68
-
69
- TaskRegistry.registerTaskHandler('state-group-read', StateGroupRead)
@@ -1,56 +0,0 @@
1
- import gql from 'graphql-tag'
2
- import { TaskRegistry } from '../task-registry'
3
- import { InputStep } from '../../service/step/step-type'
4
- import { Context } from '../types'
5
-
6
- async function StateRead(step: InputStep, { logger, publish, data, domain, user, client }: Context) {
7
- var {
8
- params: { name }
9
- } = step
10
-
11
- if (!name) {
12
- throw Error(`name should be defined: name - '${name}'`)
13
- }
14
-
15
- var { data: queryResult, errors } = await client.query({
16
- query: gql`
17
- query ($name: String!) {
18
- stateRegisterByName(name: $name) {
19
- state
20
- }
21
- }
22
- `,
23
- variables: {
24
- name
25
- },
26
- context: {
27
- state: {
28
- domain,
29
- user
30
- }
31
- }
32
- })
33
-
34
- if (errors) {
35
- errors.forEach(error => {
36
- logger.error('GraphQL Error: %s', error)
37
- })
38
- }
39
-
40
- return {
41
- data: queryResult?.stateRegisterByName?.state
42
- }
43
- }
44
-
45
- StateRead.parameterSpec = [
46
- {
47
- type: 'string',
48
- name: 'name',
49
- label: 'name'
50
- }
51
- ]
52
-
53
- StateRead.connectorFree = true
54
- StateRead.help = 'integration/task/state-read'
55
-
56
- TaskRegistry.registerTaskHandler('state-read', StateRead)
@@ -1,65 +0,0 @@
1
- import gql from 'graphql-tag'
2
- import { access } from '@things-factory/utils'
3
- import { TaskRegistry } from '../task-registry'
4
- import { InputStep } from '../../service/step/step-type'
5
- import { Context } from '../types'
6
-
7
- async function StateWrite(step: InputStep, { logger, publish, data, domain, user, client }: Context) {
8
- var {
9
- params: { name, accessor }
10
- } = step
11
-
12
- if (!name || !accessor) {
13
- throw Error(`name and accessor should be defined: name - '${name}', accessor - '${accessor}'`)
14
- }
15
-
16
- var state = access(accessor, data)
17
-
18
- var { data: mutateResult, errors } = await client.mutate({
19
- mutation: gql`
20
- mutation ($state: Object!, $name: String!) {
21
- updateStateRegisterByName(state: $state, name: $name) {
22
- state
23
- }
24
- }
25
- `,
26
- variables: {
27
- name,
28
- state
29
- },
30
- context: {
31
- state: {
32
- domain,
33
- user
34
- }
35
- }
36
- })
37
-
38
- if (errors) {
39
- errors.forEach(error => {
40
- logger.error('GraphQL Error: %s', error)
41
- })
42
- }
43
-
44
- return {
45
- data: mutateResult?.updateStateRegisterByName?.state
46
- }
47
- }
48
-
49
- StateWrite.parameterSpec = [
50
- {
51
- type: 'string',
52
- name: 'name',
53
- label: 'name'
54
- },
55
- {
56
- type: 'scenario-step-input',
57
- name: 'accessor',
58
- label: 'accessor'
59
- }
60
- ]
61
-
62
- StateWrite.connectorFree = true
63
- StateWrite.help = 'integration/task/state-write'
64
-
65
- TaskRegistry.registerTaskHandler('state-write', StateWrite)
@@ -1,44 +0,0 @@
1
- import { getRepository } from '@things-factory/shell'
2
-
3
- import { Scenario } from '../../service/scenario/scenario'
4
- import { ScenarioEngine } from '../../engine'
5
- import { TaskRegistry } from '../task-registry'
6
- import { InputStep } from '../../service/step/step-type'
7
- import { Context } from '../types'
8
-
9
- async function StopScenario(step: InputStep, context: Context) {
10
- var { logger, domain } = context
11
- var {
12
- params: { scenario }
13
- } = step
14
-
15
- // find the name of the input scenario
16
- var foundScenario = await getRepository(Scenario).findOne({
17
- where: {
18
- id: scenario
19
- },
20
- relations: ['steps', 'domain']
21
- })
22
-
23
- await ScenarioEngine.unload(domain, foundScenario?.name)
24
- logger.info(`Scenario '${foundScenario?.name}' is about to be stopped.`)
25
-
26
- return {
27
- data: foundScenario?.name
28
- }
29
- }
30
-
31
- StopScenario.parameterSpec = [
32
- {
33
- type: 'entity-selector',
34
- name: 'scenario',
35
- label: 'scenario',
36
- property: {
37
- queryName: 'scenarios'
38
- }
39
- }
40
- ]
41
-
42
- StopScenario.connectorFree = true
43
-
44
- TaskRegistry.registerTaskHandler('scenario-stop', StopScenario)
@@ -1,57 +0,0 @@
1
- import { getRepository } from '@things-factory/shell'
2
- import { access, deepClone } from '@things-factory/utils'
3
-
4
- import { Scenario } from '../../service/scenario/scenario'
5
- import { TaskRegistry } from '../task-registry'
6
- import { InputStep } from '../../service/step/step-type'
7
- import { Context } from '../types'
8
-
9
- async function SubScenario(step: InputStep, context: Context) {
10
- var { logger, load, data } = context
11
- var {
12
- params: { scenario, variables }
13
- } = step
14
-
15
- var subscenario = await getRepository(Scenario).findOne({
16
- where: {
17
- id: scenario
18
- },
19
- relations: ['steps', 'domain']
20
- })
21
-
22
- logger.info(`Sub Scenario '${subscenario.name}' Started.`)
23
- var subContext = await load(step, subscenario, {
24
- ...context,
25
- data: {},
26
- /*
27
- FIXME variables 설정이 안된 경우에 subscenario의 variables는 undefined가 되는 것이 맞겠지만,
28
- 하위 호환성 유지를 위해서 부모의 variables를 사용함
29
- */
30
- variables: variables ? deepClone(access(variables, data)) : context.variables
31
- })
32
- logger.info(`Sub Scenario '${subscenario.name}' done.`)
33
-
34
- return {
35
- data: subContext.data
36
- }
37
- }
38
-
39
- SubScenario.parameterSpec = [
40
- {
41
- type: 'entity-selector',
42
- name: 'scenario',
43
- label: 'scenario',
44
- property: {
45
- queryName: 'scenarios'
46
- }
47
- },
48
- {
49
- type: 'scenario-step-input',
50
- name: 'variables',
51
- label: 'variables'
52
- }
53
- ]
54
-
55
- SubScenario.connectorFree = true
56
-
57
- TaskRegistry.registerTaskHandler('scenario', SubScenario)
@@ -1,43 +0,0 @@
1
- import { access } from '@things-factory/utils'
2
-
3
- import { TaskRegistry } from '../task-registry'
4
-
5
- import { InputStep } from '../../service/step/step-type'
6
- import { Context } from '../types'
7
-
8
- async function SwitchGoTo(step: InputStep, { logger, data }: Context) {
9
- var {
10
- params: { accessor, cases }
11
- } = step
12
-
13
- var value = access(accessor, data)
14
-
15
- var next = cases[value] || cases['default']
16
-
17
- logger.info(`switch to next '${next}' by value '${value}' .`)
18
-
19
- return {
20
- next
21
- }
22
- }
23
-
24
- SwitchGoTo.parameterSpec = [
25
- {
26
- type: 'scenario-step-input',
27
- name: 'accessor',
28
- label: 'accessor'
29
- },
30
- {
31
- type: 'map',
32
- name: 'cases',
33
- label: 'cases',
34
- property: {
35
- valuetype: 'scenario-step-input'
36
- }
37
- }
38
- ]
39
-
40
- SwitchGoTo.connectorFree = true
41
-
42
- TaskRegistry.registerTaskHandler('switch', SwitchGoTo)
43
- TaskRegistry.registerTaskHandler('switch-goto', SwitchGoTo)
@@ -1,53 +0,0 @@
1
- import { access } from '@things-factory/utils'
2
-
3
- import { TaskRegistry } from '../task-registry'
4
- import { InputStep } from '../../service/step/step-type'
5
- import { Context } from '../types'
6
-
7
- async function SwitchRangeGoTo(step: InputStep, { logger, data }: Context) {
8
- var {
9
- params: { accessor, cases }
10
- } = step
11
-
12
- var value = Number(access(accessor, data))
13
-
14
- var range =
15
- Object.keys(cases).find(key => {
16
- if (key == 'default') {
17
- return
18
- }
19
-
20
- var [from, to] = key.split('~')
21
-
22
- return Number(from) <= value && Number(to) > value
23
- }) || 'default'
24
-
25
- var next = cases[range]
26
-
27
- logger.info(`switch-range to next '${next}' by value '${value}' .`)
28
-
29
- return {
30
- next
31
- }
32
- }
33
-
34
- SwitchRangeGoTo.parameterSpec = [
35
- {
36
- type: 'scenario-step-input',
37
- name: 'accessor',
38
- label: 'accessor'
39
- },
40
- {
41
- type: 'range',
42
- name: 'cases',
43
- label: 'cases',
44
- property: {
45
- valuetype: 'scenario-step-input'
46
- }
47
- }
48
- ]
49
-
50
- SwitchRangeGoTo.connectorFree = true
51
-
52
- TaskRegistry.registerTaskHandler('switch-range', SwitchRangeGoTo)
53
- TaskRegistry.registerTaskHandler('switch-range-goto', SwitchRangeGoTo)
@@ -1,79 +0,0 @@
1
- import { getRepository } from '@things-factory/shell'
2
- import { access, deepClone } from '@things-factory/utils'
3
-
4
- import { Scenario } from '../../service/scenario/scenario'
5
- import { TaskRegistry } from '../task-registry'
6
- import { InputStep } from '../../service/step/step-type'
7
- import { Context } from '../types'
8
-
9
- async function SwitchRangeScenario(step: InputStep, context: Context) {
10
- var { logger, data, load } = context
11
- var {
12
- params: { accessor, cases, variables }
13
- } = step
14
-
15
- var value = Number(access(accessor, data))
16
-
17
- var range =
18
- Object.keys(cases).find(key => {
19
- if (key == 'default') {
20
- return
21
- }
22
-
23
- var [from, to] = key.split('~')
24
-
25
- return Number(from) <= value && Number(to) > value
26
- }) || 'default'
27
-
28
- var scenarioName = cases[range]
29
-
30
- logger.info(`switch-range to scenario '${scenarioName}' by value '${value}' .`)
31
-
32
- var subscenario = await getRepository(Scenario).findOne({
33
- where: {
34
- name: scenarioName
35
- },
36
- relations: ['steps', 'domain']
37
- })
38
-
39
- logger.info(`Sub Scenario '${subscenario.name}' started.`)
40
- var subContext = await load(step, subscenario, {
41
- ...context,
42
- data: {},
43
- /*
44
- FIXME variables 설정이 안된 경우에 subscenario의 variables는 undefined가 되는 것이 맞겠지만,
45
- 하위 호환성 유지를 위해서 부모의 variables를 사용함
46
- */
47
- variables: variables ? deepClone(access(variables, data)) : context.variables
48
- })
49
- logger.info(`Sub Scenario '${subscenario.name}' done.`)
50
-
51
- return {
52
- data: subContext.data
53
- }
54
- }
55
-
56
- SwitchRangeScenario.parameterSpec = [
57
- {
58
- type: 'scenario-step-input',
59
- name: 'accessor',
60
- label: 'accessor'
61
- },
62
- {
63
- type: 'range',
64
- name: 'cases',
65
- label: 'cases',
66
- property: {
67
- valuetype: 'scenario-input'
68
- }
69
- },
70
- {
71
- type: 'scenario-step-input',
72
- name: 'variables',
73
- label: 'variables'
74
- }
75
- ]
76
-
77
- SwitchRangeScenario.connectorFree = true
78
-
79
- TaskRegistry.registerTaskHandler('switch-range-scenario', SwitchRangeScenario)
@@ -1,48 +0,0 @@
1
- import { access } from '@things-factory/utils'
2
- import { TaskRegistry } from '../task-registry'
3
- import { InputStep } from '../../service/step/step-type'
4
- import { Context } from '../types'
5
-
6
- async function SwitchRangeSet(step: InputStep, { logger, data }: Context) {
7
- var {
8
- params: { accessor, cases }
9
- } = step
10
-
11
- var value = Number(access(accessor, data))
12
-
13
- var range =
14
- Object.keys(cases).find(key => {
15
- if (key == 'default') {
16
- return
17
- }
18
-
19
- var [from, to] = key.split('~')
20
-
21
- return Number(from) <= value && Number(to) > value
22
- }) || 'default'
23
-
24
- var data = cases[range]
25
-
26
- logger.info(`switch-range to data '${data}' by value '${value}' .`)
27
-
28
- return {
29
- data
30
- }
31
- }
32
-
33
- SwitchRangeSet.parameterSpec = [
34
- {
35
- type: 'scenario-step-input',
36
- name: 'accessor',
37
- label: 'accessor'
38
- },
39
- {
40
- type: 'range',
41
- name: 'cases',
42
- label: 'cases'
43
- }
44
- ]
45
-
46
- SwitchRangeSet.connectorFree = true
47
-
48
- TaskRegistry.registerTaskHandler('switch-range-set', SwitchRangeSet)
@@ -1,67 +0,0 @@
1
- import { getRepository } from '@things-factory/shell'
2
- import { access, deepClone } from '@things-factory/utils'
3
-
4
- import { Scenario } from '../../service/scenario/scenario'
5
- import { TaskRegistry } from '../task-registry'
6
- import { InputStep } from '../../service/step/step-type'
7
- import { Context } from '../types'
8
-
9
- async function SwitchScenario(step: InputStep, context: Context) {
10
- var { logger, data, load } = context
11
- var {
12
- params: { accessor, cases, variables }
13
- } = step
14
-
15
- var value = access(accessor, data)
16
-
17
- var scenarioName = cases[value] || cases['default']
18
- logger.info(`switch to scenario '${scenarioName}' by value '${value}' .`)
19
-
20
- var subscenario = await getRepository(Scenario).findOne({
21
- where: {
22
- name: scenarioName
23
- },
24
- relations: ['steps', 'domain']
25
- })
26
-
27
- logger.info(`Sub Scenario '${subscenario.name}' started.`)
28
- var subContext = await load(step, subscenario, {
29
- ...context,
30
- data: {},
31
- /*
32
- FIXME variables 설정이 안된 경우에 subscenario의 variables는 undefined가 되는 것이 맞겠지만,
33
- 하위 호환성 유지를 위해서 부모의 variables를 사용함
34
- */
35
- variables: variables ? deepClone(access(variables, data)) : context.variables
36
- })
37
- logger.info(`Sub Scenario '${subscenario.name}' done.`)
38
-
39
- return {
40
- data: subContext.data
41
- }
42
- }
43
-
44
- SwitchScenario.parameterSpec = [
45
- {
46
- type: 'scenario-step-input',
47
- name: 'accessor',
48
- label: 'accessor'
49
- },
50
- {
51
- type: 'map',
52
- name: 'cases',
53
- label: 'cases',
54
- property: {
55
- valuetype: 'scenario-input'
56
- }
57
- },
58
- {
59
- type: 'scenario-step-input',
60
- name: 'variables',
61
- label: 'variables'
62
- }
63
- ]
64
-
65
- SwitchScenario.connectorFree = true
66
-
67
- TaskRegistry.registerTaskHandler('switch-scenario', SwitchScenario)
@@ -1,37 +0,0 @@
1
- import { access } from '@things-factory/utils'
2
- import { TaskRegistry } from '../task-registry'
3
- import { InputStep } from '../../service/step/step-type'
4
- import { Context } from '../types'
5
-
6
- async function SwitchSet(step: InputStep, { logger, data }: Context) {
7
- var {
8
- params: { accessor, cases }
9
- } = step
10
-
11
- var value = access(accessor, data)
12
-
13
- var data = cases[value] || cases['default']
14
-
15
- logger.info(`switch to data '${data}' by value '${value}' .`)
16
-
17
- return {
18
- data
19
- }
20
- }
21
-
22
- SwitchSet.parameterSpec = [
23
- {
24
- type: 'scenario-step-input',
25
- name: 'accessor',
26
- label: 'accessor'
27
- },
28
- {
29
- type: 'map',
30
- name: 'cases',
31
- label: 'cases'
32
- }
33
- ]
34
-
35
- SwitchSet.connectorFree = true
36
-
37
- TaskRegistry.registerTaskHandler('switch-set', SwitchSet)
@@ -1,27 +0,0 @@
1
- import { TaskRegistry } from '../task-registry'
2
- import { InputStep } from '../../service/step/step-type'
3
- import { Context } from '../types'
4
-
5
- async function Throw(step: InputStep, { logger }: Context) {
6
- var {
7
- name,
8
- params: { message }
9
- } = step
10
-
11
- throw `'${message}' is thrown by step '${name}'`
12
-
13
- return {}
14
- }
15
-
16
- Throw.parameterSpec = [
17
- {
18
- type: 'string',
19
- name: 'message',
20
- label: 'message'
21
- }
22
- ]
23
-
24
- Throw.connectorFree = true
25
- Throw.help = 'integration/task/throw'
26
-
27
- TaskRegistry.registerTaskHandler('throw', Throw)