@sasjs/lint 2.4.1 → 2.4.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/dependabot.yml +1 -1
- package/.github/reviewer-lottery.yml +0 -2
- package/.github/workflows/assign-reviewer.yml +2 -2
- package/.github/workflows/build.yml +2 -0
- package/.github/workflows/publish.yml +2 -0
- package/format/formatFile.d.ts +1 -1
- package/format/formatFile.js +24 -72
- package/format/formatFile.js.map +1 -1
- package/format/formatFolder.d.ts +1 -1
- package/format/formatFolder.js +36 -104
- package/format/formatFolder.js.map +1 -1
- package/format/formatProject.js +10 -45
- package/format/formatProject.js.map +1 -1
- package/format/formatText.d.ts +1 -1
- package/format/formatText.js +6 -46
- package/format/formatText.js.map +1 -1
- package/format/index.js +5 -1
- package/format/index.js.map +1 -1
- package/format/shared.js +16 -16
- package/format/shared.js.map +1 -1
- package/formatExample.js +10 -6
- package/formatExample.js.map +1 -1
- package/index.js +5 -1
- package/index.js.map +1 -1
- package/lint/index.js +5 -1
- package/lint/index.js.map +1 -1
- package/lint/lintFile.d.ts +1 -1
- package/lint/lintFile.js +12 -76
- package/lint/lintFile.js.map +1 -1
- package/lint/lintFolder.d.ts +1 -1
- package/lint/lintFolder.js +23 -114
- package/lint/lintFolder.js.map +1 -1
- package/lint/lintProject.js +10 -45
- package/lint/lintProject.js.map +1 -1
- package/lint/lintText.js +6 -40
- package/lint/lintText.js.map +1 -1
- package/lint/shared.js +24 -45
- package/lint/shared.js.map +1 -1
- package/lintExample.js +45 -5
- package/lintExample.js.map +1 -1
- package/package.json +3 -5
- package/rules/file/hasDoxygenHeader.js +29 -29
- package/rules/file/hasDoxygenHeader.js.map +1 -1
- package/rules/file/hasMacroNameInMend.js +59 -59
- package/rules/file/hasMacroNameInMend.js.map +1 -1
- package/rules/file/hasMacroParentheses.js +25 -27
- package/rules/file/hasMacroParentheses.js.map +1 -1
- package/rules/file/hasRequiredMacroOptions.js +20 -20
- package/rules/file/hasRequiredMacroOptions.js.map +1 -1
- package/rules/file/lineEndings.js +27 -27
- package/rules/file/lineEndings.js.map +1 -1
- package/rules/file/noNestedMacros.js +23 -23
- package/rules/file/noNestedMacros.js.map +1 -1
- package/rules/file/strictMacroDefinition.js +52 -57
- package/rules/file/strictMacroDefinition.js.map +1 -1
- package/rules/line/indentationMultiple.js +16 -16
- package/rules/line/indentationMultiple.js.map +1 -1
- package/rules/line/maxLineLength.js +16 -16
- package/rules/line/maxLineLength.js.map +1 -1
- package/rules/line/noEncodedPasswords.js +18 -18
- package/rules/line/noEncodedPasswords.js.map +1 -1
- package/rules/line/noGremlins.js +29 -69
- package/rules/line/noGremlins.js.map +1 -1
- package/rules/line/noTabs.js +19 -19
- package/rules/line/noTabs.js.map +1 -1
- package/rules/line/noTrailingSpaces.js +16 -16
- package/rules/line/noTrailingSpaces.js.map +1 -1
- package/rules/path/lowerCaseFileNames.js +15 -15
- package/rules/path/lowerCaseFileNames.js.map +1 -1
- package/rules/path/noSpacesInFileNames.js +15 -15
- package/rules/path/noSpacesInFileNames.js.map +1 -1
- package/types/LintConfig.js +28 -68
- package/types/LintConfig.js.map +1 -1
- package/types/index.js +5 -1
- package/types/index.js.map +1 -1
- package/utils/asyncForEach.js +4 -46
- package/utils/asyncForEach.js.map +1 -1
- package/utils/getColumnNumber.js +3 -3
- package/utils/getColumnNumber.js.map +1 -1
- package/utils/getDataSectionsDetail.js +16 -38
- package/utils/getDataSectionsDetail.js.map +1 -1
- package/utils/getHeaderLinesCount.js +8 -30
- package/utils/getHeaderLinesCount.js.map +1 -1
- package/utils/getIndicesOf.js +3 -4
- package/utils/getIndicesOf.js.map +1 -1
- package/utils/getLintConfig.js +14 -52
- package/utils/getLintConfig.js.map +1 -1
- package/utils/getProjectRoot.js +22 -59
- package/utils/getProjectRoot.js.map +1 -1
- package/utils/index.js +5 -1
- package/utils/index.js.map +1 -1
- package/utils/isIgnored.d.ts +1 -1
- package/utils/isIgnored.js +20 -67
- package/utils/isIgnored.js.map +1 -1
- package/utils/listSasFiles.js +5 -39
- package/utils/listSasFiles.js.map +1 -1
- package/utils/parseMacros.d.ts +1 -1
- package/utils/parseMacros.js +29 -50
- package/utils/parseMacros.js.map +1 -1
- package/utils/splitText.js +4 -4
- package/utils/splitText.js.map +1 -1
- package/utils/trimComments.js +8 -10
- package/utils/trimComments.js.map +1 -1
package/utils/listSasFiles.js
CHANGED
|
@@ -8,50 +8,16 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
8
8
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
9
|
});
|
|
10
10
|
};
|
|
11
|
-
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
13
|
-
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
-
function step(op) {
|
|
16
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
-
while (_) try {
|
|
18
|
-
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
-
switch (op[0]) {
|
|
21
|
-
case 0: case 1: t = op; break;
|
|
22
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
-
default:
|
|
26
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
-
if (t[2]) _.ops.pop();
|
|
31
|
-
_.trys.pop(); continue;
|
|
32
|
-
}
|
|
33
|
-
op = body.call(thisArg, _);
|
|
34
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
-
}
|
|
37
|
-
};
|
|
38
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
12
|
exports.listSasFiles = void 0;
|
|
40
|
-
|
|
13
|
+
const file_1 = require("@sasjs/utils/file");
|
|
41
14
|
/**
|
|
42
15
|
* Fetches a list of .sas files in the given path.
|
|
43
16
|
* @returns {Promise<string[]>} resolves with an array of file names.
|
|
44
17
|
*/
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
return
|
|
48
|
-
|
|
49
|
-
case 0: return [4 /*yield*/, file_1.listFilesInFolder(folderPath)];
|
|
50
|
-
case 1:
|
|
51
|
-
files = _a.sent();
|
|
52
|
-
return [2 /*return*/, files.filter(function (f) { return f.endsWith('.sas'); })];
|
|
53
|
-
}
|
|
54
|
-
});
|
|
55
|
-
}); };
|
|
18
|
+
const listSasFiles = (folderPath) => __awaiter(void 0, void 0, void 0, function* () {
|
|
19
|
+
const files = yield (0, file_1.listFilesInFolder)(folderPath);
|
|
20
|
+
return files.filter((f) => f.endsWith('.sas'));
|
|
21
|
+
});
|
|
56
22
|
exports.listSasFiles = listSasFiles;
|
|
57
23
|
//# sourceMappingURL=listSasFiles.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"listSasFiles.js","sourceRoot":"","sources":["../../src/utils/listSasFiles.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"listSasFiles.js","sourceRoot":"","sources":["../../src/utils/listSasFiles.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,4CAAqD;AAErD;;;GAGG;AACI,MAAM,YAAY,GAAG,CAAO,UAAkB,EAAqB,EAAE;IAC1E,MAAM,KAAK,GAAG,MAAM,IAAA,wBAAiB,EAAC,UAAU,CAAC,CAAA;IACjD,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAA;AAChD,CAAC,CAAA,CAAA;AAHY,QAAA,YAAY,gBAGxB"}
|
package/utils/parseMacros.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { LintConfig, Macro } from '../types';
|
|
2
|
-
export declare const parseMacros: (text: string, config?: LintConfig
|
|
2
|
+
export declare const parseMacros: (text: string, config?: LintConfig) => Macro[];
|
package/utils/parseMacros.js
CHANGED
|
@@ -1,59 +1,38 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __read = (this && this.__read) || function (o, n) {
|
|
3
|
-
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
4
|
-
if (!m) return o;
|
|
5
|
-
var i = m.call(o), r, ar = [], e;
|
|
6
|
-
try {
|
|
7
|
-
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
8
|
-
}
|
|
9
|
-
catch (error) { e = { error: error }; }
|
|
10
|
-
finally {
|
|
11
|
-
try {
|
|
12
|
-
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
13
|
-
}
|
|
14
|
-
finally { if (e) throw e.error; }
|
|
15
|
-
}
|
|
16
|
-
return ar;
|
|
17
|
-
};
|
|
18
|
-
var __spreadArray = (this && this.__spreadArray) || function (to, from) {
|
|
19
|
-
for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)
|
|
20
|
-
to[j] = from[i];
|
|
21
|
-
return to;
|
|
22
|
-
};
|
|
23
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
24
3
|
exports.parseMacros = void 0;
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
lines.forEach(
|
|
39
|
-
|
|
4
|
+
const LineEndings_1 = require("../types/LineEndings");
|
|
5
|
+
const trimComments_1 = require("./trimComments");
|
|
6
|
+
const parseMacros = (text, config) => {
|
|
7
|
+
const lineEnding = (config === null || config === void 0 ? void 0 : config.lineEndings) === LineEndings_1.LineEndings.CRLF ? '\r\n' : '\n';
|
|
8
|
+
const lines = text ? text.split(lineEnding) : [];
|
|
9
|
+
const macros = [];
|
|
10
|
+
let isCommentStarted = false;
|
|
11
|
+
let macroStack = [];
|
|
12
|
+
let isReadingMacroDefinition = false;
|
|
13
|
+
let isStatementContinues = true;
|
|
14
|
+
let tempMacroDeclaration = '';
|
|
15
|
+
let tempMacroDeclarationLines = [];
|
|
16
|
+
let tempStartLineNumbers = [];
|
|
17
|
+
lines.forEach((line, lineIndex) => {
|
|
18
|
+
const { statement: trimmedLine, commentStarted } = (0, trimComments_1.trimComments)(line, isCommentStarted);
|
|
40
19
|
isCommentStarted = commentStarted;
|
|
41
20
|
isStatementContinues = !trimmedLine.endsWith(';');
|
|
42
|
-
|
|
21
|
+
const statements = trimmedLine.split(';');
|
|
43
22
|
if (isReadingMacroDefinition) {
|
|
44
23
|
// checking if code is split into statements based on `;` is a part of HTML Encoded Character
|
|
45
24
|
// if it happened, merges two statements into one
|
|
46
|
-
statements.forEach(
|
|
25
|
+
statements.forEach((statement, statementIndex) => {
|
|
47
26
|
if (/&[^\s]{1,5}$/.test(statement)) {
|
|
48
|
-
|
|
49
|
-
|
|
27
|
+
const next = statements[statementIndex];
|
|
28
|
+
const updatedStatement = `${statement};${statements[statementIndex + 1]}`;
|
|
50
29
|
statements.splice(statementIndex, 1, updatedStatement);
|
|
51
30
|
statements.splice(statementIndex + 1, 1);
|
|
52
31
|
}
|
|
53
32
|
});
|
|
54
33
|
}
|
|
55
|
-
statements.forEach(
|
|
56
|
-
|
|
34
|
+
statements.forEach((statement, statementIndex) => {
|
|
35
|
+
const { statement: trimmedStatement, commentStarted } = (0, trimComments_1.trimComments)(statement, isCommentStarted);
|
|
57
36
|
isCommentStarted = commentStarted;
|
|
58
37
|
if (isReadingMacroDefinition) {
|
|
59
38
|
tempMacroDeclaration =
|
|
@@ -63,14 +42,14 @@ var parseMacros = function (text, config) {
|
|
|
63
42
|
tempStartLineNumbers.push(lineIndex + 1);
|
|
64
43
|
if (!Object.is(statements.length - 1, statementIndex)) {
|
|
65
44
|
isReadingMacroDefinition = false;
|
|
66
|
-
|
|
45
|
+
const name = tempMacroDeclaration
|
|
67
46
|
.slice(7, tempMacroDeclaration.length)
|
|
68
47
|
.trim()
|
|
69
48
|
.split('/')[0]
|
|
70
49
|
.split('(')[0]
|
|
71
50
|
.trim();
|
|
72
51
|
macroStack.push({
|
|
73
|
-
name
|
|
52
|
+
name,
|
|
74
53
|
startLineNumbers: tempStartLineNumbers,
|
|
75
54
|
endLineNumber: null,
|
|
76
55
|
parentMacro: macroStack.length
|
|
@@ -86,7 +65,7 @@ var parseMacros = function (text, config) {
|
|
|
86
65
|
}
|
|
87
66
|
}
|
|
88
67
|
if (trimmedStatement.startsWith('%macro')) {
|
|
89
|
-
|
|
68
|
+
const startLineNumber = lineIndex + 1;
|
|
90
69
|
if (isStatementContinues &&
|
|
91
70
|
Object.is(statements.length - 1, statementIndex)) {
|
|
92
71
|
tempMacroDeclaration = trimmedStatement;
|
|
@@ -95,14 +74,14 @@ var parseMacros = function (text, config) {
|
|
|
95
74
|
isReadingMacroDefinition = true;
|
|
96
75
|
return;
|
|
97
76
|
}
|
|
98
|
-
|
|
77
|
+
const name = trimmedStatement
|
|
99
78
|
.slice(7, trimmedStatement.length)
|
|
100
79
|
.trim()
|
|
101
80
|
.split('/')[0]
|
|
102
81
|
.split('(')[0]
|
|
103
82
|
.trim();
|
|
104
83
|
macroStack.push({
|
|
105
|
-
name
|
|
84
|
+
name,
|
|
106
85
|
startLineNumbers: [startLineNumber],
|
|
107
86
|
endLineNumber: null,
|
|
108
87
|
parentMacro: macroStack.length
|
|
@@ -118,8 +97,8 @@ var parseMacros = function (text, config) {
|
|
|
118
97
|
}
|
|
119
98
|
else if (trimmedStatement.startsWith('%mend')) {
|
|
120
99
|
if (macroStack.length) {
|
|
121
|
-
|
|
122
|
-
|
|
100
|
+
const macro = macroStack.pop();
|
|
101
|
+
const mendMacroName = trimmedStatement.split(' ').filter((s) => !!s)[1] || '';
|
|
123
102
|
macro.endLineNumber = lineIndex + 1;
|
|
124
103
|
macro.hasMacroNameInMend = mendMacroName === macro.name;
|
|
125
104
|
macro.mismatchedMendMacroName = macro.hasMacroNameInMend
|
|
@@ -146,7 +125,7 @@ var parseMacros = function (text, config) {
|
|
|
146
125
|
}
|
|
147
126
|
});
|
|
148
127
|
});
|
|
149
|
-
macros.push
|
|
128
|
+
macros.push(...macroStack);
|
|
150
129
|
return macros;
|
|
151
130
|
};
|
|
152
131
|
exports.parseMacros = parseMacros;
|
package/utils/parseMacros.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parseMacros.js","sourceRoot":"","sources":["../../src/utils/parseMacros.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"parseMacros.js","sourceRoot":"","sources":["../../src/utils/parseMacros.ts"],"names":[],"mappings":"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"}
|
package/utils/splitText.js
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.splitText = void 0;
|
|
4
|
-
|
|
4
|
+
const LineEndings_1 = require("../types/LineEndings");
|
|
5
5
|
/**
|
|
6
6
|
* Splits the given content into a list of lines, regardless of CRLF or LF line endings.
|
|
7
7
|
* @param {string} text - the text content to be split into lines.
|
|
8
8
|
* @returns {string[]} an array of lines from the given text
|
|
9
9
|
*/
|
|
10
|
-
|
|
10
|
+
const splitText = (text, config) => {
|
|
11
11
|
if (!text)
|
|
12
12
|
return [];
|
|
13
|
-
|
|
14
|
-
|
|
13
|
+
const expectedLineEndings = config.lineEndings === LineEndings_1.LineEndings.LF ? '\n' : '\r\n';
|
|
14
|
+
const incorrectLineEndings = expectedLineEndings === '\n' ? '\r\n' : '\n';
|
|
15
15
|
text = text.replace(new RegExp(incorrectLineEndings, 'g'), expectedLineEndings);
|
|
16
16
|
// splitting text on '\r\n' was causing some problem
|
|
17
17
|
// as it was retaining carriage return at the end of each line
|
package/utils/splitText.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"splitText.js","sourceRoot":"","sources":["../../src/utils/splitText.ts"],"names":[],"mappings":";;;AACA,
|
|
1
|
+
{"version":3,"file":"splitText.js","sourceRoot":"","sources":["../../src/utils/splitText.ts"],"names":[],"mappings":";;;AACA,sDAAkD;AAElD;;;;GAIG;AACI,MAAM,SAAS,GAAG,CAAC,IAAY,EAAE,MAAkB,EAAY,EAAE;IACtE,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAA;IAEpB,MAAM,mBAAmB,GACvB,MAAM,CAAC,WAAW,KAAK,yBAAW,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAA;IAEvD,MAAM,oBAAoB,GAAG,mBAAmB,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAA;IAEzE,IAAI,GAAG,IAAI,CAAC,OAAO,CACjB,IAAI,MAAM,CAAC,oBAAoB,EAAE,GAAG,CAAC,EACrC,mBAAmB,CACpB,CAAA;IAED,oDAAoD;IACpD,8DAA8D;IAC9D,4EAA4E;IAC5E,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;AAC5C,CAAC,CAAA;AAjBY,QAAA,SAAS,aAiBrB"}
|
package/utils/trimComments.js
CHANGED
|
@@ -1,12 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.trimComments = void 0;
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
if (trimEnd === void 0) { trimEnd = false; }
|
|
7
|
-
var trimmed = trimEnd ? (statement || '').trimEnd() : (statement || '').trim();
|
|
4
|
+
const trimComments = (statement, commentStarted = false, trimEnd = false) => {
|
|
5
|
+
let trimmed = trimEnd ? (statement || '').trimEnd() : (statement || '').trim();
|
|
8
6
|
if (commentStarted || trimmed.startsWith('/*')) {
|
|
9
|
-
|
|
7
|
+
const parts = trimmed.startsWith('/*')
|
|
10
8
|
? trimmed.slice(2).split('*/')
|
|
11
9
|
: trimmed.split('*/');
|
|
12
10
|
if (parts.length === 2) {
|
|
@@ -17,18 +15,18 @@ var trimComments = function (statement, commentStarted, trimEnd) {
|
|
|
17
15
|
}
|
|
18
16
|
else if (parts.length > 2) {
|
|
19
17
|
parts.shift();
|
|
20
|
-
return exports.trimComments(parts.join('*/'), false);
|
|
18
|
+
return (0, exports.trimComments)(parts.join('*/'), false);
|
|
21
19
|
}
|
|
22
20
|
else {
|
|
23
21
|
return { statement: '', commentStarted: true };
|
|
24
22
|
}
|
|
25
23
|
}
|
|
26
24
|
else if (trimmed.includes('/*')) {
|
|
27
|
-
|
|
25
|
+
const statementBeforeCommentStarts = trimmed.slice(0, trimmed.indexOf('/*'));
|
|
28
26
|
trimmed = trimmed.slice(trimmed.indexOf('/*') + 2);
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
27
|
+
const remainingStatement = trimmed.slice(trimmed.indexOf('*/') + 2);
|
|
28
|
+
const result = (0, exports.trimComments)(remainingStatement, false, true);
|
|
29
|
+
const completeStatement = statementBeforeCommentStarts + result.statement;
|
|
32
30
|
return {
|
|
33
31
|
statement: trimEnd
|
|
34
32
|
? completeStatement.trimEnd()
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trimComments.js","sourceRoot":"","sources":["../../src/utils/trimComments.ts"],"names":[],"mappings":";;;AAAO,
|
|
1
|
+
{"version":3,"file":"trimComments.js","sourceRoot":"","sources":["../../src/utils/trimComments.ts"],"names":[],"mappings":";;;AAAO,MAAM,YAAY,GAAG,CAC1B,SAAiB,EACjB,iBAA0B,KAAK,EAC/B,UAAmB,KAAK,EACwB,EAAE;IAClD,IAAI,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAA;IAE9E,IAAI,cAAc,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;QAC9C,MAAM,KAAK,GAAG,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC;YACpC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;YAC9B,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QACvB,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;YACtB,OAAO;gBACL,SAAS,EAAG,KAAK,CAAC,GAAG,EAAa,CAAC,IAAI,EAAE;gBACzC,cAAc,EAAE,KAAK;aACtB,CAAA;SACF;aAAM,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;YAC3B,KAAK,CAAC,KAAK,EAAE,CAAA;YACb,OAAO,IAAA,oBAAY,EAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,CAAA;SAC7C;aAAM;YACL,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,CAAA;SAC/C;KACF;SAAM,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;QACjC,MAAM,4BAA4B,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAA;QAC5E,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;QAClD,MAAM,kBAAkB,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;QAEnE,MAAM,MAAM,GAAG,IAAA,oBAAY,EAAC,kBAAkB,EAAE,KAAK,EAAE,IAAI,CAAC,CAAA;QAC5D,MAAM,iBAAiB,GAAG,4BAA4B,GAAG,MAAM,CAAC,SAAS,CAAA;QACzE,OAAO;YACL,SAAS,EAAE,OAAO;gBAChB,CAAC,CAAC,iBAAiB,CAAC,OAAO,EAAE;gBAC7B,CAAC,CAAC,iBAAiB,CAAC,IAAI,EAAE;YAC5B,cAAc,EAAE,MAAM,CAAC,cAAc;SACtC,CAAA;KACF;IACD,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,CAAA;AACtD,CAAC,CAAA;AArCY,QAAA,YAAY,gBAqCxB"}
|