I have the following code which finds a file location for a given file. I want the value to be returned instead of console.log. Library used for finding file location - https://github.com/substack/node-findit
function searchfileloc(fname){
var finder = require('findit')(__dirname)
var path = require('path')
finder.on('file', function (file) {
if (path.basename(file) == fname){
console.log(file); //return file
finder.stop();
}
});
}
You can wrap the function in a Promise and call it using await to get the result.
Here's an example:
function searchfileloc(fname) {
return new Promise((resolve, reject) => {
const finder = require("findit")(__dirname);
const path = require("path");
let found = false;
finder.on("file", (file) => {
if (path.basename(file) === fname) {
found = true;
finder.stop();
resolve(file);
}
});
finder.on("end", () => {
if (!found) {
reject(new Error("File not found"));
}
});
});
}
// Usage
const myFile = await searchfileloc("my_file_name");