Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
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]: {
editorName, executable,
const getTmpFileFromFileData = async (fileData = {}) => {
const {dataId, dir, host, tabId, windowId} = fileData;
const func = [];
let msg;
if (dataId && dir && host && tabId && windowId && fileMap[dir]) {
const fileId = [windowId, tabId, host, dataId].join("_");
if (fileMap[dir].has(fileId)) {
const {filePath} = fileMap[dir].get(fileId);
if (isFile(filePath)) {
const value = await readFile(filePath, {encoding: CHAR, flag: "r"});
const timestamp = await getFileTimestamp(filePath);
const data = fileData;
data.timestamp = timestamp;
msg = {
[TMP_FILE_RES]: {data, value},
};
func.push(writeStdout(msg));
} else {
fileMap[dir].delete(fileId);
}
}
}
if (!msg) {
const data = fileData;
data.timestamp = FILE_NOT_FOUND_TIMESTAMP;
msg = {
[TMP_FILE_DATA_REMOVE]: {data},
const createTmpFileResMsg = async key => {
let func;
if (isString(key) && isFile(key)) {
const fileId = await getFileIdFromFilePath(key);
if (fileId) {
const obj = fileMap[TMP_FILES].get(fileId);
if (obj) {
const {data} = obj;
if (data) {
const value =
await readFile(key, {encoding: CHAR, flag: "r"}) || "";
data.timestamp = await getFileTimestamp(key);
func = writeStdout({
[TMP_FILE_RES]: {
data, value,
},
});
}
}
}
}
return func || null;
};