@nordcraft/core 1.0.45 → 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.
@@ -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 type ActionModel = VariableActionModel | EventActionModel | SwitchActionModel | FetchActionModel | CustomActionModel | SetURLParameterAction | SetMultiUrlParameterAction | WorkflowActionModel;
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":"AAmRA,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"}
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 = unknown>(collection: T, path: Array<string | number>) => 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, path) => {
12
- const [head, ...rest] = path;
13
- const clone = Array.isArray(collection)
14
- ? [...collection]
15
- : isObject(collection)
16
- ? { ...collection }
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
- else {
22
- clone[head] = omit(clone[head], rest);
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":"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"}
1
+ {"version":3,"file":"collections.js","sourceRoot":"","sources":["../../src/utils/collections.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -14,5 +14,5 @@
14
14
  },
15
15
  "files": ["dist", "src"],
16
16
  "main": "dist/index.js",
17
- "version": "1.0.45"
17
+ "version": "1.0.47"
18
18
  }
@@ -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', () => {
@@ -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 = unknown>(
22
+ export const omit = <T = object>(
23
23
  collection: T,
24
- path: Array<string | number>,
24
+ [key, ...rest]: Array<string | number>,
25
25
  ): T => {
26
- const [head, ...rest] = path
27
-
28
- const clone: any = Array.isArray(collection)
29
- ? [...collection]
30
- : isObject(collection)
31
- ? { ...collection }
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 (rest.length === 0) {
35
- delete clone[head]
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
- return clone as T
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>>(