Skip to content

Commit 995c181

Browse files
committed
fix lint
1 parent 70d4cc1 commit 995c181

1 file changed

Lines changed: 69 additions & 71 deletions

File tree

src/utils/merge.ts

Lines changed: 69 additions & 71 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,14 @@ import { patch } from '@n1ru4l/json-patch-plus';
44

55
type HawkEvent = {
66
payload: {
7-
[key: string]: any
8-
}
7+
[key: string]: any;
8+
};
99
}
1010

1111
type HawkEventRepetition = {
1212
payload: {
13-
[key: string]: any
14-
}
13+
[key: string]: any;
14+
};
1515
delta: string;
1616
}
1717

@@ -25,47 +25,46 @@ type HawkEventRepetition = {
2525
* @param repetition - the difference with its repetition, for the repetition we want to display
2626
* @returns fully assembled payload of the current repetition
2727
*/
28-
export function repetitionAssembler(originalEvent: Object, repetition: { [key: string]: any }): any {
29-
const customizer = (originalParam: any, repetitionParam: any): any => {
30-
if (repetitionParam === null) {
31-
return originalParam;
32-
}
33-
34-
35-
if (typeof repetitionParam === 'object' && typeof originalParam === 'object') {
36-
/**
37-
* If original event has null but repetition has some value, we need to return repetition value
38-
*/
39-
if (originalParam === null) {
40-
return repetitionParam;
41-
/**
42-
* Otherwise, we need to recursively merge original and repetition values
43-
*/
44-
} else {
45-
return repetitionAssembler(originalParam, repetitionParam);
46-
}
47-
}
28+
export function repetitionAssembler(originalEvent: Record<string, any>, repetition: { [key: string]: any }): any {
29+
const customizer = (originalParam: any, repetitionParam: any): any => {
30+
if (repetitionParam === null) {
31+
return originalParam;
32+
}
4833

34+
if (typeof repetitionParam === 'object' && typeof originalParam === 'object') {
35+
/**
36+
* If original event has null but repetition has some value, we need to return repetition value
37+
*/
38+
if (originalParam === null) {
4939
return repetitionParam;
50-
};
40+
/**
41+
* Otherwise, we need to recursively merge original and repetition values
42+
*/
43+
} else {
44+
return repetitionAssembler(originalParam, repetitionParam);
45+
}
46+
}
47+
48+
return repetitionParam;
49+
};
5150

52-
return mergeWith(cloneDeep(originalEvent), cloneDeep(repetition), customizer);
51+
return mergeWith(cloneDeep(originalEvent), cloneDeep(repetition), customizer);
5352
}
5453

5554
function parsePayloadField(payload: any, field: string) {
56-
if (payload && payload[field] && typeof payload[field] === 'string') {
57-
payload[field] = JSON.parse(payload[field]);
58-
}
55+
if (payload && payload[field] && typeof payload[field] === 'string') {
56+
payload[field] = JSON.parse(payload[field]);
57+
}
5958

60-
return payload;
59+
return payload;
6160
}
6261

6362
function stringifyPayloadField(payload: any, field: string) {
64-
if (payload && payload[field]) {
65-
payload[field] = JSON.stringify(payload[field]);
66-
}
63+
if (payload && payload[field]) {
64+
payload[field] = JSON.stringify(payload[field]);
65+
}
6766

68-
return payload;
67+
return payload;
6968
}
7069

7170
/**
@@ -78,52 +77,51 @@ function stringifyPayloadField(payload: any, field: string) {
7877
* @returns {HawkEvent} Updated event with processed repetition payload
7978
*/
8079
export function composeFullRepetitionEvent(originalEvent: HawkEvent, repetition: HawkEventRepetition | undefined): HawkEvent {
80+
/**
81+
* Make a deep copy of the original event, because we need to avoid mutating the original event
82+
*/
83+
const event = cloneDeep(originalEvent);
8184

82-
/**
83-
* Make a deep copy of the original event, because we need to avoid mutating the original event
84-
*/
85-
const event = cloneDeep(originalEvent);
86-
87-
if (!repetition) {
88-
return event;
89-
}
85+
if (!repetition) {
86+
return event;
87+
}
9088

89+
/**
90+
* New delta format (repetition.delta is not null)
91+
*/
92+
if (repetition.delta) {
9193
/**
92-
* New delta format (repetition.delta is not null)
94+
* Parse addons and context fields from string to object before patching
9395
*/
94-
if (repetition.delta) {
95-
/**
96-
* Parse addons and context fields from string to object before patching
97-
*/
98-
event.payload = parsePayloadField(event.payload, 'addons');
99-
event.payload = parsePayloadField(event.payload, 'context');
96+
event.payload = parsePayloadField(event.payload, 'addons');
97+
event.payload = parsePayloadField(event.payload, 'context');
10098

101-
event.payload = patch({
102-
left: event.payload,
103-
delta: JSON.parse(repetition.delta)
104-
});
105-
106-
/**
107-
* Stringify addons and context fields from object to string after patching
108-
*/
109-
event.payload = stringifyPayloadField(event.payload, 'addons');
110-
event.payload = stringifyPayloadField(event.payload, 'context');
111-
112-
return event;
113-
}
99+
event.payload = patch({
100+
left: event.payload,
101+
delta: JSON.parse(repetition.delta),
102+
});
114103

115104
/**
116-
* New delta format (repetition.payload is null) and repetition.delta is null (there is no delta between original and repetition)
105+
* Stringify addons and context fields from object to string after patching
117106
*/
118-
if (!repetition.payload) {
119-
return event;
120-
}
107+
event.payload = stringifyPayloadField(event.payload, 'addons');
108+
event.payload = stringifyPayloadField(event.payload, 'context');
121109

122-
/**
123-
* Old delta format (repetition.payload is not null)
124-
* @todo remove after July 5 2025
125-
*/
126-
event.payload = repetitionAssembler(event.payload, repetition.payload);
110+
return event;
111+
}
127112

113+
/**
114+
* New delta format (repetition.payload is null) and repetition.delta is null (there is no delta between original and repetition)
115+
*/
116+
if (!repetition.payload) {
128117
return event;
118+
}
119+
120+
/**
121+
* Old delta format (repetition.payload is not null)
122+
* @todo remove after July 5 2025
123+
*/
124+
event.payload = repetitionAssembler(event.payload, repetition.payload);
125+
126+
return event;
129127
}

0 commit comments

Comments
 (0)