Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
testFiles.forEach(file => {
// skip source files from node_modules
// https://github.com/mikeerickson/todo-webpack-plugin/issues/21
if (file.match(/node_modules/g)) {
return;
}
if (options.skipUnsupported) {
if (!leasot.isExtSupported(path.extname(file))) {
return;
}
}
const todo = leasot.parse({
ext: path.extname(file),
content: fs.readFileSync(file, 'utf8'),
fileName: file,
customTags: options.tags,
reporter: options.reporter,
withInlineFiles: options.withInlineFiles
});
todos = todos.concat(todo);
});
//check if parser for filetype exists
if (!leasot.isExtensionSupported(ext)) {
if (!skipUnsupported) {
const msg = `File: ${file.path} with extension ${colors.red(ext)} is not supported`;
return cb(new PluginError(pluginName, msg));
}
if (verbose) {
const msg = `Skipping file ${file.path} with extension ${colors.red(ext)} as it is unsupported`;
fancyLog(msg);
}
return cb();
}
const filePath = absolute ? file.path : (file.path && file.relative) || file.path;
const parsedComments = leasot.parse(file.contents.toString(), {
associateParser: parseOptions.associateParser,
customParsers: parseOptions.customParsers,
customTags: parseOptions.customTags,
extension: ext,
filename: filePath,
withInlineFiles: parseOptions.withInlineFiles,
});
if (verbose) {
logCommentsToConsole(parsedComments);
}
comments.push(...parsedComments);
cb();
},
function reportTodos(cb) {
processString(content, relativePath) {
if (this.enabled) {
const fileExtension = path.extname(relativePath);
if (leasot.isExtSupported(fileExtension)) {
this._markers.push(leasot.parse({
ext: fileExtension,
content: content,
fileName: relativePath,
customTags: this.kinds
}));
} else {
this._exceptions.push(fileExtension);
}
}
return content;
}