mirror of
https://github.com/angular/angular
synced 2026-05-24 09:28:37 +00:00
Linting has recently been removed from the examples provided in angular.io (see PRs #43592 and #43746) such removal effects the downloadable and stackblitz examples but linting is still generally used in the examples in the aio project itself (they are being migrated from tslint to eslint in PR #43218) thus eslint directive comments are still necessary in the code itself. So the comments need to be present but need not to be exposed to the users (not in the zips, stackblitzes nor docs themselves), these changes are removing such comments during the examples' parsing phase (effectively removing them from all three sources mentioned above). Original discussion: https://github.com/angular/angular/pull/43218#discussion_r697305494 resolves #43788 PR Close #43831
32 lines
1 KiB
JavaScript
32 lines
1 KiB
JavaScript
module.exports = function removeEslintComments(input, fileType) {
|
|
const regexForFileType = regexesForFileTypes[fileType];
|
|
|
|
if (!input || !regexForFileType) {
|
|
return input;
|
|
}
|
|
|
|
return input.replace(regexForFileType, '');
|
|
};
|
|
|
|
const jsRegexes = [
|
|
/\/\/ *eslint-disable(?:-next-line)?(?: .*)?(?:\n *|$)/,
|
|
/\n? *\/\/ *eslint-(?:disable-line|enable)(?: .*)?(?=\n|$)/,
|
|
/\/\*\s*eslint-disable(?:-next-line)?(?: [\s\S]*?)?\*\/ *(?:\n *)?/,
|
|
/\n? *\/\*\s*eslint-(?:disable-line|enable)(?: [\s\S]*?)?\*\//,
|
|
];
|
|
|
|
const htmlRegexes = [
|
|
/<!--\s*eslint-disable(?:-next-line)?(?: [\s\S]*?)?--> *(?:\n *)?/,
|
|
/\n? *<!--\s*eslint-(?:disable-line|enable)(?: [\s\S]*?)?-->/,
|
|
];
|
|
|
|
const joinRegexes = regexes => new RegExp(regexes.map(regex => `(?:${regex.source})`).join('|'), 'g');
|
|
const htmlRegex = joinRegexes(htmlRegexes);
|
|
// Note: the js regex needs to also include the html ones to account for inline templates in @Components
|
|
const jsRegex = joinRegexes([...jsRegexes, ...htmlRegexes]);
|
|
|
|
const regexesForFileTypes = {
|
|
js: jsRegex,
|
|
ts: jsRegex,
|
|
html: htmlRegex,
|
|
};
|