diff --git a/lib/rules/header.js b/lib/rules/header.js index 1c78246..ac01b66 100644 --- a/lib/rules/header.js +++ b/lib/rules/header.js @@ -122,7 +122,96 @@ module.exports = { meta: { type: "layout", fixable: "whitespace", - schema: false + schema: { + $ref: "#/definitions/options", + definitions: { + commentType: { + type: "string", + enum: ["block", "line"] + }, + line: { + anyOf: [ + { + type: "string" + }, + { + type: "object", + properties: { + pattern: { + type: "string" + }, + template: { + type: "string" + } + }, + required: ["pattern"], + additionalProperties: false + } + ] + }, + headerLines: { + anyOf: [ + { + $ref: "#/definitions/line" + }, + { + type: "array", + items: { + $ref: "#/definitions/line" + } + } + ] + }, + numNewlines: { + type: "integer", + minimum: 0 + }, + settings: { + type: "object", + properties: { + lineEndings: { + type: "string", + enum: ["unix", "windows"] + } + }, + additionalProperties: false + }, + options: { + anyOf: [ + { + type: "array", + minItems: 1, + maxItems: 2, + items: [ + { type: "string" }, + { $ref: "#/definitions/settings" } + ] + }, + { + type: "array", + minItems: 2, + maxItems: 3, + items: [ + { $ref: "#/definitions/commentType" }, + { $ref: "#/definitions/headerLines" }, + { $ref: "#/definitions/settings" } + ] + }, + { + type: "array", + minItems: 3, + maxItems: 4, + items: [ + { $ref: "#/definitions/commentType" }, + { $ref: "#/definitions/headerLines" }, + { $ref: "#/definitions/numNewlines" }, + { $ref: "#/definitions/settings" } + ] + } + ] + } + } + } }, create: function(context) { var options = context.options; diff --git a/package-lock.json b/package-lock.json index 2d69f88..f1dd770 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "@tony.ganchev/eslint-plugin-header", - "version": "3.1.2", + "version": "3.1.3", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 7aa9665..755531d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@tony.ganchev/eslint-plugin-header", - "version": "3.1.2", + "version": "3.1.3", "description": "ESLint plugin to ensure that files begin with given comment", "main": "index.js", "scripts": {