From 31886d3e5abfbf9ab720e494df8a998897281de5 Mon Sep 17 00:00:00 2001 From: Justin Muller Date: Fri, 20 Nov 2020 17:18:17 -0800 Subject: [PATCH 01/13] fix for .vue files to inject header comment in script tag. --- lib/rules/header.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lib/rules/header.js b/lib/rules/header.js index d4a609f..020fc3c 100644 --- a/lib/rules/header.js +++ b/lib/rules/header.js @@ -97,6 +97,9 @@ function getEOL(options) { } function hasHeader(src) { + if (src.substr(0, 8) === '", + options: ["line", "Copyright 2015, My Company"] + }, + { + code: "", + options: ["block", "*\n * Copyright 2015\n * My Company\n *"] + }, ], invalid: [ { @@ -272,6 +283,22 @@ ruleTester.run("header", rule, { {message: "no newline after header"} ], output: "//Copyright 2020\n//My Company\n\nconsole.log(1);\n//Comment\nconsole.log(2);\n//Comment" - } + }, + { + code: "", + options: ["line", "Copyright 2015, My Company"], + errors: [ + {message: "missing header"} + ], + output: "" + }, + { + code: "", + options: ["block", "Copyright 2015, My Company"], + errors: [ + {message: "missing header"} + ], + output: "" + }, ] }); From 1fb1648660bc65a9559ca65cb982a97f09d38f19 Mon Sep 17 00:00:00 2001 From: Justin Muller Date: Mon, 23 Nov 2020 13:00:54 -0800 Subject: [PATCH 04/13] updated readme with information about vue support. --- README.md | 34 +++++++++++++++++++++++++++++++--- 1 file changed, 31 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 8e4fa81..3e89ae1 100644 --- a/README.md +++ b/README.md @@ -137,7 +137,7 @@ When you use a regular expression `pattern`, you can also provide a `template` p ], "rules": { "header/header": [2, "block", [ - {"pattern": " Copyright \\d{4}", "template": " Copyright 2019"}, + {"pattern": " Copyright \\d{4}", "template": " Copyright 2019"}, "My Company" ]] } @@ -154,6 +154,12 @@ The rule works with both unix and windows line endings. For ESLint `--fix`, the ``` Possible values are `unix` for `\n` and `windows` for `\r\n` line endings. +### Vue support + +`eslint-plugin-header` now supports `.vue` files. Please see installation instructions for [eslint-plugin-vue](https://eslint.vuejs.org/user-guide/) before trying to integrate with `eslint-plugin-header`. There are some caveats to be aware of: +* ` +``` + +`"line", ["Copyright 2015", "My Company"]]`: + +```vue + +``` + + ## License MIT From a0fb72f93da101d9c0c342468d8a0ff1be539a42 Mon Sep 17 00:00:00 2001 From: Justin Muller Date: Mon, 23 Nov 2020 13:07:45 -0800 Subject: [PATCH 05/13] updating examples so they are easier to copy paste into .eslintrc --- README.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 3e89ae1..3e2ef4d 100644 --- a/README.md +++ b/README.md @@ -162,16 +162,16 @@ Possible values are `unix` for `\n` and `windows` for `\r\n` line endings. ## Examples -The following examples are all valid. +The following rules are all valid. -`"block", "Copyright 2015, My Company"`: +`"header/header": [2, "block", "Copyright 2015, My Company"]`: ```js /*Copyright 2015, My Company*/ console.log(1); ``` -`"line", ["Copyright 2015", "My Company"]]`: +`"header/header": [2, "line", ["Copyright 2015", "My Company"]]`: ```js //Copyright 2015 @@ -179,7 +179,7 @@ console.log(1); console.log(1); ``` -`"line", [{pattern: "^Copyright \\d{4}$"}, {pattern: "^My Company$"}]]`: +`"header/header": [2, "line", [{pattern: "^Copyright \\d{4}$"}, {pattern: "^My Company$"}]]`: ```js //Copyright 2017 @@ -208,7 +208,7 @@ console.log(1); ### With Vue support -`"block", "Copyright 2015, My Company"`: +`"header/header": [2, "block", "Copyright 2015, My Company"]`: ```vue ``` -`"line", ["Copyright 2015", "My Company"]]`: +`"header/header": [2, "line", ["Copyright 2015", "My Company"]]`: ```vue ``` - +--- `"header/header": [2, "line", ["Copyright 2015", "My Company"]]`: ```vue @@ -226,7 +229,7 @@ console.log(1); console.log(1); ``` - +--- ## License From ef55ce547ecb6801da326c75374711f0865a57a6 Mon Sep 17 00:00:00 2001 From: Justin Muller Date: Mon, 23 Nov 2020 13:13:15 -0800 Subject: [PATCH 07/13] removing colon to reduce human error when copy paste examples. --- README.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 83b894c..5ce1b3d 100644 --- a/README.md +++ b/README.md @@ -165,14 +165,14 @@ Possible values are `unix` for `\n` and `windows` for `\r\n` line endings. The following rules are all valid within the `.eslintrc.*` file: --- -`"header/header": [2, "block", "Copyright 2015, My Company"]`: +`"header/header": [2, "block", "Copyright 2015, My Company"]` ```js /*Copyright 2015, My Company*/ console.log(1); ``` --- -`"header/header": [2, "line", ["Copyright 2015", "My Company"]]`: +`"header/header": [2, "line", ["Copyright 2015", "My Company"]]` ```js //Copyright 2015 @@ -180,7 +180,7 @@ console.log(1); console.log(1); ``` --- -`"header/header": [2, "line", [{pattern: "^Copyright \\d{4}$"}, {pattern: "^My Company$"}]]`: +`"header/header": [2, "line", [{pattern: "^Copyright \\d{4}$"}, {pattern: "^My Company$"}]]` ```js //Copyright 2017 @@ -211,7 +211,7 @@ console.log(1); ### With Vue support --- -`"header/header": [2, "block", "Copyright 2015, My Company"]`: +`"header/header": [2, "block", "Copyright 2015, My Company"]` ```vue ``` --- -`"header/header": [2, "line", ["Copyright 2015", "My Company"]]`: +`"header/header": [2, "line", ["Copyright 2015", "My Company"]]` ```vue ", options: ["block", "*\n * Copyright 2015\n * My Company\n *"] }, + { + code: "//Copyright (c) 2016, My Company\n", + options: ["line", "Copyright (c) 2016, My Company"] + }, + { + code: "//Copyright (c) 2016, My Company\n", + options: ["line", { pattern: "Copyright \\(c\\) 2016, My Company", template: "Copyright (c) 2016, My Company" }] + }, ], invalid: [ { From 0c9e4ca4f2d9b74323476db403bfdecf9c899fdc Mon Sep 17 00:00:00 2001 From: Justin Muller Date: Mon, 23 Nov 2020 14:39:45 -0800 Subject: [PATCH 09/13] adding invalid case with regex and brackets. --- tests/lib/rules/header.js | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/tests/lib/rules/header.js b/tests/lib/rules/header.js index 560ff4c..2b49bda 100644 --- a/tests/lib/rules/header.js +++ b/tests/lib/rules/header.js @@ -133,7 +133,10 @@ ruleTester.run("header", rule, { }, { code: "//Copyright (c) 2016, My Company\n", - options: ["line", { pattern: "Copyright \\(c\\) 2016, My Company", template: "Copyright (c) 2016, My Company" }] + options: ["line", { + pattern: "Copyright \\(c\\) 2016, My Company", + template: "Copyright (c) 2016, My Company", + }] }, ], invalid: [ @@ -308,5 +311,16 @@ ruleTester.run("header", rule, { ], output: "" }, + { + code: "console.log(1);", + options: ["line", { + pattern: "Copyright \\(c\\) 2016, My Company", + template: "Copyright (c) 2016, My Company" + }], + errors: [ + {message: "missing header"} + ], + output: "//Copyright (c) 2016, My Company\nconsole.log(1);" + }, ] }); From e880f5c84ccf54fbd3757229963cd35703031912 Mon Sep 17 00:00:00 2001 From: Justin Muller Date: Mon, 23 Nov 2020 16:43:48 -0800 Subject: [PATCH 10/13] added 1 more caveat to the list. --- README.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 5ce1b3d..e6fc5b1 100644 --- a/README.md +++ b/README.md @@ -157,8 +157,11 @@ Possible values are `unix` for `\n` and `windows` for `\r\n` line endings. ### Vue support `eslint-plugin-header` now supports `.vue` files. Please see installation instructions for [eslint-plugin-vue](https://eslint.vuejs.org/user-guide/) before trying to integrate with `eslint-plugin-header`. There are some caveats to be aware of: -* `