Skip to content
This repository was archived by the owner on Sep 3, 2024. It is now read-only.

Commit 05358c7

Browse files
committedMar 12, 2021
Defines a debugging render func.
1 parent f5d0396 commit 05358c7

File tree

2 files changed

+37
-7
lines changed

2 files changed

+37
-7
lines changed
 

‎src/cli.js

+13-4
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,14 @@
33
import { Command } from "commander/esm.mjs";
44
import { parseDataDiffs } from "./job_parse";
55
import { publishDataDiffs } from "./job_publish";
6-
7-
const program = new Command();
6+
import { renderDataDiffs } from "./job_publish";
87

98
const DEFAULT_GCP_PROJECT = "ds3-dialect-map";
109
const DEFAULT_GCP_PUBSUB = "data-diff";
1110
const DEFAULT_DEBUG_FLAG = "false";
1211

12+
const program = new Command();
13+
1314
program
1415
.command("publish")
1516
.description("Parses and publishes data diff JSON messages into a Pub/Sub topic")
@@ -22,7 +23,12 @@ program
2223
// Options unfold
2324
let gcpProject = options["gcpProject"];
2425
let gcpPubSub = options["gcpPubsub"];
25-
let debugFlag = options["debugFlag"];
26+
let debugFlag = options["debugFlag"].toLowerCase();
27+
28+
if (debugFlag !== "true" && debugFlag !== "false") {
29+
console.error(`Invalid debug flag: ${debugFlag}`);
30+
process.exit(1);
31+
}
2632

2733
console.info(`Received arguments and options:`);
2834
console.info(`Data file path: ${dataFile}`);
@@ -33,7 +39,10 @@ program
3339

3440
let messages = parseDataDiffs(dataFile, diffFile);
3541

36-
if (debugFlag.toLowerCase() === "false") {
42+
if (debugFlag === "true") {
43+
renderDataDiffs(messages);
44+
}
45+
if (debugFlag === "false") {
3746
await publishDataDiffs(gcpProject, gcpPubSub, messages);
3847
}
3948
});

‎src/job_publish.js

+24-3
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
/* encoding: utf-8 */
22

3+
import { JSONParser } from "./parsers/parser_json";
34
import { MSG_SOURCE_GHA } from "./models/pub_constants";
45
import { MSG_TYPE_DIFF } from "./models/pub_constants";
56
import { MessageMetadata } from "./models/pub_metadata";
@@ -13,10 +14,30 @@ export async function publishDataDiffs(projectID, pubSubTopic, messages) {
1314
* @param messages: array of DiffMessage objects
1415
*/
1516

17+
let serializer = new JSONParser();
1618
let publisher = new PubSubPublisher(projectID, pubSubTopic);
17-
let metadata = new MessageMetadata(MSG_SOURCE_GHA, MSG_TYPE_DIFF);
1819

19-
for (const msg of messages) {
20-
await publisher.publishMessage(msg, metadata);
20+
let metadataObject = new MessageMetadata(MSG_SOURCE_GHA, MSG_TYPE_DIFF);
21+
let metadataFields = metadataObject.fields;
22+
23+
for (let msg of messages) {
24+
let msgData = msg.fields;
25+
let strData = serializer.printString(msgData);
26+
await publisher.publishMessage(strData, metadataFields);
27+
}
28+
}
29+
30+
export function renderDataDiffs(messages) {
31+
/**
32+
* Renders the serialized data messages for debugging purposes
33+
* @param messages: array of DiffMessage objects
34+
*/
35+
36+
let serializer = new JSONParser();
37+
38+
for (let msg of messages) {
39+
let msgData = msg.fields;
40+
let strData = serializer.printString(msgData);
41+
console.debug(`Serialized message: ${strData}`);
2142
}
2243
}

0 commit comments

Comments
 (0)
This repository has been archived.