mirror of
https://github.com/CommunitySolidServer/CommunitySolidServer.git
synced 2024-10-03 14:55:10 +00:00
feat: Allow dynamically adding CLI parameters in configs
This commit is contained in:
@@ -31,10 +31,13 @@ export class YargsCliExtractor extends CliExtractor {
|
||||
* @param parameters - Parameters that should be parsed from the CLI. @range {json}
|
||||
* Format details can be found at https://yargs.js.org/docs/#api-reference-optionskey-opt
|
||||
* @param options - Additional options to configure yargs. @range {json}
|
||||
* @param extendedParameters - The same as @parameters. Separate variable so in Components.js
|
||||
* we can have both a default set and a user-added version. @range {json}
|
||||
*/
|
||||
public constructor(parameters: YargsArgOptions = {}, options: CliOptions = {}) {
|
||||
public constructor(parameters: YargsArgOptions = {}, options: CliOptions = {},
|
||||
extendedParameters: YargsArgOptions = {}) {
|
||||
super();
|
||||
this.yargsArgOptions = parameters;
|
||||
this.yargsArgOptions = { ...parameters, ...extendedParameters };
|
||||
this.yargvOptions = options;
|
||||
}
|
||||
|
||||
|
||||
@@ -6,16 +6,16 @@ import { SettingsResolver } from './SettingsResolver';
|
||||
* Generates variable values by running a set of {@link SettingsExtractor}s on the input.
|
||||
*/
|
||||
export class CombinedSettingsResolver extends SettingsResolver {
|
||||
public readonly computers: Record<string, SettingsExtractor>;
|
||||
public readonly resolvers: Record<string, SettingsExtractor>;
|
||||
|
||||
public constructor(computers: Record<string, SettingsExtractor>) {
|
||||
public constructor(resolvers: Record<string, SettingsExtractor>) {
|
||||
super();
|
||||
this.computers = computers;
|
||||
this.resolvers = resolvers;
|
||||
}
|
||||
|
||||
public async handle(input: Record<string, unknown>): Promise<Record<string, unknown>> {
|
||||
const vars: Record<string, any> = {};
|
||||
for (const [ name, computer ] of Object.entries(this.computers)) {
|
||||
for (const [ name, computer ] of Object.entries(this.resolvers)) {
|
||||
try {
|
||||
vars[name] = await computer.handleSafe(input);
|
||||
} catch (err: unknown) {
|
||||
|
||||
Reference in New Issue
Block a user