Skip to content

Commit

Permalink
Refactor to improve types
Browse files Browse the repository at this point in the history
  • Loading branch information
wooorm committed Jul 15, 2021
1 parent 3c56c4e commit 3122102
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 28 deletions.
3 changes: 2 additions & 1 deletion index.js
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,8 @@ import {visit} from 'unist-util-visit'
const own = {}.hasOwnProperty

/**
* @param {Options} options
* @type {import('unified').Plugin<[Options]>}
* @returns {(tree: Node, file: VFile) => void}
*/
export default function messageControl(options) {
if (!options || typeof options !== 'object' || !options.name) {
Expand Down
54 changes: 27 additions & 27 deletions test.js
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ test('messageControl()', (t) => {
'<!--foo disable bar-->\n\nThis is a paragraph.',
(error, file) => {
t.deepEqual(
[error, ...file.messages],
[error, ...(file || {messages: []}).messages],
[null],
'should “disable” a message'
)
Expand All @@ -75,7 +75,7 @@ test('messageControl()', (t) => {
})
.process('<!--foo disable-->\n\nThis is a paragraph.', (error, file) => {
t.deepEqual(
[error, ...file.messages],
[error, ...(file || {messages: []}).messages],
[null],
'should “disable” all message without `ruleId`s'
)
Expand Down Expand Up @@ -109,7 +109,7 @@ test('messageControl()', (t) => {
].join('\n'),
(error, file) => {
t.deepEqual(
[error, ...file.messages.map((m) => String(m))],
[error, ...(file || {messages: []}).messages.map((m) => String(m))],
[null, '5:1-5:21: Error'],
'should support `reset`'
)
Expand All @@ -134,7 +134,7 @@ test('messageControl()', (t) => {
})
.process('<!--foo enable bar-->\n\nThis is a paragraph.', (error, file) => {
t.deepEqual(
[error, ...file.messages.map((m) => String(m))],
[error, ...(file || {messages: []}).messages.map((m) => String(m))],
[null, '3:1-3:21: Error'],
'should enable with a marker, when `reset`'
)
Expand Down Expand Up @@ -169,7 +169,7 @@ test('messageControl()', (t) => {
].join('\n'),
(error, file) => {
t.deepEqual(
[error, ...file.messages.map((m) => String(m))],
[error, ...(file || {messages: []}).messages.map((m) => String(m))],
[null, '7:1-7:21: Error'],
'should enable a message'
)
Expand Down Expand Up @@ -205,7 +205,7 @@ test('messageControl()', (t) => {
].join('\n'),
(error, file) => {
t.deepEqual(
[error, ...file.messages.map((m) => String(m))],
[error, ...(file || {messages: []}).messages.map((m) => String(m))],
[null, '7:1-7:21: Error'],
'should enable all message without `ruleId`s'
)
Expand Down Expand Up @@ -239,7 +239,7 @@ test('messageControl()', (t) => {
].join('\n'),
(error, file) => {
t.deepEqual(
[error, ...file.messages.map((m) => String(m))],
[error, ...(file || {messages: []}).messages.map((m) => String(m))],
[null, '5:1-5:21: Error'],
'should ignore a message'
)
Expand Down Expand Up @@ -273,7 +273,7 @@ test('messageControl()', (t) => {
].join('\n'),
(error, file) => {
t.deepEqual(
[error, ...file.messages.map((m) => String(m))],
[error, ...(file || {messages: []}).messages.map((m) => String(m))],
[null, '5:1-5:21: Error'],
'should ignore all message without `ruleId`s'
)
Expand Down Expand Up @@ -301,7 +301,7 @@ test('messageControl()', (t) => {
'<!--foo ignore bar baz-->\n\nThis is a paragraph.',
(error, file) => {
t.deepEqual(
[error, ...file.messages.map((m) => String(m))],
[error, ...(file || {messages: []}).messages.map((m) => String(m))],
[null],
'should ignore multiple rules'
)
Expand Down Expand Up @@ -353,7 +353,7 @@ test('messageControl()', (t) => {
].join('\n'),
(error, file) => {
t.deepEqual(
[error, ...file.messages.map((m) => String(m))],
[error, ...(file || {messages: []}).messages.map((m) => String(m))],
[null, '7:1: Error'],
'should ignore gaps'
)
Expand Down Expand Up @@ -389,7 +389,7 @@ test('messageControl()', (t) => {
].join('\n'),
(error, file) => {
t.deepEqual(
[error, ...file.messages.map((m) => String(m))],
[error, ...(file || {messages: []}).messages.map((m) => String(m))],
[null],
'should ignore final gaps'
)
Expand All @@ -412,7 +412,7 @@ test('messageControl()', (t) => {
})
.process('', (error, file) => {
t.deepEqual(
[error, ...file.messages.map((m) => String(m))],
[error, ...(file || {messages: []}).messages.map((m) => String(m))],
[null, '1:1: Error'],
'should support empty documents'
)
Expand All @@ -435,7 +435,7 @@ test('messageControl()', (t) => {
})
.process('# README\n', (error, file) => {
t.deepEqual(
[error, ...file.messages.map((m) => String(m))],
[error, ...(file || {messages: []}).messages.map((m) => String(m))],
[null, '2:1: Error'],
'should message at the end of the document'
)
Expand All @@ -458,7 +458,7 @@ test('messageControl()', (t) => {
})
.process('# README\n\n* List', (error, file) => {
t.deepEqual(
[error, ...file.messages.map((m) => String(m))],
[error, ...(file || {messages: []}).messages.map((m) => String(m))],
[null, '3:9: Error'],
'should message at the end of the document'
)
Expand Down Expand Up @@ -493,7 +493,7 @@ test('messageControl()', (t) => {
].join('\n'),
(error, file) => {
t.deepEqual(
[error, ...file.messages.map((m) => String(m))],
[error, ...(file || {messages: []}).messages.map((m) => String(m))],
[null],
'should ignore double disables'
)
Expand All @@ -516,7 +516,7 @@ test('messageControl()', (t) => {
})
.process('Foo', (error, file) => {
t.deepEqual(
[error, ...file.messages.map((m) => String(m))],
[error, ...(file || {messages: []}).messages.map((m) => String(m))],
[null, '1:1: Error'],
'should not ignore messages without location information'
)
Expand All @@ -532,7 +532,7 @@ test('messageControl()', (t) => {
})
.process('<!doctype html>\n\n<!--bar baz qux-->\n', (error, file) => {
t.deepEqual(
[error, ...file.messages.map((m) => String(m))],
[error, ...(file || {messages: []}).messages.map((m) => String(m))],
[null],
'should ignore non-markers'
)
Expand All @@ -551,7 +551,7 @@ test('messageControl()', (t) => {
'<!--foo ignore known-->\n\n<!--foo ignore unknown-->',
(error, file) => {
t.deepEqual(
[error, ...file.messages.map((m) => String(m))],
[error, ...(file || {messages: []}).messages.map((m) => String(m))],
[null, "3:1-3:26: Unknown rule: cannot ignore `'unknown'`"],
'should support a list of `known` values, and warn on unknowns'
)
Expand All @@ -576,7 +576,7 @@ test('messageControl()', (t) => {
})
.process('<!--foo ignore bar-->\n\nFoo', (error, file) => {
t.deepEqual(
[error, ...file.messages.map((m) => String(m))],
[error, ...(file || {messages: []}).messages.map((m) => String(m))],
[null],
'should ignore by `source`, when given as a string'
)
Expand Down Expand Up @@ -612,7 +612,7 @@ test('messageControl()', (t) => {
].join('\n'),
(error, file) => {
t.deepEqual(
[error, ...file.messages.map((m) => String(m))],
[error, ...(file || {messages: []}).messages.map((m) => String(m))],
[null],
'should ignore by `source`, when given as an array'
)
Expand All @@ -637,7 +637,7 @@ test('messageControl()', (t) => {
})
.process('This is a paragraph.', (error, file) => {
t.deepEqual(
[error, ...file.messages.map((m) => String(m))],
[error, ...(file || {messages: []}).messages.map((m) => String(m))],
[null],
'should support initial `disable`s'
)
Expand All @@ -662,7 +662,7 @@ test('messageControl()', (t) => {
})
.process('This is a paragraph.', (error, file) => {
t.deepEqual(
[error, ...file.messages.map((m) => String(m))],
[error, ...(file || {messages: []}).messages.map((m) => String(m))],
[null, '1:1-1:21: Error'],
'should support initial `enable`s'
)
Expand All @@ -684,7 +684,7 @@ test('messageControl()', (t) => {
})
.process('<!--foo disable bar-->\n', (error, file) => {
t.deepEqual(
[error, ...file.messages.map((m) => String(m))],
[error, ...(file || {messages: []}).messages.map((m) => String(m))],
[null],
'should disable messages at the start of a marker'
)
Expand All @@ -707,7 +707,7 @@ test('messageControl()', (t) => {
})
.process('<!--foo enable-->\n', (error, file) => {
t.deepEqual(
[error, ...file.messages.map((m) => String(m))],
[error, ...(file || {messages: []}).messages.map((m) => String(m))],
[null, '1:1: Error'],
'should enable messages at the start of a marker'
)
Expand All @@ -729,7 +729,7 @@ test('messageControl()', (t) => {
})
.process('<!--foo disable bar-->\n', (error, file) => {
t.deepEqual(
[error, ...file.messages.map((m) => String(m))],
[error, ...(file || {messages: []}).messages.map((m) => String(m))],
[null],
'should disable messages without positional info (at the start of a document)'
)
Expand All @@ -752,7 +752,7 @@ test('messageControl()', (t) => {
})
.process('<!--foo enable-->\n', (error, file) => {
t.deepEqual(
[error, ...file.messages.map((m) => String(m))],
[error, ...(file || {messages: []}).messages.map((m) => String(m))],
[null, '1:1: Error'],
'should enable messages without positional info (at the start of a document)'
)
Expand All @@ -769,7 +769,7 @@ test('messageControl()', (t) => {
})
.process('', (error, file) => {
t.deepEqual(
[error, ...file.messages.map((m) => String(m))],
[error, ...(file || {messages: []}).messages.map((m) => String(m))],
[null, '1:1: Error'],
'should not fail when there are messages but no `children` on `tree`'
)
Expand Down

0 comments on commit 3122102

Please sign in to comment.