Skip to content

Commit f124fa4

Browse files
committed
feat(Parser): allow equals (=) sign for label-value separator
Closes /issues/22
1 parent 6f9ebf8 commit f124fa4

File tree

2 files changed

+45
-38
lines changed

2 files changed

+45
-38
lines changed

Diff for: src/msgAggregatorWorker.test.ts

+43-38
Original file line numberDiff line numberDiff line change
@@ -81,44 +81,49 @@ describe("Parsing data", () => {
8181
);
8282
});
8383

84-
test("labeled", () => {
85-
const messages = [
86-
`0${trailingFieldDelimiter}${recordDelimiter}`,
87-
`label_1:1${fieldDelimiter}label_2:2${trailingFieldDelimiter}${recordDelimiter}`,
88-
`label_1:3${fieldDelimiter}label_2:4${trailingFieldDelimiter}${recordDelimiter}`,
89-
];
90-
91-
const assertion = {
92-
datasetNames: ["label_1", "label_2"],
93-
parsedLines: [
94-
{ label_1: 1, label_2: 2 },
95-
{ label_1: 3, label_2: 4 },
96-
],
97-
};
98-
99-
expect(messageAggregator.parseSerialMessages(messages)).toEqual(
100-
assertion
101-
);
102-
});
103-
104-
test("labeled padded", () => {
105-
const messages = [
106-
`0${trailingFieldDelimiter}${recordDelimiter}`,
107-
`label_1: 1${fieldDelimiter}label_2: 20${trailingFieldDelimiter}${recordDelimiter}`,
108-
`label_1: 300${fieldDelimiter}label_2:4000${trailingFieldDelimiter}${recordDelimiter}`,
109-
];
110-
111-
const assertion = {
112-
datasetNames: ["label_1", "label_2"],
113-
parsedLines: [
114-
{ label_1: 1, label_2: 20 },
115-
{ label_1: 300, label_2: 4000 },
116-
],
117-
};
118-
119-
expect(messageAggregator.parseSerialMessages(messages)).toEqual(
120-
assertion
121-
);
84+
describe.each([
85+
["colon", ":"],
86+
["equals", "="],
87+
])("%s label delimiter", (_, labelDelimiter) => {
88+
test("labeled", () => {
89+
const messages = [
90+
`0${trailingFieldDelimiter}${recordDelimiter}`,
91+
`label_1${labelDelimiter}1${fieldDelimiter}label_2${labelDelimiter}2${trailingFieldDelimiter}${recordDelimiter}`,
92+
`label_1${labelDelimiter}3${fieldDelimiter}label_2${labelDelimiter}4${trailingFieldDelimiter}${recordDelimiter}`,
93+
];
94+
95+
const assertion = {
96+
datasetNames: ["label_1", "label_2"],
97+
parsedLines: [
98+
{ label_1: 1, label_2: 2 },
99+
{ label_1: 3, label_2: 4 },
100+
],
101+
};
102+
103+
expect(messageAggregator.parseSerialMessages(messages)).toEqual(
104+
assertion
105+
);
106+
});
107+
108+
test("labeled padded", () => {
109+
const messages = [
110+
`0${trailingFieldDelimiter}${recordDelimiter}`,
111+
`label_1${labelDelimiter} 1${fieldDelimiter}label_2${labelDelimiter} 20${trailingFieldDelimiter}${recordDelimiter}`,
112+
`label_1${labelDelimiter} 300${fieldDelimiter}label_2${labelDelimiter}4000${trailingFieldDelimiter}${recordDelimiter}`,
113+
];
114+
115+
const assertion = {
116+
datasetNames: ["label_1", "label_2"],
117+
parsedLines: [
118+
{ label_1: 1, label_2: 20 },
119+
{ label_1: 300, label_2: 4000 },
120+
],
121+
};
122+
123+
expect(messageAggregator.parseSerialMessages(messages)).toEqual(
124+
assertion
125+
);
126+
});
122127
});
123128

124129
test("buffering", () => {

Diff for: src/msgAggregatorWorker.ts

+2
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,8 @@ export const parseSerialMessages = (
7676
message = message.replace(delimiterRegex, " ");
7777
// replace multiple spaces with a single space
7878
message = message.replace(/\s+/g, " ");
79+
// replace all equal signs with a colon
80+
message = message.replace(/=/g, ":");
7981

8082
const parsedLine: { [key: string]: number } = {};
8183

0 commit comments

Comments
 (0)