@labdigital/commercetools-mock 1.5.0 → 1.6.1

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 (129) hide show
  1. package/README.md +5 -4
  2. package/dist/index.cjs +117 -17
  3. package/dist/index.cjs.map +1 -1
  4. package/dist/index.d.cts +30 -7
  5. package/dist/index.d.ts +30 -7
  6. package/dist/index.js +117 -17
  7. package/dist/index.js.map +1 -1
  8. package/package.json +4 -3
  9. package/src/constants.ts +2 -2
  10. package/src/ctMock.ts +176 -176
  11. package/src/exceptions.ts +10 -10
  12. package/src/helpers.ts +26 -26
  13. package/src/index.test.ts +173 -173
  14. package/src/index.ts +3 -3
  15. package/src/lib/expandParser.ts +19 -19
  16. package/src/lib/haversine.test.ts +13 -13
  17. package/src/lib/haversine.ts +14 -14
  18. package/src/lib/masking.ts +15 -15
  19. package/src/lib/parser.ts +2 -2
  20. package/src/lib/predicateParser.test.ts +204 -204
  21. package/src/lib/predicateParser.ts +398 -398
  22. package/src/lib/projectionSearchFilter.test.ts +168 -168
  23. package/src/lib/projectionSearchFilter.ts +272 -269
  24. package/src/lib/proxy.ts +8 -8
  25. package/src/oauth/errors.ts +4 -4
  26. package/src/oauth/helpers.ts +6 -6
  27. package/src/oauth/server.ts +103 -101
  28. package/src/oauth/store.ts +27 -27
  29. package/src/priceSelector.test.ts +68 -68
  30. package/src/priceSelector.ts +70 -70
  31. package/src/product-projection-search.ts +296 -296
  32. package/src/projectAPI.test.ts +3 -3
  33. package/src/projectAPI.ts +46 -46
  34. package/src/repositories/abstract.ts +190 -190
  35. package/src/repositories/associate-role.ts +10 -7
  36. package/src/repositories/attribute-group.ts +63 -8
  37. package/src/repositories/business-unit.ts +10 -7
  38. package/src/repositories/cart-discount.ts +134 -134
  39. package/src/repositories/cart.ts +517 -514
  40. package/src/repositories/category.ts +170 -167
  41. package/src/repositories/channel.ts +114 -111
  42. package/src/repositories/custom-object.ts +66 -63
  43. package/src/repositories/customer-group.ts +72 -69
  44. package/src/repositories/customer.ts +90 -90
  45. package/src/repositories/discount-code.ts +171 -168
  46. package/src/repositories/errors.ts +15 -15
  47. package/src/repositories/extension.ts +79 -76
  48. package/src/repositories/helpers.ts +180 -180
  49. package/src/repositories/index.ts +39 -39
  50. package/src/repositories/inventory-entry.ts +98 -95
  51. package/src/repositories/my-order.ts +11 -11
  52. package/src/repositories/order-edit.ts +29 -29
  53. package/src/repositories/order.test.ts +191 -191
  54. package/src/repositories/order.ts +393 -393
  55. package/src/repositories/payment.ts +155 -155
  56. package/src/repositories/product-discount.ts +149 -149
  57. package/src/repositories/product-projection.ts +135 -50
  58. package/src/repositories/product-selection.ts +31 -31
  59. package/src/repositories/product-type.ts +156 -156
  60. package/src/repositories/product.ts +600 -597
  61. package/src/repositories/project.ts +136 -135
  62. package/src/repositories/quote-request.ts +19 -19
  63. package/src/repositories/quote.ts +19 -19
  64. package/src/repositories/review.ts +24 -24
  65. package/src/repositories/shipping-method.ts +217 -217
  66. package/src/repositories/shopping-list.ts +49 -49
  67. package/src/repositories/staged-quote.ts +20 -20
  68. package/src/repositories/standalone-price.ts +72 -61
  69. package/src/repositories/state.ts +84 -84
  70. package/src/repositories/store.ts +114 -114
  71. package/src/repositories/subscription.ts +40 -40
  72. package/src/repositories/tax-category.ts +98 -98
  73. package/src/repositories/type.ts +157 -157
  74. package/src/repositories/zone.ts +71 -71
  75. package/src/server.ts +2 -2
  76. package/src/services/abstract.ts +173 -173
  77. package/src/services/attribute-group.ts +16 -0
  78. package/src/services/cart-discount.ts +8 -8
  79. package/src/services/cart.test.ts +409 -409
  80. package/src/services/cart.ts +50 -50
  81. package/src/services/category.test.ts +25 -25
  82. package/src/services/category.ts +8 -8
  83. package/src/services/channel.ts +8 -8
  84. package/src/services/custom-object.test.ts +184 -184
  85. package/src/services/custom-object.ts +48 -48
  86. package/src/services/customer-group.ts +8 -8
  87. package/src/services/customer.test.ts +151 -151
  88. package/src/services/customer.ts +27 -27
  89. package/src/services/discount-code.ts +8 -8
  90. package/src/services/extension.ts +8 -8
  91. package/src/services/index.ts +52 -44
  92. package/src/services/inventory-entry.test.ts +162 -162
  93. package/src/services/inventory-entry.ts +8 -8
  94. package/src/services/my-cart.test.ts +78 -78
  95. package/src/services/my-cart.ts +28 -28
  96. package/src/services/my-customer.test.ts +44 -44
  97. package/src/services/my-customer.ts +53 -53
  98. package/src/services/my-order.ts +20 -20
  99. package/src/services/my-payment.test.ts +65 -65
  100. package/src/services/my-payment.ts +8 -8
  101. package/src/services/order.test.ts +527 -527
  102. package/src/services/order.ts +31 -31
  103. package/src/services/payment.test.ts +65 -65
  104. package/src/services/payment.ts +8 -8
  105. package/src/services/product-discount.ts +8 -8
  106. package/src/services/product-projection.test.ts +502 -428
  107. package/src/services/product-projection.ts +32 -18
  108. package/src/services/product-type.test.ts +56 -56
  109. package/src/services/product-type.ts +8 -8
  110. package/src/services/product.test.ts +510 -510
  111. package/src/services/product.ts +8 -8
  112. package/src/services/project.ts +34 -34
  113. package/src/services/shipping-method.test.ts +81 -81
  114. package/src/services/shipping-method.ts +12 -12
  115. package/src/services/shopping-list.ts +8 -8
  116. package/src/services/standalone-price.test.ts +256 -256
  117. package/src/services/standalone-price.ts +8 -8
  118. package/src/services/state.test.ts +42 -42
  119. package/src/services/state.ts +8 -8
  120. package/src/services/store.test.ts +57 -57
  121. package/src/services/store.ts +8 -8
  122. package/src/services/subscription.ts +8 -8
  123. package/src/services/tax-category.test.ts +61 -61
  124. package/src/services/tax-category.ts +8 -8
  125. package/src/services/type.ts +8 -8
  126. package/src/services/zone.ts +8 -8
  127. package/src/storage/abstract.ts +58 -58
  128. package/src/storage/in-memory.ts +419 -419
  129. package/src/types.ts +82 -82
@@ -1,178 +1,181 @@
1
1
  import type {
2
- CartDiscountReference,
3
- DiscountCode,
4
- DiscountCodeChangeCartDiscountsAction,
5
- DiscountCodeChangeIsActiveAction,
6
- DiscountCodeDraft,
7
- DiscountCodeSetCartPredicateAction,
8
- DiscountCodeSetCustomFieldAction,
9
- DiscountCodeSetCustomTypeAction,
10
- DiscountCodeSetDescriptionAction,
11
- DiscountCodeSetMaxApplicationsAction,
12
- DiscountCodeSetMaxApplicationsPerCustomerAction,
13
- DiscountCodeSetNameAction,
14
- DiscountCodeSetValidFromAction,
15
- DiscountCodeSetValidFromAndUntilAction,
16
- DiscountCodeSetValidUntilAction,
17
- DiscountCodeUpdateAction,
2
+ CartDiscountReference,
3
+ DiscountCode,
4
+ DiscountCodeChangeCartDiscountsAction,
5
+ DiscountCodeChangeIsActiveAction,
6
+ DiscountCodeDraft,
7
+ DiscountCodeSetCartPredicateAction,
8
+ DiscountCodeSetCustomFieldAction,
9
+ DiscountCodeSetCustomTypeAction,
10
+ DiscountCodeSetDescriptionAction,
11
+ DiscountCodeSetMaxApplicationsAction,
12
+ DiscountCodeSetMaxApplicationsPerCustomerAction,
13
+ DiscountCodeSetNameAction,
14
+ DiscountCodeSetValidFromAction,
15
+ DiscountCodeSetValidFromAndUntilAction,
16
+ DiscountCodeSetValidUntilAction,
17
+ DiscountCodeUpdateAction,
18
18
  } from '@commercetools/platform-sdk'
19
19
  import { getBaseResourceProperties } from '../helpers.js'
20
20
  import type { Writable } from '../types.js'
21
- import { AbstractResourceRepository, type RepositoryContext } from './abstract.js'
21
+ import {
22
+ AbstractResourceRepository,
23
+ type RepositoryContext,
24
+ } from './abstract.js'
22
25
  import { createCustomFields } from './helpers.js'
23
26
 
24
27
  export class DiscountCodeRepository extends AbstractResourceRepository<'discount-code'> {
25
- getTypeId() {
26
- return 'discount-code' as const
27
- }
28
+ getTypeId() {
29
+ return 'discount-code' as const
30
+ }
28
31
 
29
- create(context: RepositoryContext, draft: DiscountCodeDraft): DiscountCode {
30
- const resource: DiscountCode = {
31
- ...getBaseResourceProperties(),
32
- applicationVersion: 1,
33
- cartDiscounts: draft.cartDiscounts.map(
34
- (obj): CartDiscountReference => ({
35
- typeId: 'cart-discount',
36
- id: obj.id!,
37
- })
38
- ),
39
- cartPredicate: draft.cartPredicate,
40
- code: draft.code,
41
- description: draft.description,
42
- groups: draft.groups || [],
43
- isActive: draft.isActive || true,
44
- name: draft.name,
45
- references: [],
46
- validFrom: draft.validFrom,
47
- validUntil: draft.validUntil,
48
- maxApplications: draft.maxApplications,
49
- maxApplicationsPerCustomer: draft.maxApplicationsPerCustomer,
50
- custom: createCustomFields(
51
- draft.custom,
52
- context.projectKey,
53
- this._storage
54
- ),
55
- }
56
- this.saveNew(context, resource)
57
- return resource
58
- }
32
+ create(context: RepositoryContext, draft: DiscountCodeDraft): DiscountCode {
33
+ const resource: DiscountCode = {
34
+ ...getBaseResourceProperties(),
35
+ applicationVersion: 1,
36
+ cartDiscounts: draft.cartDiscounts.map(
37
+ (obj): CartDiscountReference => ({
38
+ typeId: 'cart-discount',
39
+ id: obj.id!,
40
+ })
41
+ ),
42
+ cartPredicate: draft.cartPredicate,
43
+ code: draft.code,
44
+ description: draft.description,
45
+ groups: draft.groups || [],
46
+ isActive: draft.isActive || true,
47
+ name: draft.name,
48
+ references: [],
49
+ validFrom: draft.validFrom,
50
+ validUntil: draft.validUntil,
51
+ maxApplications: draft.maxApplications,
52
+ maxApplicationsPerCustomer: draft.maxApplicationsPerCustomer,
53
+ custom: createCustomFields(
54
+ draft.custom,
55
+ context.projectKey,
56
+ this._storage
57
+ ),
58
+ }
59
+ this.saveNew(context, resource)
60
+ return resource
61
+ }
59
62
 
60
- actions: Partial<
61
- Record<
62
- DiscountCodeUpdateAction['action'],
63
- (
64
- context: RepositoryContext,
65
- resource: Writable<DiscountCode>,
66
- action: any
67
- ) => void
68
- >
69
- > = {
70
- changeIsActive: (
71
- context: RepositoryContext,
72
- resource: Writable<DiscountCode>,
73
- { isActive }: DiscountCodeChangeIsActiveAction
74
- ) => {
75
- resource.isActive = isActive
76
- },
77
- changeCartDiscounts: (
78
- context: RepositoryContext,
79
- resource: Writable<DiscountCode>,
80
- { cartDiscounts }: DiscountCodeChangeCartDiscountsAction
81
- ) => {
82
- resource.cartDiscounts = cartDiscounts.map(
83
- (obj): CartDiscountReference => ({
84
- typeId: 'cart-discount',
85
- id: obj.id!,
86
- })
87
- )
88
- },
89
- setDescription: (
90
- context: RepositoryContext,
91
- resource: Writable<DiscountCode>,
92
- { description }: DiscountCodeSetDescriptionAction
93
- ) => {
94
- resource.description = description
95
- },
96
- setCartPredicate: (
97
- context: RepositoryContext,
98
- resource: Writable<DiscountCode>,
99
- { cartPredicate }: DiscountCodeSetCartPredicateAction
100
- ) => {
101
- resource.cartPredicate = cartPredicate
102
- },
103
- setName: (
104
- context: RepositoryContext,
105
- resource: Writable<DiscountCode>,
106
- { name }: DiscountCodeSetNameAction
107
- ) => {
108
- resource.name = name
109
- },
110
- setMaxApplications: (
111
- context: RepositoryContext,
112
- resource: Writable<DiscountCode>,
113
- { maxApplications }: DiscountCodeSetMaxApplicationsAction
114
- ) => {
115
- resource.maxApplications = maxApplications
116
- },
117
- setMaxApplicationsPerCustomer: (
118
- context: RepositoryContext,
119
- resource: Writable<DiscountCode>,
120
- {
121
- maxApplicationsPerCustomer,
122
- }: DiscountCodeSetMaxApplicationsPerCustomerAction
123
- ) => {
124
- resource.maxApplicationsPerCustomer = maxApplicationsPerCustomer
125
- },
126
- setValidFrom: (
127
- context: RepositoryContext,
128
- resource: Writable<DiscountCode>,
129
- { validFrom }: DiscountCodeSetValidFromAction
130
- ) => {
131
- resource.validFrom = validFrom
132
- },
133
- setValidUntil: (
134
- context: RepositoryContext,
135
- resource: Writable<DiscountCode>,
136
- { validUntil }: DiscountCodeSetValidUntilAction
137
- ) => {
138
- resource.validUntil = validUntil
139
- },
140
- setValidFromAndUntil: (
141
- context: RepositoryContext,
142
- resource: Writable<DiscountCode>,
143
- { validFrom, validUntil }: DiscountCodeSetValidFromAndUntilAction
144
- ) => {
145
- resource.validFrom = validFrom
146
- resource.validUntil = validUntil
147
- },
148
- setCustomType: (
149
- context: RepositoryContext,
150
- resource: Writable<DiscountCode>,
151
- { type, fields }: DiscountCodeSetCustomTypeAction
152
- ) => {
153
- if (type) {
154
- resource.custom = createCustomFields(
155
- { type, fields },
156
- context.projectKey,
157
- this._storage
158
- )
159
- } else {
160
- resource.custom = undefined
161
- }
162
- },
163
- setCustomField: (
164
- context: RepositoryContext,
165
- resource: Writable<DiscountCode>,
166
- { name, value }: DiscountCodeSetCustomFieldAction
167
- ) => {
168
- if (!resource.custom) {
169
- return
170
- }
171
- if (value === null) {
172
- delete resource.custom.fields[name]
173
- } else {
174
- resource.custom.fields[name] = value
175
- }
176
- },
177
- }
63
+ actions: Partial<
64
+ Record<
65
+ DiscountCodeUpdateAction['action'],
66
+ (
67
+ context: RepositoryContext,
68
+ resource: Writable<DiscountCode>,
69
+ action: any
70
+ ) => void
71
+ >
72
+ > = {
73
+ changeIsActive: (
74
+ context: RepositoryContext,
75
+ resource: Writable<DiscountCode>,
76
+ { isActive }: DiscountCodeChangeIsActiveAction
77
+ ) => {
78
+ resource.isActive = isActive
79
+ },
80
+ changeCartDiscounts: (
81
+ context: RepositoryContext,
82
+ resource: Writable<DiscountCode>,
83
+ { cartDiscounts }: DiscountCodeChangeCartDiscountsAction
84
+ ) => {
85
+ resource.cartDiscounts = cartDiscounts.map(
86
+ (obj): CartDiscountReference => ({
87
+ typeId: 'cart-discount',
88
+ id: obj.id!,
89
+ })
90
+ )
91
+ },
92
+ setDescription: (
93
+ context: RepositoryContext,
94
+ resource: Writable<DiscountCode>,
95
+ { description }: DiscountCodeSetDescriptionAction
96
+ ) => {
97
+ resource.description = description
98
+ },
99
+ setCartPredicate: (
100
+ context: RepositoryContext,
101
+ resource: Writable<DiscountCode>,
102
+ { cartPredicate }: DiscountCodeSetCartPredicateAction
103
+ ) => {
104
+ resource.cartPredicate = cartPredicate
105
+ },
106
+ setName: (
107
+ context: RepositoryContext,
108
+ resource: Writable<DiscountCode>,
109
+ { name }: DiscountCodeSetNameAction
110
+ ) => {
111
+ resource.name = name
112
+ },
113
+ setMaxApplications: (
114
+ context: RepositoryContext,
115
+ resource: Writable<DiscountCode>,
116
+ { maxApplications }: DiscountCodeSetMaxApplicationsAction
117
+ ) => {
118
+ resource.maxApplications = maxApplications
119
+ },
120
+ setMaxApplicationsPerCustomer: (
121
+ context: RepositoryContext,
122
+ resource: Writable<DiscountCode>,
123
+ {
124
+ maxApplicationsPerCustomer,
125
+ }: DiscountCodeSetMaxApplicationsPerCustomerAction
126
+ ) => {
127
+ resource.maxApplicationsPerCustomer = maxApplicationsPerCustomer
128
+ },
129
+ setValidFrom: (
130
+ context: RepositoryContext,
131
+ resource: Writable<DiscountCode>,
132
+ { validFrom }: DiscountCodeSetValidFromAction
133
+ ) => {
134
+ resource.validFrom = validFrom
135
+ },
136
+ setValidUntil: (
137
+ context: RepositoryContext,
138
+ resource: Writable<DiscountCode>,
139
+ { validUntil }: DiscountCodeSetValidUntilAction
140
+ ) => {
141
+ resource.validUntil = validUntil
142
+ },
143
+ setValidFromAndUntil: (
144
+ context: RepositoryContext,
145
+ resource: Writable<DiscountCode>,
146
+ { validFrom, validUntil }: DiscountCodeSetValidFromAndUntilAction
147
+ ) => {
148
+ resource.validFrom = validFrom
149
+ resource.validUntil = validUntil
150
+ },
151
+ setCustomType: (
152
+ context: RepositoryContext,
153
+ resource: Writable<DiscountCode>,
154
+ { type, fields }: DiscountCodeSetCustomTypeAction
155
+ ) => {
156
+ if (type) {
157
+ resource.custom = createCustomFields(
158
+ { type, fields },
159
+ context.projectKey,
160
+ this._storage
161
+ )
162
+ } else {
163
+ resource.custom = undefined
164
+ }
165
+ },
166
+ setCustomField: (
167
+ context: RepositoryContext,
168
+ resource: Writable<DiscountCode>,
169
+ { name, value }: DiscountCodeSetCustomFieldAction
170
+ ) => {
171
+ if (!resource.custom) {
172
+ return
173
+ }
174
+ if (value === null) {
175
+ delete resource.custom.fields[name]
176
+ } else {
177
+ resource.custom.fields[name] = value
178
+ }
179
+ },
180
+ }
178
181
  }
@@ -2,21 +2,21 @@ import { type ConcurrentModificationError } from '@commercetools/platform-sdk'
2
2
  import { CommercetoolsError } from '../exceptions.js'
3
3
 
4
4
  export const checkConcurrentModification = (
5
- currentVersion: number,
6
- expectedVersion: number,
7
- identifier: string
5
+ currentVersion: number,
6
+ expectedVersion: number,
7
+ identifier: string
8
8
  ) => {
9
- if (currentVersion === expectedVersion) return
10
- console.error(
11
- `Object ${identifier} has a different version than expected. Expected: ${expectedVersion} - Actual: ${currentVersion}.`
12
- )
9
+ if (currentVersion === expectedVersion) return
10
+ console.error(
11
+ `Object ${identifier} has a different version than expected. Expected: ${expectedVersion} - Actual: ${currentVersion}.`
12
+ )
13
13
 
14
- throw new CommercetoolsError<ConcurrentModificationError>(
15
- {
16
- message: `Object ${identifier} has a different version than expected. Expected: ${expectedVersion} - Actual: ${currentVersion}.`,
17
- currentVersion: currentVersion,
18
- code: 'ConcurrentModification',
19
- },
20
- 409
21
- )
14
+ throw new CommercetoolsError<ConcurrentModificationError>(
15
+ {
16
+ message: `Object ${identifier} has a different version than expected. Expected: ${expectedVersion} - Actual: ${currentVersion}.`,
17
+ currentVersion: currentVersion,
18
+ code: 'ConcurrentModification',
19
+ },
20
+ 409
21
+ )
22
22
  }
@@ -1,87 +1,90 @@
1
1
  import type {
2
- Extension,
3
- ExtensionChangeDestinationAction,
4
- ExtensionChangeTriggersAction,
5
- ExtensionDraft,
6
- ExtensionSetKeyAction,
7
- ExtensionSetTimeoutInMsAction,
8
- ExtensionUpdateAction,
2
+ Extension,
3
+ ExtensionChangeDestinationAction,
4
+ ExtensionChangeTriggersAction,
5
+ ExtensionDraft,
6
+ ExtensionSetKeyAction,
7
+ ExtensionSetTimeoutInMsAction,
8
+ ExtensionUpdateAction,
9
9
  } from '@commercetools/platform-sdk'
10
10
  import { getBaseResourceProperties } from '../helpers.js'
11
11
  import { maskSecretValue } from '../lib/masking.js'
12
12
  import type { Writable } from '../types.js'
13
- import { AbstractResourceRepository, type RepositoryContext } from './abstract.js'
13
+ import {
14
+ AbstractResourceRepository,
15
+ type RepositoryContext,
16
+ } from './abstract.js'
14
17
 
15
18
  export class ExtensionRepository extends AbstractResourceRepository<'extension'> {
16
- getTypeId() {
17
- return 'extension' as const
18
- }
19
+ getTypeId() {
20
+ return 'extension' as const
21
+ }
19
22
 
20
- postProcessResource(resource: Extension): Extension {
21
- if (resource) {
22
- const extension = resource as Extension
23
- if (
24
- extension.destination.type === 'HTTP' &&
25
- extension.destination.authentication?.type === 'AuthorizationHeader'
26
- ) {
27
- return maskSecretValue(
28
- extension,
29
- 'destination.authentication.headerValue'
30
- )
31
- } else if (extension.destination.type == 'AWSLambda') {
32
- return maskSecretValue(resource, 'destination.accessSecret')
33
- }
34
- }
35
- return resource
36
- }
23
+ postProcessResource(resource: Extension): Extension {
24
+ if (resource) {
25
+ const extension = resource as Extension
26
+ if (
27
+ extension.destination.type === 'HTTP' &&
28
+ extension.destination.authentication?.type === 'AuthorizationHeader'
29
+ ) {
30
+ return maskSecretValue(
31
+ extension,
32
+ 'destination.authentication.headerValue'
33
+ )
34
+ } else if (extension.destination.type == 'AWSLambda') {
35
+ return maskSecretValue(resource, 'destination.accessSecret')
36
+ }
37
+ }
38
+ return resource
39
+ }
37
40
 
38
- create(context: RepositoryContext, draft: ExtensionDraft): Extension {
39
- const resource: Extension = {
40
- ...getBaseResourceProperties(),
41
- key: draft.key,
42
- timeoutInMs: draft.timeoutInMs,
43
- destination: draft.destination,
44
- triggers: draft.triggers,
45
- }
46
- this.saveNew(context, resource)
47
- return resource
48
- }
41
+ create(context: RepositoryContext, draft: ExtensionDraft): Extension {
42
+ const resource: Extension = {
43
+ ...getBaseResourceProperties(),
44
+ key: draft.key,
45
+ timeoutInMs: draft.timeoutInMs,
46
+ destination: draft.destination,
47
+ triggers: draft.triggers,
48
+ }
49
+ this.saveNew(context, resource)
50
+ return resource
51
+ }
49
52
 
50
- actions: Record<
51
- ExtensionUpdateAction['action'],
52
- (
53
- context: RepositoryContext,
54
- resource: Writable<Extension>,
55
- action: any
56
- ) => void
57
- > = {
58
- setKey: (
59
- context: RepositoryContext,
60
- resource: Writable<Extension>,
61
- { key }: ExtensionSetKeyAction
62
- ) => {
63
- resource.key = key
64
- },
65
- setTimeoutInMs: (
66
- context: RepositoryContext,
67
- resource: Writable<Extension>,
68
- { timeoutInMs }: ExtensionSetTimeoutInMsAction
69
- ) => {
70
- resource.timeoutInMs = timeoutInMs
71
- },
72
- changeTriggers: (
73
- context: RepositoryContext,
74
- resource: Writable<Extension>,
75
- { triggers }: ExtensionChangeTriggersAction
76
- ) => {
77
- resource.triggers = triggers
78
- },
79
- changeDestination: (
80
- context: RepositoryContext,
81
- resource: Writable<Extension>,
82
- { destination }: ExtensionChangeDestinationAction
83
- ) => {
84
- resource.destination = destination
85
- },
86
- }
53
+ actions: Record<
54
+ ExtensionUpdateAction['action'],
55
+ (
56
+ context: RepositoryContext,
57
+ resource: Writable<Extension>,
58
+ action: any
59
+ ) => void
60
+ > = {
61
+ setKey: (
62
+ context: RepositoryContext,
63
+ resource: Writable<Extension>,
64
+ { key }: ExtensionSetKeyAction
65
+ ) => {
66
+ resource.key = key
67
+ },
68
+ setTimeoutInMs: (
69
+ context: RepositoryContext,
70
+ resource: Writable<Extension>,
71
+ { timeoutInMs }: ExtensionSetTimeoutInMsAction
72
+ ) => {
73
+ resource.timeoutInMs = timeoutInMs
74
+ },
75
+ changeTriggers: (
76
+ context: RepositoryContext,
77
+ resource: Writable<Extension>,
78
+ { triggers }: ExtensionChangeTriggersAction
79
+ ) => {
80
+ resource.triggers = triggers
81
+ },
82
+ changeDestination: (
83
+ context: RepositoryContext,
84
+ resource: Writable<Extension>,
85
+ { destination }: ExtensionChangeDestinationAction
86
+ ) => {
87
+ resource.destination = destination
88
+ },
89
+ }
87
90
  }