You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
/** * @fileoverview Require or disallow Unicode BOM * @author Andrew Johnston <https://github.com/ehjay>
*/ "use strict";
//------------------------------------------------------------------------------
// Rule Definition
//------------------------------------------------------------------------------
module.exports = { meta: { type: "layout",
docs: { description: "require or disallow Unicode byte order mark (BOM)", category: "Stylistic Issues", recommended: false, url: "https://eslint.org/docs/rules/unicode-bom" },
fixable: "whitespace",
schema: [ { enum: ["always", "never"] } ], messages: { expected: "Expected Unicode BOM (Byte Order Mark).", unexpected: "Unexpected Unicode BOM (Byte Order Mark)." } },
create(context) {
//--------------------------------------------------------------------------
// Public
//--------------------------------------------------------------------------
return {
Program: function checkUnicodeBOM(node) {
const sourceCode = context.getSourceCode(), location = { column: 0, line: 1 }, requireBOM = context.options[0] || "never";
if (!sourceCode.hasBOM && (requireBOM === "always")) { context.report({ node, loc: location, messageId: "expected", fix(fixer) { return fixer.insertTextBeforeRange([0, 1], "\uFEFF"); } }); } else if (sourceCode.hasBOM && (requireBOM === "never")) { context.report({ node, loc: location, messageId: "unexpected", fix(fixer) { return fixer.removeRange([-1, 0]); } }); } }
};
} };
|