@sasjs/lint 2.4.0 → 2.4.2
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/.all-contributorsrc +11 -1
- package/.github/dependabot.yml +1 -1
- package/.github/reviewer-lottery.yml +0 -2
- package/.github/workflows/assign-reviewer.yml +2 -2
- package/README.md +41 -37
- 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 -3
- 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/format/formatText.js
CHANGED
|
@@ -8,53 +8,13 @@ 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.formatText = void 0;
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
return
|
|
45
|
-
|
|
46
|
-
case 0:
|
|
47
|
-
_a = configuration;
|
|
48
|
-
if (_a) return [3 /*break*/, 2];
|
|
49
|
-
return [4 /*yield*/, utils_1.getLintConfig()];
|
|
50
|
-
case 1:
|
|
51
|
-
_a = (_b.sent());
|
|
52
|
-
_b.label = 2;
|
|
53
|
-
case 2:
|
|
54
|
-
config = _a;
|
|
55
|
-
return [2 /*return*/, shared_1.processText(text, config)];
|
|
56
|
-
}
|
|
57
|
-
});
|
|
58
|
-
}); };
|
|
13
|
+
const utils_1 = require("../utils");
|
|
14
|
+
const shared_1 = require("./shared");
|
|
15
|
+
const formatText = (text, configuration) => __awaiter(void 0, void 0, void 0, function* () {
|
|
16
|
+
const config = configuration || (yield (0, utils_1.getLintConfig)());
|
|
17
|
+
return (0, shared_1.processText)(text, config);
|
|
18
|
+
});
|
|
59
19
|
exports.formatText = formatText;
|
|
60
20
|
//# sourceMappingURL=formatText.js.map
|
package/format/formatText.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formatText.js","sourceRoot":"","sources":["../../src/format/formatText.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"formatText.js","sourceRoot":"","sources":["../../src/format/formatText.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,oCAAwC;AACxC,qCAAsC;AAE/B,MAAM,UAAU,GAAG,CAAO,IAAY,EAAE,aAA0B,EAAE,EAAE;IAC3E,MAAM,MAAM,GAAG,aAAa,IAAI,CAAC,MAAM,IAAA,qBAAa,GAAE,CAAC,CAAA;IACvD,OAAO,IAAA,oBAAW,EAAC,IAAI,EAAE,MAAM,CAAC,CAAA;AAClC,CAAC,CAAA,CAAA;AAHY,QAAA,UAAU,cAGtB"}
|
package/format/index.js
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|
package/format/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/format/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/format/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAA4B;AAC5B,+CAA4B;AAC5B,iDAA8B;AAC9B,kDAA+B"}
|
package/format/shared.js
CHANGED
|
@@ -1,32 +1,32 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.processLine = exports.processText = void 0;
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
return exports.processLine(config, line);
|
|
4
|
+
const LineEndings_1 = require("../types/LineEndings");
|
|
5
|
+
const splitText_1 = require("../utils/splitText");
|
|
6
|
+
const processText = (text, config) => {
|
|
7
|
+
const processedText = processContent(config, text);
|
|
8
|
+
const lines = (0, splitText_1.splitText)(processedText, config);
|
|
9
|
+
const formattedLines = lines.map((line) => {
|
|
10
|
+
return (0, exports.processLine)(config, line);
|
|
11
11
|
});
|
|
12
|
-
|
|
12
|
+
const configuredLineEnding = config.lineEndings === LineEndings_1.LineEndings.LF ? '\n' : '\r\n';
|
|
13
13
|
return formattedLines.join(configuredLineEnding);
|
|
14
14
|
};
|
|
15
15
|
exports.processText = processText;
|
|
16
|
-
|
|
17
|
-
|
|
16
|
+
const processContent = (config, content) => {
|
|
17
|
+
let processedContent = content;
|
|
18
18
|
config.fileLintRules
|
|
19
|
-
.filter(
|
|
20
|
-
.forEach(
|
|
19
|
+
.filter((r) => !!r.fix)
|
|
20
|
+
.forEach((rule) => {
|
|
21
21
|
processedContent = rule.fix(processedContent, config);
|
|
22
22
|
});
|
|
23
23
|
return processedContent;
|
|
24
24
|
};
|
|
25
|
-
|
|
26
|
-
|
|
25
|
+
const processLine = (config, line) => {
|
|
26
|
+
let processedLine = line;
|
|
27
27
|
config.lineLintRules
|
|
28
|
-
.filter(
|
|
29
|
-
.forEach(
|
|
28
|
+
.filter((r) => !!r.fix)
|
|
29
|
+
.forEach((rule) => {
|
|
30
30
|
processedLine = rule.fix(processedLine, config);
|
|
31
31
|
});
|
|
32
32
|
return processedLine;
|
package/format/shared.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../../src/format/shared.ts"],"names":[],"mappings":";;;AACA,
|
|
1
|
+
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../../src/format/shared.ts"],"names":[],"mappings":";;;AACA,sDAAkD;AAClD,kDAA8C;AAEvC,MAAM,WAAW,GAAG,CAAC,IAAY,EAAE,MAAkB,EAAE,EAAE;IAC9D,MAAM,aAAa,GAAG,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;IAClD,MAAM,KAAK,GAAG,IAAA,qBAAS,EAAC,aAAa,EAAE,MAAM,CAAC,CAAA;IAC9C,MAAM,cAAc,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACxC,OAAO,IAAA,mBAAW,EAAC,MAAM,EAAE,IAAI,CAAC,CAAA;IAClC,CAAC,CAAC,CAAA;IAEF,MAAM,oBAAoB,GACxB,MAAM,CAAC,WAAW,KAAK,yBAAW,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAA;IACvD,OAAO,cAAc,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAA;AAClD,CAAC,CAAA;AAVY,QAAA,WAAW,eAUvB;AAED,MAAM,cAAc,GAAG,CAAC,MAAkB,EAAE,OAAe,EAAU,EAAE;IACrE,IAAI,gBAAgB,GAAG,OAAO,CAAA;IAC9B,MAAM,CAAC,aAAa;SACjB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;SACtB,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QAChB,gBAAgB,GAAG,IAAI,CAAC,GAAI,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAA;IACxD,CAAC,CAAC,CAAA;IAEJ,OAAO,gBAAgB,CAAA;AACzB,CAAC,CAAA;AAEM,MAAM,WAAW,GAAG,CAAC,MAAkB,EAAE,IAAY,EAAU,EAAE;IACtE,IAAI,aAAa,GAAG,IAAI,CAAA;IACxB,MAAM,CAAC,aAAa;SACjB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;SACtB,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QAChB,aAAa,GAAG,IAAI,CAAC,GAAI,CAAC,aAAa,EAAE,MAAM,CAAC,CAAA;IAClD,CAAC,CAAC,CAAA;IAEJ,OAAO,aAAa,CAAA;AACtB,CAAC,CAAA;AATY,QAAA,WAAW,eASvB"}
|
package/formatExample.js
CHANGED
|
@@ -1,14 +1,18 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
const formatText_1 = require("./format/formatText");
|
|
4
|
+
const lint_1 = require("./lint");
|
|
5
|
+
const content = `%put 'Hello';
|
|
6
|
+
%put 'World';
|
|
7
|
+
%macro somemacro()
|
|
8
|
+
%put 'test';
|
|
9
|
+
%mend;\r\n`;
|
|
6
10
|
console.log(content);
|
|
7
|
-
lint_1.lintText(content).then(
|
|
11
|
+
(0, lint_1.lintText)(content).then((diagnostics) => {
|
|
8
12
|
console.log('Before Formatting:');
|
|
9
13
|
console.table(diagnostics);
|
|
10
|
-
formatText_1.formatText(content).then(
|
|
11
|
-
lint_1.lintText(formattedText).then(
|
|
14
|
+
(0, formatText_1.formatText)(content).then((formattedText) => {
|
|
15
|
+
(0, lint_1.lintText)(formattedText).then((newDiagnostics) => {
|
|
12
16
|
console.log('After Formatting:');
|
|
13
17
|
console.log(formattedText);
|
|
14
18
|
console.table(newDiagnostics);
|
package/formatExample.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formatExample.js","sourceRoot":"","sources":["../src/formatExample.ts"],"names":[],"mappings":";;AAAA,
|
|
1
|
+
{"version":3,"file":"formatExample.js","sourceRoot":"","sources":["../src/formatExample.ts"],"names":[],"mappings":";;AAAA,oDAAgD;AAChD,iCAAiC;AAEjC,MAAM,OAAO,GAAG;;;;WAIL,CAAA;AAEX,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;AACpB,IAAA,eAAQ,EAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,EAAE;IACrC,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAA;IACjC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;IAC1B,IAAA,uBAAU,EAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,aAAa,EAAE,EAAE;QACzC,IAAA,eAAQ,EAAC,aAAa,CAAC,CAAC,IAAI,CAAC,CAAC,cAAc,EAAE,EAAE;YAC9C,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAA;YAChC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAA;YAC1B,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,CAAA;QAC/B,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
|
package/index.js
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|
package/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAwB;AACxB,yCAAsB;AACtB,0CAAuB;AACvB,0CAAuB"}
|
package/lint/index.js
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|
package/lint/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/lint/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/lint/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6CAA0B;AAC1B,6CAA0B;AAC1B,+CAA4B;AAC5B,gDAA6B"}
|
package/lint/lintFile.d.ts
CHANGED
|
@@ -5,4 +5,4 @@ import { Diagnostic, LintConfig } from '../types';
|
|
|
5
5
|
* @param {LintConfig} configuration - an optional configuration. When not passed in, this is read from the .sasjslint file.
|
|
6
6
|
* @returns {Promise<Diagnostic[]>} array of diagnostic objects, each containing a warning, line number and column number.
|
|
7
7
|
*/
|
|
8
|
-
export declare const lintFile: (filePath: string, configuration?: LintConfig
|
|
8
|
+
export declare const lintFile: (filePath: string, configuration?: LintConfig) => Promise<Diagnostic[]>;
|
package/lint/lintFile.js
CHANGED
|
@@ -8,89 +8,25 @@ 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
|
-
var __read = (this && this.__read) || function (o, n) {
|
|
39
|
-
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
40
|
-
if (!m) return o;
|
|
41
|
-
var i = m.call(o), r, ar = [], e;
|
|
42
|
-
try {
|
|
43
|
-
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
44
|
-
}
|
|
45
|
-
catch (error) { e = { error: error }; }
|
|
46
|
-
finally {
|
|
47
|
-
try {
|
|
48
|
-
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
49
|
-
}
|
|
50
|
-
finally { if (e) throw e.error; }
|
|
51
|
-
}
|
|
52
|
-
return ar;
|
|
53
|
-
};
|
|
54
|
-
var __spreadArray = (this && this.__spreadArray) || function (to, from) {
|
|
55
|
-
for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)
|
|
56
|
-
to[j] = from[i];
|
|
57
|
-
return to;
|
|
58
|
-
};
|
|
59
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
60
12
|
exports.lintFile = void 0;
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
13
|
+
const file_1 = require("@sasjs/utils/file");
|
|
14
|
+
const utils_1 = require("../utils");
|
|
15
|
+
const shared_1 = require("./shared");
|
|
64
16
|
/**
|
|
65
17
|
* Analyses and produces a set of diagnostics for the file at the given path.
|
|
66
18
|
* @param {string} filePath - the path to the file to be linted.
|
|
67
19
|
* @param {LintConfig} configuration - an optional configuration. When not passed in, this is read from the .sasjslint file.
|
|
68
20
|
* @returns {Promise<Diagnostic[]>} array of diagnostic objects, each containing a warning, line number and column number.
|
|
69
21
|
*/
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
if (_a) return [3 /*break*/, 3];
|
|
80
|
-
return [4 /*yield*/, utils_1.getLintConfig()];
|
|
81
|
-
case 2:
|
|
82
|
-
_a = (_b.sent());
|
|
83
|
-
_b.label = 3;
|
|
84
|
-
case 3:
|
|
85
|
-
config = _a;
|
|
86
|
-
return [4 /*yield*/, file_1.readFile(filePath)];
|
|
87
|
-
case 4:
|
|
88
|
-
text = _b.sent();
|
|
89
|
-
fileDiagnostics = shared_1.processFile(filePath, config);
|
|
90
|
-
textDiagnostics = shared_1.processText(text, config);
|
|
91
|
-
return [2 /*return*/, __spreadArray(__spreadArray([], __read(fileDiagnostics)), __read(textDiagnostics))];
|
|
92
|
-
}
|
|
93
|
-
});
|
|
94
|
-
}); };
|
|
22
|
+
const lintFile = (filePath, configuration) => __awaiter(void 0, void 0, void 0, function* () {
|
|
23
|
+
if (yield (0, utils_1.isIgnored)(filePath, configuration))
|
|
24
|
+
return [];
|
|
25
|
+
const config = configuration || (yield (0, utils_1.getLintConfig)());
|
|
26
|
+
const text = yield (0, file_1.readFile)(filePath);
|
|
27
|
+
const fileDiagnostics = (0, shared_1.processFile)(filePath, config);
|
|
28
|
+
const textDiagnostics = (0, shared_1.processText)(text, config);
|
|
29
|
+
return [...fileDiagnostics, ...textDiagnostics];
|
|
30
|
+
});
|
|
95
31
|
exports.lintFile = lintFile;
|
|
96
32
|
//# sourceMappingURL=lintFile.js.map
|
package/lint/lintFile.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lintFile.js","sourceRoot":"","sources":["../../src/lint/lintFile.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"lintFile.js","sourceRoot":"","sources":["../../src/lint/lintFile.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,4CAA4C;AAE5C,oCAAmD;AACnD,qCAAmD;AAEnD;;;;;GAKG;AACI,MAAM,QAAQ,GAAG,CACtB,QAAgB,EAChB,aAA0B,EACH,EAAE;IACzB,IAAI,MAAM,IAAA,iBAAS,EAAC,QAAQ,EAAE,aAAa,CAAC;QAAE,OAAO,EAAE,CAAA;IAEvD,MAAM,MAAM,GAAG,aAAa,IAAI,CAAC,MAAM,IAAA,qBAAa,GAAE,CAAC,CAAA;IACvD,MAAM,IAAI,GAAG,MAAM,IAAA,eAAQ,EAAC,QAAQ,CAAC,CAAA;IAErC,MAAM,eAAe,GAAG,IAAA,oBAAW,EAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;IACrD,MAAM,eAAe,GAAG,IAAA,oBAAW,EAAC,IAAI,EAAE,MAAM,CAAC,CAAA;IAEjD,OAAO,CAAC,GAAG,eAAe,EAAE,GAAG,eAAe,CAAC,CAAA;AACjD,CAAC,CAAA,CAAA;AAbY,QAAA,QAAQ,YAapB"}
|
package/lint/lintFolder.d.ts
CHANGED
|
@@ -5,4 +5,4 @@ import { Diagnostic, LintConfig } from '../types';
|
|
|
5
5
|
* @param {LintConfig} configuration - an optional configuration. When not passed in, this is read from the .sasjslint file.
|
|
6
6
|
* @returns {Promise<Map<string, Diagnostic[]>>} Resolves with a map with array of diagnostic objects, each containing a warning, line number and column number, and grouped by file path.
|
|
7
7
|
*/
|
|
8
|
-
export declare const lintFolder: (folderPath: string, configuration?: LintConfig
|
|
8
|
+
export declare const lintFolder: (folderPath: string, configuration?: LintConfig) => Promise<Map<string, Diagnostic[]>>;
|
package/lint/lintFolder.js
CHANGED
|
@@ -8,64 +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
|
-
var __read = (this && this.__read) || function (o, n) {
|
|
39
|
-
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
40
|
-
if (!m) return o;
|
|
41
|
-
var i = m.call(o), r, ar = [], e;
|
|
42
|
-
try {
|
|
43
|
-
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
44
|
-
}
|
|
45
|
-
catch (error) { e = { error: error }; }
|
|
46
|
-
finally {
|
|
47
|
-
try {
|
|
48
|
-
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
49
|
-
}
|
|
50
|
-
finally { if (e) throw e.error; }
|
|
51
|
-
}
|
|
52
|
-
return ar;
|
|
53
|
-
};
|
|
54
|
-
var __spreadArray = (this && this.__spreadArray) || function (to, from) {
|
|
55
|
-
for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)
|
|
56
|
-
to[j] = from[i];
|
|
57
|
-
return to;
|
|
58
|
-
};
|
|
59
11
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
60
12
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
61
13
|
};
|
|
62
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
63
15
|
exports.lintFolder = void 0;
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
16
|
+
const file_1 = require("@sasjs/utils/file");
|
|
17
|
+
const path_1 = __importDefault(require("path"));
|
|
18
|
+
const utils_1 = require("../utils");
|
|
19
|
+
const lintFile_1 = require("./lintFile");
|
|
20
|
+
const excludeFolders = [
|
|
69
21
|
'.git',
|
|
70
22
|
'.github',
|
|
71
23
|
'.vscode',
|
|
@@ -79,66 +31,23 @@ var excludeFolders = [
|
|
|
79
31
|
* @param {LintConfig} configuration - an optional configuration. When not passed in, this is read from the .sasjslint file.
|
|
80
32
|
* @returns {Promise<Map<string, Diagnostic[]>>} Resolves with a map with array of diagnostic objects, each containing a warning, line number and column number, and grouped by file path.
|
|
81
33
|
*/
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
return [4 /*yield*/, utils_1.listSasFiles(folderPath)];
|
|
101
|
-
case 4:
|
|
102
|
-
fileNames = _b.sent();
|
|
103
|
-
return [4 /*yield*/, utils_1.asyncForEach(fileNames, function (fileName) { return __awaiter(void 0, void 0, void 0, function () {
|
|
104
|
-
var filePath, _a, _b, _c;
|
|
105
|
-
return __generator(this, function (_d) {
|
|
106
|
-
switch (_d.label) {
|
|
107
|
-
case 0:
|
|
108
|
-
filePath = path_1.default.join(folderPath, fileName);
|
|
109
|
-
_b = (_a = diagnostics).set;
|
|
110
|
-
_c = [filePath];
|
|
111
|
-
return [4 /*yield*/, lintFile_1.lintFile(filePath, config)];
|
|
112
|
-
case 1:
|
|
113
|
-
_b.apply(_a, _c.concat([_d.sent()]));
|
|
114
|
-
return [2 /*return*/];
|
|
115
|
-
}
|
|
116
|
-
});
|
|
117
|
-
}); })];
|
|
118
|
-
case 5:
|
|
119
|
-
_b.sent();
|
|
120
|
-
return [4 /*yield*/, file_1.listSubFoldersInFolder(folderPath)];
|
|
121
|
-
case 6:
|
|
122
|
-
subFolders = (_b.sent()).filter(function (f) { return !excludeFolders.includes(f); });
|
|
123
|
-
return [4 /*yield*/, utils_1.asyncForEach(subFolders, function (subFolder) { return __awaiter(void 0, void 0, void 0, function () {
|
|
124
|
-
var subFolderPath, subFolderDiagnostics;
|
|
125
|
-
return __generator(this, function (_a) {
|
|
126
|
-
switch (_a.label) {
|
|
127
|
-
case 0:
|
|
128
|
-
subFolderPath = path_1.default.join(folderPath, subFolder);
|
|
129
|
-
return [4 /*yield*/, exports.lintFolder(subFolderPath, config)];
|
|
130
|
-
case 1:
|
|
131
|
-
subFolderDiagnostics = _a.sent();
|
|
132
|
-
diagnostics = new Map(__spreadArray(__spreadArray([], __read(diagnostics)), __read(subFolderDiagnostics)));
|
|
133
|
-
return [2 /*return*/];
|
|
134
|
-
}
|
|
135
|
-
});
|
|
136
|
-
}); })];
|
|
137
|
-
case 7:
|
|
138
|
-
_b.sent();
|
|
139
|
-
return [2 /*return*/, diagnostics];
|
|
140
|
-
}
|
|
141
|
-
});
|
|
142
|
-
}); };
|
|
34
|
+
const lintFolder = (folderPath, configuration) => __awaiter(void 0, void 0, void 0, function* () {
|
|
35
|
+
const config = configuration || (yield (0, utils_1.getLintConfig)());
|
|
36
|
+
let diagnostics = new Map();
|
|
37
|
+
if (yield (0, utils_1.isIgnored)(folderPath, config))
|
|
38
|
+
return diagnostics;
|
|
39
|
+
const fileNames = yield (0, utils_1.listSasFiles)(folderPath);
|
|
40
|
+
yield (0, utils_1.asyncForEach)(fileNames, (fileName) => __awaiter(void 0, void 0, void 0, function* () {
|
|
41
|
+
const filePath = path_1.default.join(folderPath, fileName);
|
|
42
|
+
diagnostics.set(filePath, yield (0, lintFile_1.lintFile)(filePath, config));
|
|
43
|
+
}));
|
|
44
|
+
const subFolders = (yield (0, file_1.listSubFoldersInFolder)(folderPath)).filter((f) => !excludeFolders.includes(f));
|
|
45
|
+
yield (0, utils_1.asyncForEach)(subFolders, (subFolder) => __awaiter(void 0, void 0, void 0, function* () {
|
|
46
|
+
const subFolderPath = path_1.default.join(folderPath, subFolder);
|
|
47
|
+
const subFolderDiagnostics = yield (0, exports.lintFolder)(subFolderPath, config);
|
|
48
|
+
diagnostics = new Map([...diagnostics, ...subFolderDiagnostics]);
|
|
49
|
+
}));
|
|
50
|
+
return diagnostics;
|
|
51
|
+
});
|
|
143
52
|
exports.lintFolder = lintFolder;
|
|
144
53
|
//# sourceMappingURL=lintFolder.js.map
|
package/lint/lintFolder.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lintFolder.js","sourceRoot":"","sources":["../../src/lint/lintFolder.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"lintFolder.js","sourceRoot":"","sources":["../../src/lint/lintFolder.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,4CAA0D;AAC1D,gDAAuB;AAEvB,oCAA+E;AAC/E,yCAAqC;AAErC,MAAM,cAAc,GAAG;IACrB,MAAM;IACN,SAAS;IACT,SAAS;IACT,cAAc;IACd,YAAY;IACZ,cAAc;CACf,CAAA;AAED;;;;;GAKG;AACI,MAAM,UAAU,GAAG,CACxB,UAAkB,EAClB,aAA0B,EAC1B,EAAE;IACF,MAAM,MAAM,GAAG,aAAa,IAAI,CAAC,MAAM,IAAA,qBAAa,GAAE,CAAC,CAAA;IACvD,IAAI,WAAW,GAA8B,IAAI,GAAG,EAAwB,CAAA;IAE5E,IAAI,MAAM,IAAA,iBAAS,EAAC,UAAU,EAAE,MAAM,CAAC;QAAE,OAAO,WAAW,CAAA;IAE3D,MAAM,SAAS,GAAG,MAAM,IAAA,oBAAY,EAAC,UAAU,CAAC,CAAA;IAChD,MAAM,IAAA,oBAAY,EAAC,SAAS,EAAE,CAAO,QAAQ,EAAE,EAAE;QAC/C,MAAM,QAAQ,GAAG,cAAI,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;QAChD,WAAW,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,IAAA,mBAAQ,EAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAA;IAC7D,CAAC,CAAA,CAAC,CAAA;IAEF,MAAM,UAAU,GAAG,CAAC,MAAM,IAAA,6BAAsB,EAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAClE,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,CAC3C,CAAA;IAED,MAAM,IAAA,oBAAY,EAAC,UAAU,EAAE,CAAO,SAAS,EAAE,EAAE;QACjD,MAAM,aAAa,GAAG,cAAI,CAAC,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,CAAA;QACtD,MAAM,oBAAoB,GAAG,MAAM,IAAA,kBAAU,EAAC,aAAa,EAAE,MAAM,CAAC,CAAA;QACpE,WAAW,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,WAAW,EAAE,GAAG,oBAAoB,CAAC,CAAC,CAAA;IAClE,CAAC,CAAA,CAAC,CAAA;IAEF,OAAO,WAAW,CAAA;AACpB,CAAC,CAAA,CAAA;AA1BY,QAAA,UAAU,cA0BtB"}
|
package/lint/lintProject.js
CHANGED
|
@@ -8,56 +8,21 @@ 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.lintProject = void 0;
|
|
40
|
-
|
|
41
|
-
|
|
13
|
+
const getProjectRoot_1 = require("../utils/getProjectRoot");
|
|
14
|
+
const lintFolder_1 = require("./lintFolder");
|
|
42
15
|
/**
|
|
43
16
|
* Analyses and produces a set of diagnostics for the current project.
|
|
44
17
|
* @returns {Promise<Map<string, Diagnostic[]>>} Resolves with a map with array of diagnostic objects, each containing a warning, line number and column number, and grouped by file path.
|
|
45
18
|
*/
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
throw new Error('SASjs Project Root was not found.');
|
|
55
|
-
}
|
|
56
|
-
console.info("Linting all .sas files under " + projectRoot);
|
|
57
|
-
return [4 /*yield*/, lintFolder_1.lintFolder(projectRoot)];
|
|
58
|
-
case 2: return [2 /*return*/, _a.sent()];
|
|
59
|
-
}
|
|
60
|
-
});
|
|
61
|
-
}); };
|
|
19
|
+
const lintProject = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
20
|
+
const projectRoot = (yield (0, getProjectRoot_1.getProjectRoot)()) || process.currentDir;
|
|
21
|
+
if (!projectRoot) {
|
|
22
|
+
throw new Error('SASjs Project Root was not found.');
|
|
23
|
+
}
|
|
24
|
+
console.info(`Linting all .sas files under ${projectRoot}`);
|
|
25
|
+
return yield (0, lintFolder_1.lintFolder)(projectRoot);
|
|
26
|
+
});
|
|
62
27
|
exports.lintProject = lintProject;
|
|
63
28
|
//# sourceMappingURL=lintProject.js.map
|
package/lint/lintProject.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lintProject.js","sourceRoot":"","sources":["../../src/lint/lintProject.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"lintProject.js","sourceRoot":"","sources":["../../src/lint/lintProject.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,4DAAwD;AACxD,6CAAyC;AAEzC;;;GAGG;AACI,MAAM,WAAW,GAAG,GAAS,EAAE;IACpC,MAAM,WAAW,GAAG,CAAC,MAAM,IAAA,+BAAc,GAAE,CAAC,IAAI,OAAO,CAAC,UAAU,CAAA;IAClE,IAAI,CAAC,WAAW,EAAE;QAChB,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAA;KACrD;IAED,OAAO,CAAC,IAAI,CAAC,gCAAgC,WAAW,EAAE,CAAC,CAAA;IAE3D,OAAO,MAAM,IAAA,uBAAU,EAAC,WAAW,CAAC,CAAA;AACtC,CAAC,CAAA,CAAA;AATY,QAAA,WAAW,eASvB"}
|