1 | /**
|
2 | * @module
|
3 | * @see {@link https://www.npmjs.com/package/standard|JavaScript Standard Style}
|
4 | */
|
5 |
|
6 | ;
|
7 |
|
8 | const standard = require("standard");
|
9 | const SEVERITY = require("../severity");
|
10 |
|
11 | /**
|
12 | * Initialise un checker pour JavaScript Standard Style.
|
13 | *
|
14 | * @returns {object} Le patron et les options par défaut.
|
15 | */
|
16 | const configure = function () {
|
17 | return {
|
18 | "patterns": "*.js",
|
19 | "linters": { "standard": null }
|
20 | };
|
21 | };
|
22 |
|
23 | /**
|
24 | * Vérifie un fichier avec le linter <strong>JavaScript Standard Style</strong>.
|
25 | *
|
26 | * @param {string} file Le fichier qui sera vérifié.
|
27 | * @param {number} level Le niveau de sévérité minimum des notifications
|
28 | * retournées.
|
29 | * @returns {Promise.<Array.<object>>} Une promesse retournant la liste des
|
30 | * notifications.
|
31 | */
|
32 | const wrapper = async function (file, level) {
|
33 | if (SEVERITY.ERROR > level) {
|
34 | return [];
|
35 | }
|
36 |
|
37 | const results = await new Promise((resolve) => {
|
38 | standard.lintFiles([file], (_, r) => resolve(r));
|
39 | });
|
40 | return results.results[0].messages.map((result) => ({
|
41 | "file": file,
|
42 | "linter": "standard",
|
43 | "rule": result.ruleId,
|
44 | "message": result.message,
|
45 | "locations": [{
|
46 | "line": result.line,
|
47 | "column": result.column
|
48 | }]
|
49 | }));
|
50 | };
|
51 |
|
52 | module.exports = { configure, wrapper };
|