1 | ;
|
2 | // tslint:disable:no-unsafe-any
|
3 | Object.defineProperty(exports, "__esModule", { value: true });
|
4 | function stripComments(content) {
|
5 | /**
|
6 | * First capturing group matches double quoted string
|
7 | * Second matches single quotes string
|
8 | * Third matches block comments
|
9 | * Fourth matches line comments
|
10 | */
|
11 | const regexp = /("(?:[^\\\"]*(?:\\.)?)*")|('(?:[^\\\']*(?:\\.)?)*')|(\/\*(?:\r?\n|.)*?\*\/)|(\/{2,}.*?(?:(?:\r?\n)|$))/g;
|
12 | // tslint:disable-next-line:no-unnecessary-local-variable
|
13 | const result = content.replace(regexp, (match, _0, _1, m3, m4) => {
|
14 | // Only one of m1, m2, m3, m4 matches
|
15 | if (m3) {
|
16 | // A block comment. Replace with nothing
|
17 | return '';
|
18 | }
|
19 | else if (m4) {
|
20 | // A line comment. If it ends in \r?\n then keep it.
|
21 | const length = m4.length;
|
22 | if (length > 2 && m4[length - 1] === '\n') {
|
23 | return m4[length - 2] === '\r' ? '\r\n' : '\n';
|
24 | }
|
25 | else {
|
26 | return '';
|
27 | }
|
28 | }
|
29 | else {
|
30 | // We match a string
|
31 | return match;
|
32 | }
|
33 | });
|
34 | return result;
|
35 | }
|
36 | exports.stripComments = stripComments;
|
37 | //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyaXAtY29tbWVudHMuanMiLCJzb3VyY2VSb290IjoiLi8iLCJzb3VyY2VzIjpbInNyYy91dGlscy9zdHJpcC1jb21tZW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsK0JBQStCOztBQUUvQixTQUFnQixhQUFhLENBQUMsT0FBZTtJQUN6Qzs7Ozs7T0FLRztJQUNILE1BQU0sTUFBTSxHQUNSLHlHQUF5RyxDQUFDO0lBQzlHLHlEQUF5RDtJQUN6RCxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFDakMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUU7UUFDdEIscUNBQXFDO1FBQ3JDLElBQUksRUFBRSxFQUFFO1lBQ0osd0NBQXdDO1lBQ3hDLE9BQU8sRUFBRSxDQUFDO1NBQ2I7YUFBTSxJQUFJLEVBQUUsRUFBRTtZQUNYLG9EQUFvRDtZQUNwRCxNQUFNLE1BQU0sR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDO1lBQ3pCLElBQUksTUFBTSxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxLQUFLLElBQUksRUFBRTtnQkFDdkMsT0FBTyxFQUFFLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7YUFDbEQ7aUJBQU07Z0JBQ0gsT0FBTyxFQUFFLENBQUM7YUFDYjtTQUNKO2FBQU07WUFDSCxvQkFBb0I7WUFDcEIsT0FBTyxLQUFLLENBQUM7U0FDaEI7SUFDTCxDQUFDLENBQUMsQ0FBQztJQUVQLE9BQU8sTUFBTSxDQUFDO0FBQ2xCLENBQUM7QUEvQkQsc0NBK0JDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gdHNsaW50OmRpc2FibGU6bm8tdW5zYWZlLWFueVxuXG5leHBvcnQgZnVuY3Rpb24gc3RyaXBDb21tZW50cyhjb250ZW50OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIC8qKlxuICAgICAqIEZpcnN0IGNhcHR1cmluZyBncm91cCBtYXRjaGVzIGRvdWJsZSBxdW90ZWQgc3RyaW5nXG4gICAgICogU2Vjb25kIG1hdGNoZXMgc2luZ2xlIHF1b3RlcyBzdHJpbmdcbiAgICAgKiBUaGlyZCBtYXRjaGVzIGJsb2NrIGNvbW1lbnRzXG4gICAgICogRm91cnRoIG1hdGNoZXMgbGluZSBjb21tZW50c1xuICAgICAqL1xuICAgIGNvbnN0IHJlZ2V4cCA9XG4gICAgICAgIC8oXCIoPzpbXlxcXFxcXFwiXSooPzpcXFxcLik/KSpcIil8KCcoPzpbXlxcXFxcXCddKig/OlxcXFwuKT8pKicpfChcXC9cXCooPzpcXHI/XFxufC4pKj9cXCpcXC8pfChcXC97Mix9Lio/KD86KD86XFxyP1xcbil8JCkpL2c7XG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLXVubmVjZXNzYXJ5LWxvY2FsLXZhcmlhYmxlXG4gICAgY29uc3QgcmVzdWx0ID0gY29udGVudC5yZXBsYWNlKHJlZ2V4cCxcbiAgICAgICAgKG1hdGNoLCBfMCwgXzEsIG0zLCBtNCkgPT4ge1xuICAgICAgICAgICAgLy8gT25seSBvbmUgb2YgbTEsIG0yLCBtMywgbTQgbWF0Y2hlc1xuICAgICAgICAgICAgaWYgKG0zKSB7XG4gICAgICAgICAgICAgICAgLy8gQSBibG9jayBjb21tZW50LiBSZXBsYWNlIHdpdGggbm90aGluZ1xuICAgICAgICAgICAgICAgIHJldHVybiAnJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAobTQpIHtcbiAgICAgICAgICAgICAgICAvLyBBIGxpbmUgY29tbWVudC4gSWYgaXQgZW5kcyBpbiBcXHI/XFxuIHRoZW4ga2VlcCBpdC5cbiAgICAgICAgICAgICAgICBjb25zdCBsZW5ndGggPSBtNC5sZW5ndGg7XG4gICAgICAgICAgICAgICAgaWYgKGxlbmd0aCA+IDIgJiYgbTRbbGVuZ3RoIC0gMV0gPT09ICdcXG4nKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBtNFtsZW5ndGggLSAyXSA9PT0gJ1xccicgPyAnXFxyXFxuJyA6ICdcXG4nO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAnJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIC8vIFdlIG1hdGNoIGEgc3RyaW5nXG4gICAgICAgICAgICAgICAgcmV0dXJuIG1hdGNoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgIHJldHVybiByZXN1bHQ7XG59XG4iXX0= |
\ | No newline at end of file |