63 lines
2.0 KiB
TypeScript
63 lines
2.0 KiB
TypeScript
import Input from '../../input';
|
|
import { GenericInputReader } from '../../input-readers/generic-input-reader';
|
|
|
|
const formatFunction = (value, arguments_) => {
|
|
for (const element of arguments_) {
|
|
value = value.replace(`{${element.key}}`, element.value);
|
|
}
|
|
|
|
return value;
|
|
};
|
|
|
|
class CloudRunnerQueryOverride {
|
|
static queryOverrides: any;
|
|
|
|
public static query(key, alternativeKey) {
|
|
if (CloudRunnerQueryOverride.queryOverrides && CloudRunnerQueryOverride.queryOverrides[key] !== undefined) {
|
|
return CloudRunnerQueryOverride.queryOverrides[key];
|
|
}
|
|
if (
|
|
CloudRunnerQueryOverride.queryOverrides &&
|
|
alternativeKey &&
|
|
CloudRunnerQueryOverride.queryOverrides[alternativeKey] !== undefined
|
|
) {
|
|
return CloudRunnerQueryOverride.queryOverrides[alternativeKey];
|
|
}
|
|
|
|
return;
|
|
}
|
|
|
|
private static shouldUseOverride(query) {
|
|
if (Input.readInputOverrideCommand() !== '') {
|
|
if (Input.readInputFromOverrideList() !== '') {
|
|
const doesInclude =
|
|
Input.readInputFromOverrideList().split(',').includes(query) ||
|
|
Input.readInputFromOverrideList().split(',').includes(Input.ToEnvVarFormat(query));
|
|
|
|
return doesInclude ? true : false;
|
|
} else {
|
|
return true;
|
|
}
|
|
}
|
|
}
|
|
|
|
private static async queryOverride(query) {
|
|
if (!this.shouldUseOverride(query)) {
|
|
throw new Error(`Should not be trying to run override query on ${query}`);
|
|
}
|
|
|
|
return await GenericInputReader.Run(formatFunction(Input.readInputOverrideCommand(), [{ key: 0, value: query }]));
|
|
}
|
|
|
|
public static async PopulateQueryOverrideInput() {
|
|
const queries = Input.readInputFromOverrideList().split(',');
|
|
CloudRunnerQueryOverride.queryOverrides = new Array();
|
|
for (const element of queries) {
|
|
if (CloudRunnerQueryOverride.shouldUseOverride(element)) {
|
|
CloudRunnerQueryOverride.queryOverrides[element] = await CloudRunnerQueryOverride.queryOverride(element);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
export default CloudRunnerQueryOverride;
|