@mccann-hub/create-typescript-template
Version:
CLI tool to initialize a TypeScript project with dual CommonJS and ESM support, path aliases, unit testing, and linting for NPM publishing.
29 lines (25 loc) • 639 B
JavaScript
const readline = require('readline');
function question(inquiry) {
return new Promise((resolve) => {
const ui = readline.createInterface({
input: process.stdin,
output: process.stdout,
});
ui.question(inquiry, (input) => {
ui.close();
resolve(input);
});
});
}
module.exports = async (query, preset = '', validate = () => true) => {
let resp;
while (true) {
resp = (await question(query)) || preset;
const valid = validate(resp);
if (valid === true) {
break;
}
console.log(valid || `Invalid response: ${resp}`);
}
return resp;
};