.gitignore added
[dotfiles/.git] / .config / coc / extensions / node_modules / coc-prettier / node_modules / stylelint / lib / rules / no-missing-end-of-source-newline / index.js
1 "use strict";
2
3 const report = require("../../utils/report");
4 const ruleMessages = require("../../utils/ruleMessages");
5 const validateOptions = require("../../utils/validateOptions");
6
7 const ruleName = "no-missing-end-of-source-newline";
8
9 const messages = ruleMessages(ruleName, {
10   rejected: "Unexpected missing end-of-source newline"
11 });
12
13 const rule = function(primary, _, context) {
14   return (root, result) => {
15     const validOptions = validateOptions(result, ruleName, { primary });
16     if (!validOptions) {
17       return;
18     }
19
20     const sourceCss = root.source.input.css;
21     if (sourceCss === "" || sourceCss.slice(-1) === "\n") {
22       return;
23     }
24
25     // Fix
26     if (context.fix) {
27       root.raws.after = context.newline;
28       return;
29     }
30
31     report({
32       message: messages.rejected,
33       node: root,
34       index: sourceCss.length - 1,
35       result,
36       ruleName
37     });
38   };
39 };
40
41 rule.ruleName = ruleName;
42 rule.messages = messages;
43 module.exports = rule;