Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
const handleEditorPathInput = async editorFilePath => {
let editorPath;
if (isFile(editorFilePath) && isExecutable(editorFilePath)) {
editorPath = editorFilePath;
} else {
const ans = readline.questionPath("Input editor path: ", {
isFile: true,
});
if (isExecutable(ans)) {
editorPath = ans;
} else {
console.warn(`${ans} is not executable.`);
editorPath = await handleEditorPathInput();
}
}
return editorPath;
};
const handleEditorPathInput = async editorFilePath => {
let editorPath;
if (isFile(editorFilePath) && isExecutable(editorFilePath)) {
editorPath = editorFilePath;
} else {
const ans = readline.question("Input editor path: ");
if (isExecutable(ans)) {
editorPath = ans;
} else {
console.warn(`${ans} is not executable.`);
editorPath = await handleEditorPathInput();
}
}
return editorPath;
};
const exportEditorConfig = async (data, editorConfigPath) => {
if (!isString(data)) {
throw new TypeError(`Expected String but got ${getType(data)}.`);
}
let func;
data = data && JSON.parse(data);
if (isObjectNotEmpty(data)) {
const {editorPath} = data;
const editorName = await getFileNameFromFilePath(editorPath);
const executable = isExecutable(editorPath);
const timestamp = await getFileTimestamp(editorConfigPath);
const reg =
new RegExp(`\\$(?:${TMP_FILE_PLACEHOLDER}|{${TMP_FILE_PLACEHOLDER}})`);
const keys = Object.keys(editorConfig);
for (const key of keys) {
const value = data[key];
if (key === "editorPath") {
editorConfig[key] = value;
}
if (key === "cmdArgs") {
editorConfig[key] = new CmdArgs(value).toArray();
editorConfig.hasPlaceholder = reg.test(value);
}
}
const msg = {
[EDITOR_CONFIG_RES]: {
const handleEditorPathInput = async editorFilePath => {
let editorPath;
if (isFile(editorFilePath) && isExecutable(editorFilePath)) {
editorPath = editorFilePath;
} else {
const ans = readline.question("Input editor path: ");
if (isExecutable(ans)) {
editorPath = ans;
} else {
console.warn(`${ans} is not executable.`);
editorPath = await handleEditorPathInput();
}
}
return editorPath;
};
const handleEditorPathInput = async editorFilePath => {
let editorPath;
if (isFile(editorFilePath) && isExecutable(editorFilePath)) {
editorPath = editorFilePath;
} else {
const ans = readline.questionPath("Input editor path: ", {
isFile: true,
});
if (isExecutable(ans)) {
editorPath = ans;
} else {
console.warn(`${ans} is not executable.`);
editorPath = await handleEditorPathInput();
}
}
return editorPath;
};
const spawnChildProcess = async (file, app = editorConfig.editorPath) => {
if (!isFile(file)) {
throw new Error(`No such file: ${file}`);
}
if (!isExecutable(app)) {
throw new Error("Application is not executable.");
}
const {cmdArgs, hasPlaceholder} = editorConfig;
const opt = {
cwd: null,
encoding: CHAR,
env: process.env,
};
let args, proc;
if (Array.isArray(cmdArgs)) {
args = cmdArgs.slice();
} else {
args = new CmdArgs(cmdArgs).toArray();
}
if (hasPlaceholder) {
const [filePath] = new CmdArgs(quoteArg(file)).toArray();