@nordcraft/core 1.0.46 → 1.0.47
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/component/component.types.d.ts +13 -1
- package/dist/component/component.types.js.map +1 -1
- package/dist/utils/collections.d.ts +1 -1
- package/dist/utils/collections.js +11 -11
- package/dist/utils/collections.js.map +1 -1
- package/package.json +1 -1
- package/src/component/component.types.ts +9 -0
- package/src/utils/collections.test.ts +23 -1
- package/src/utils/collections.ts +15 -14
|
@@ -190,6 +190,10 @@ export interface ComponentWorkflow extends NordcraftMetadata {
|
|
|
190
190
|
name: string;
|
|
191
191
|
testValue: any;
|
|
192
192
|
}>;
|
|
193
|
+
callbacks?: Array<{
|
|
194
|
+
name: string;
|
|
195
|
+
testValue: any;
|
|
196
|
+
}>;
|
|
193
197
|
actions: ActionModel[];
|
|
194
198
|
exposeInContext?: boolean;
|
|
195
199
|
}
|
|
@@ -312,9 +316,17 @@ export interface WorkflowActionModel {
|
|
|
312
316
|
parameters: Record<string, {
|
|
313
317
|
formula: Formula;
|
|
314
318
|
}>;
|
|
319
|
+
callbacks?: Record<string, {
|
|
320
|
+
actions: ActionModel[];
|
|
321
|
+
}>;
|
|
315
322
|
contextProvider?: string;
|
|
316
323
|
}
|
|
317
|
-
export
|
|
324
|
+
export interface WorkflowCallbackActionModel {
|
|
325
|
+
type: 'TriggerWorkflowCallback';
|
|
326
|
+
event: string;
|
|
327
|
+
data: Formula;
|
|
328
|
+
}
|
|
329
|
+
export type ActionModel = VariableActionModel | EventActionModel | SwitchActionModel | FetchActionModel | CustomActionModel | SetURLParameterAction | SetMultiUrlParameterAction | WorkflowActionModel | WorkflowCallbackActionModel;
|
|
318
330
|
export interface ComponentEvent extends NordcraftMetadata {
|
|
319
331
|
name: string;
|
|
320
332
|
dummyEvent: any;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component.types.js","sourceRoot":"","sources":["../../src/component/component.types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"component.types.js","sourceRoot":"","sources":["../../src/component/component.types.ts"],"names":[],"mappings":"AAoRA,MAAM,CAAN,IAAY,YAMX;AAND,WAAY,YAAY;IACtB,6BAAa,CAAA;IACb,6BAAa,CAAA;IACb,iCAAiB,CAAA;IACjB,qCAAqB,CAAA;IACrB,+BAAe,CAAA;AACjB,CAAC,EANW,YAAY,KAAZ,YAAY,QAMvB"}
|
|
@@ -7,7 +7,7 @@ export declare const mapValues: <T, T2>(object: Record<string, T>, f: (value: T)
|
|
|
7
7
|
* @param path Path to the key to delete. For instance ['foo', 0, 'bar']
|
|
8
8
|
* @returns The updated object/array
|
|
9
9
|
*/
|
|
10
|
-
export declare const omit: <T =
|
|
10
|
+
export declare const omit: <T = object>(collection: T, [key, ...rest]: Array<string | number>) => T;
|
|
11
11
|
export declare const omitKeys: <T extends Record<string, any>>(object: T, keys: Array<keyof T>) => T;
|
|
12
12
|
export declare const omitPaths: (object: Record<string, any>, keys: string[][]) => {
|
|
13
13
|
[x: string]: any;
|
|
@@ -8,19 +8,19 @@ export const mapValues = (object, f) => mapObject(object, ([key, value]) => [key
|
|
|
8
8
|
* @param path Path to the key to delete. For instance ['foo', 0, 'bar']
|
|
9
9
|
* @returns The updated object/array
|
|
10
10
|
*/
|
|
11
|
-
export const omit = (collection,
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
if (rest.length === 0) {
|
|
19
|
-
delete clone[head];
|
|
11
|
+
export const omit = (collection, [key, ...rest]) => {
|
|
12
|
+
if (rest.length > 0) {
|
|
13
|
+
const clone = Array.isArray(collection)
|
|
14
|
+
? [...collection]
|
|
15
|
+
: { ...collection };
|
|
16
|
+
clone[key] = omit(clone[key], rest);
|
|
17
|
+
return clone;
|
|
20
18
|
}
|
|
21
|
-
|
|
22
|
-
|
|
19
|
+
if (Array.isArray(collection)) {
|
|
20
|
+
return collection.toSpliced(Number(key), 1);
|
|
23
21
|
}
|
|
22
|
+
const clone = { ...collection };
|
|
23
|
+
delete clone[key];
|
|
24
24
|
return clone;
|
|
25
25
|
};
|
|
26
26
|
export const omitKeys = (object, keys) => Object.fromEntries(Object.entries(object).filter(([k]) => !keys.includes(k)));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collections.js","sourceRoot":"","sources":["../../src/utils/collections.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AAElC,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,KAAU,EAAgC,EAAE,CACnE,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,CAAA;AAE7C,MAAM,CAAC,MAAM,SAAS,GAAG,CACvB,MAAyB,EACzB,CAAoC,EAChB,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;AAE1E,MAAM,CAAC,MAAM,SAAS,GAAG,CACvB,MAAyB,EACzB,CAAmB,EACC,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;AAE7E;;;;;GAKG;AACH,MAAM,CAAC,MAAM,IAAI,GAAG,CAClB,UAAa,EACb,
|
|
1
|
+
{"version":3,"file":"collections.js","sourceRoot":"","sources":["../../src/utils/collections.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -214,6 +214,7 @@ export interface ComponentFormula extends NordcraftMetadata {
|
|
|
214
214
|
export interface ComponentWorkflow extends NordcraftMetadata {
|
|
215
215
|
name: string
|
|
216
216
|
parameters: Array<{ name: string; testValue: any }>
|
|
217
|
+
callbacks?: Array<{ name: string; testValue: any }>
|
|
217
218
|
actions: ActionModel[]
|
|
218
219
|
exposeInContext?: boolean
|
|
219
220
|
}
|
|
@@ -354,9 +355,16 @@ export interface WorkflowActionModel {
|
|
|
354
355
|
type: 'TriggerWorkflow'
|
|
355
356
|
workflow: string
|
|
356
357
|
parameters: Record<string, { formula: Formula }>
|
|
358
|
+
callbacks?: Record<string, { actions: ActionModel[] }>
|
|
357
359
|
contextProvider?: string
|
|
358
360
|
}
|
|
359
361
|
|
|
362
|
+
export interface WorkflowCallbackActionModel {
|
|
363
|
+
type: 'TriggerWorkflowCallback'
|
|
364
|
+
event: string
|
|
365
|
+
data: Formula
|
|
366
|
+
}
|
|
367
|
+
|
|
360
368
|
export type ActionModel =
|
|
361
369
|
| VariableActionModel
|
|
362
370
|
| EventActionModel
|
|
@@ -366,6 +374,7 @@ export type ActionModel =
|
|
|
366
374
|
| SetURLParameterAction
|
|
367
375
|
| SetMultiUrlParameterAction
|
|
368
376
|
| WorkflowActionModel
|
|
377
|
+
| WorkflowCallbackActionModel
|
|
369
378
|
|
|
370
379
|
export interface ComponentEvent extends NordcraftMetadata {
|
|
371
380
|
name: string
|
|
@@ -1,4 +1,26 @@
|
|
|
1
|
-
import { omitPaths, sortObjectEntries } from './collections'
|
|
1
|
+
import { omit, omitPaths, sortObjectEntries } from './collections'
|
|
2
|
+
|
|
3
|
+
describe('omit()', () => {
|
|
4
|
+
test('it should omit paths from an array and resize the array to the new size', () => {
|
|
5
|
+
expect(omit(['a', 'b', 'c'], [0])).toEqual(['b', 'c'])
|
|
6
|
+
})
|
|
7
|
+
test('it should omit deep paths from a matrix and resize the lowest path', () => {
|
|
8
|
+
expect(
|
|
9
|
+
omit(
|
|
10
|
+
[
|
|
11
|
+
['a', 'b'],
|
|
12
|
+
['c', 'd'],
|
|
13
|
+
['e', 'f', 'g'],
|
|
14
|
+
],
|
|
15
|
+
[2, 1],
|
|
16
|
+
),
|
|
17
|
+
).toEqual([
|
|
18
|
+
['a', 'b'],
|
|
19
|
+
['c', 'd'],
|
|
20
|
+
['e', 'g'],
|
|
21
|
+
])
|
|
22
|
+
})
|
|
23
|
+
})
|
|
2
24
|
|
|
3
25
|
describe('sortObjectEntries()', () => {
|
|
4
26
|
test('it sorts entries in an object based on the callback function', () => {
|
package/src/utils/collections.ts
CHANGED
|
@@ -19,24 +19,25 @@ export const mapValues = <T, T2>(
|
|
|
19
19
|
* @param path Path to the key to delete. For instance ['foo', 0, 'bar']
|
|
20
20
|
* @returns The updated object/array
|
|
21
21
|
*/
|
|
22
|
-
export const omit = <T =
|
|
22
|
+
export const omit = <T = object>(
|
|
23
23
|
collection: T,
|
|
24
|
-
|
|
24
|
+
[key, ...rest]: Array<string | number>,
|
|
25
25
|
): T => {
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
26
|
+
if (rest.length > 0) {
|
|
27
|
+
const clone: any = Array.isArray(collection)
|
|
28
|
+
? [...collection]
|
|
29
|
+
: { ...collection }
|
|
30
|
+
clone[key] = omit(clone[key], rest)
|
|
31
|
+
return clone
|
|
32
|
+
}
|
|
33
33
|
|
|
34
|
-
if (
|
|
35
|
-
|
|
36
|
-
} else {
|
|
37
|
-
clone[head] = omit(clone[head], rest)
|
|
34
|
+
if (Array.isArray(collection)) {
|
|
35
|
+
return collection.toSpliced(Number(key), 1) as T
|
|
38
36
|
}
|
|
39
|
-
|
|
37
|
+
|
|
38
|
+
const clone: any = { ...collection }
|
|
39
|
+
delete clone[key]
|
|
40
|
+
return clone
|
|
40
41
|
}
|
|
41
42
|
|
|
42
43
|
export const omitKeys = <T extends Record<string, any>>(
|