scaffolder-vscode
Version:
Easily generate dynamic boilerplate for your project!
36 lines (33 loc) • 972 B
text/typescript
import {
extractKey,
IConfig,
} from "scaffolder-core";
import * as vscode from "vscode";
import { validationAdapter } from "./generateScaffolderFromGithub";
const vscodeValidationFunctionAdapter = (
validationFn: any
) => {
if (validationFn) {
return validationAdapter(validationFn);
}
};
export const getParamsValuesFromUser = async (
templateKeys: string[],
config: IConfig
) => {
const paramsValues = {};
for (let param of templateKeys) {
const cleanKey = extractKey(param);
const parameterOptions = config.get.parameterOptions(cleanKey);
const paramValue = await vscode.window.showInputBox({
prompt: parameterOptions.question,
placeHolder: `Enter value (${templateKeys.indexOf(param) + 1}/${
templateKeys.length
})`,
validateInput: vscodeValidationFunctionAdapter(parameterOptions.validation)
});
// @ts-ignore
paramsValues[extractKey(param)] = paramValue;
}
return paramsValues;
};