Remove filterTokens helper (now used only by tests).

This commit is contained in:
David Anson 2024-08-18 15:34:26 -07:00
parent 2b8369ae39
commit 55729cfcf7
5 changed files with 21 additions and 61 deletions

View file

@ -307,23 +307,6 @@ module.exports.unorderedListStyleFor = function unorderedListStyleFor(token) {
* @returns {void}
*/
/**
* Calls the provided function for each matching token.
*
* @param {Object} params RuleParams instance.
* @param {string} type Token type identifier.
* @param {TokenCallback} handler Callback function.
* @returns {void}
*/
function filterTokens(params, type, handler) {
for (const token of params.parsers.markdownit.tokens) {
if (token.type === type) {
handler(token);
}
}
}
module.exports.filterTokens = filterTokens;
// Returns (nested) lists as a flat array (in order)
module.exports.flattenLists = function flattenLists(tokens) {
const flattenedLists = [];

View file

@ -295,23 +295,6 @@ module.exports.unorderedListStyleFor = function unorderedListStyleFor(token) {
* @returns {void}
*/
/**
* Calls the provided function for each matching token.
*
* @param {Object} params RuleParams instance.
* @param {string} type Token type identifier.
* @param {TokenCallback} handler Callback function.
* @returns {void}
*/
function filterTokens(params, type, handler) {
for (const token of params.parsers.markdownit.tokens) {
if (token.type === type) {
handler(token);
}
}
}
module.exports.filterTokens = filterTokens;
// Returns (nested) lists as a flat array (in order)
module.exports.flattenLists = function flattenLists(tokens) {
const flattenedLists = [];

View file

@ -2,11 +2,6 @@
"use strict";
const { filterTokens } = require("../../helpers");
/** @typedef {import("../../lib/markdownlint").MarkdownItToken} MarkdownItToken */
/** @typedef {(MarkdownItToken) => void} FilterTokensCallback */
/** @type import("../../lib/markdownlint").Rule */
module.exports = {
"names": [ "any-blockquote" ],
@ -18,18 +13,15 @@ module.exports = {
"tags": [ "test" ],
"parser": "markdownit",
"function": (params, onError) => {
filterTokens(
params,
"blockquote_open",
/** @type FilterTokensCallback */
(blockquote) => {
const lines = blockquote.map[1] - blockquote.map[0];
onError({
"lineNumber": blockquote.lineNumber,
"detail": "Blockquote spans " + lines + " line(s).",
"context": blockquote.line.substr(0, 7)
});
}
);
const blockquotes = params.parsers.markdownit.tokens.
filter((token => token.type === "blockquote_open"));
for (const blockquote of blockquotes) {
const lines = blockquote.map[1] - blockquote.map[0];
onError({
"lineNumber": blockquote.lineNumber,
"detail": "Blockquote spans " + lines + " line(s).",
"context": blockquote.line.substr(0, 7)
});
}
}
};

View file

@ -3,7 +3,6 @@
"use strict";
const js = require("@eslint/js");
const { filterTokens } = require("../../helpers");
const eslint = require("eslint");
const linter = new eslint.Linter();
const languageJavaScript = /js|javascript/i;
@ -15,7 +14,9 @@ module.exports = {
"tags": [ "test", "lint", "javascript" ],
"parser": "markdownit",
"function": (params, onError) => {
filterTokens(params, "fence", (fence) => {
const fences = params.parsers.markdownit.tokens.
filter((token => token.type === "fence"));
for (const fence of fences) {
if (languageJavaScript.test(fence.info)) {
const results = linter.verify(fence.content, js.configs.recommended);
for (const result of results) {
@ -27,9 +28,9 @@ module.exports = {
});
}
}
});
// Unsupported:
// filterTokens("code_block"), language unknown
// filterTokens("code_inline"), too brief
}
// Unsupported by this sample:
// "code_block": language unknown
// "code_inline": too brief
}
};

View file

@ -2,7 +2,6 @@
"use strict";
const { filterTokens } = require("../../helpers");
const { parse, printParseErrorCode } = require("jsonc-parser");
/** @type import("../../lib/markdownlint").Rule */
@ -13,7 +12,9 @@ module.exports = {
"parser": "markdownit",
"asynchronous": true,
"function": (params, onError) => {
filterTokens(params, "fence", (fence) => {
const fences = params.parsers.markdownit.tokens.
filter((token => token.type === "fence"));
for (const fence of fences) {
if (/jsonc?/i.test(fence.info)) {
const errors = [];
parse(fence.content, errors);
@ -28,6 +29,6 @@ module.exports = {
});
}
}
});
}
}
};