adding force-emit flag

This commit is contained in:
Martin Karkowski 2021-08-04 14:55:56 +02:00
parent eba29dc9f8
commit a2268087ca

View File

@ -2,10 +2,9 @@
* @author Martin Karkowski
* @email m.karkowski@zema.de
* @create date 2020-11-11 13:27:58
* @modify date 2021-05-13 11:30:38
* @modify date 2021-08-03 17:16:50
* @desc [description]
*
* TODO: fix imports and make extra function to load communication-bridge.
*/
import { ArgumentParser } from "argparse";
@ -79,12 +78,20 @@ export async function readInArgs(
type: "string",
dest: "params"
});
parser.addArgument(["-s", "--skipLoadingConfig"], {
parser.addArgument(["-s", "--skip-loading-config"], {
help: "Flag to prevent loading the elements defined in the settings.json.",
action: "append",
nargs: "?",
dest: "skipLoadingConfig"
});
parser.addArgument(["--force-emit"], {
help: "Forces emitting the events of the system. Otherwise, only subscribed events are emitted.",
action: "append",
nargs: "?",
dest: "forceEmittingUpdates"
});
parser.addArgument(["-l", "--log"], {
help:
"Specify the Logger Level. Defaults to \"info\". Valid values are: " +
@ -100,6 +107,7 @@ export async function readInArgs(
params?: string;
skipLoadingConfig?: boolean;
log: LoggerLevel;
forceEmittingUpdates?: boolean;
} = parser.parseArgs();
if (args.params === "not-provided") {
@ -107,6 +115,7 @@ export async function readInArgs(
}
args.skipLoadingConfig = Array.isArray(args.skipLoadingConfig);
args.forceEmittingUpdates = Array.isArray(args.forceEmittingUpdates);
return args;
}
@ -118,7 +127,11 @@ export async function runNopeBackend(
file?: string;
channel?: validLayerOrMirror;
params?: string;
// Flag to prevent loading the configuration
skipLoadingConfig?: boolean;
// Flag to force sending updates.
forceEmittingUpdates?: boolean;
// Level of the logger.
log?: LoggerLevel;
} = {}
): Promise<INopeDispatcher> {
@ -158,9 +171,9 @@ export async function runNopeBackend(
if (!Object.getOwnPropertyNames(validLayers).includes(args.channel)) {
logger.error(
"Invalid Channel. Please use the following values. " +
Object.getOwnPropertyNames(validLayers)
.map((item) => "\"" + item + "\"")
.join(", ")
Object.getOwnPropertyNames(validLayers)
.map((item) => "\"" + item + "\"")
.join(", ")
);
return;
}
@ -170,11 +183,18 @@ export async function runNopeBackend(
if (args.params != "not-provided") {
try {
opts.params = JSON.parse(args.params);
try {
// We try to parse the data.
opts.params = JSON.parse(args.params);
} catch (e) {
opts.params = JSON.parse("\"" + args.params + "\"");
}
} catch (e) {
logger.error(
"Unable to parse the Parameters for the channel. Please use valid JSON!"
);
logger.error(args.params[0]);
logger.error(e);
return;
}
}
@ -188,8 +208,8 @@ export async function runNopeBackend(
} catch (e) {
logger.error(
"Unable to load the Packages defined in " +
args.file +
" See Output for detailled information",
args.file +
" See Output for detailled information",
e
);
return;
@ -200,7 +220,8 @@ export async function runNopeBackend(
try {
loader = getPackageLoader({
communicator: getLayer(args.channel, opts.params, "debug"),
logger: getNopeLogger("dispatcher", "debug")
logger: getNopeLogger("dispatcher", "debug"),
forceEmittingUpdates: args.forceEmittingUpdates,
});
} catch (e) {
getNopeLogger("cli", "info").error("failed to load the Packages", e);
@ -215,8 +236,8 @@ export async function runNopeBackend(
} catch (e) {
logger.error(
"Unable to load the Packages defined in " +
args.file +
" See Output for detailled information",
args.file +
" See Output for detailled information",
e
);
return;