freeCodeCamp/curriculum/test/utils/extract-js-comments.js

24 lines
566 B
JavaScript

const acorn = require('acorn');
const { commentToData } = require('./comment-to-data');
const parser = acorn.Parser;
function extractComments(js) {
let comments = [];
const file = { data: {} };
try {
parser.parse(js, { onComment: comments, ecmaVersion: 2020 });
} catch {
throw Error(`extract-js-comments could not parse the code below, this challenge has invalid syntax:
${js}
`);
}
comments
.map(({ value }) => value.trim())
.forEach(comment => commentToData(file, comment));
return file.data;
}
module.exports = extractComments;