mirror of
https://github.com/DavidAnson/markdownlint.git
synced 2025-12-16 14:00:13 +01:00
Address new code analysis issues from previous commit.
Some checks failed
Checkers / linkcheck (push) Has been cancelled
Checkers / spellcheck (push) Has been cancelled
CI / build (20, macos-latest) (push) Has been cancelled
CI / build (20, ubuntu-latest) (push) Has been cancelled
CI / build (20, windows-latest) (push) Has been cancelled
CI / build (22, macos-latest) (push) Has been cancelled
CI / build (22, ubuntu-latest) (push) Has been cancelled
CI / build (22, windows-latest) (push) Has been cancelled
CI / build (24, macos-latest) (push) Has been cancelled
CI / build (24, ubuntu-latest) (push) Has been cancelled
CI / build (24, windows-latest) (push) Has been cancelled
CI / pnpm (push) Has been cancelled
CodeQL / Analyze (push) Has been cancelled
TestRepos / build (latest, ubuntu-latest) (push) Has been cancelled
UpdateTestRepos / update (push) Has been cancelled
Some checks failed
Checkers / linkcheck (push) Has been cancelled
Checkers / spellcheck (push) Has been cancelled
CI / build (20, macos-latest) (push) Has been cancelled
CI / build (20, ubuntu-latest) (push) Has been cancelled
CI / build (20, windows-latest) (push) Has been cancelled
CI / build (22, macos-latest) (push) Has been cancelled
CI / build (22, ubuntu-latest) (push) Has been cancelled
CI / build (22, windows-latest) (push) Has been cancelled
CI / build (24, macos-latest) (push) Has been cancelled
CI / build (24, ubuntu-latest) (push) Has been cancelled
CI / build (24, windows-latest) (push) Has been cancelled
CI / pnpm (push) Has been cancelled
CodeQL / Analyze (push) Has been cancelled
TestRepos / build (latest, ubuntu-latest) (push) Has been cancelled
UpdateTestRepos / update (push) Has been cancelled
This commit is contained in:
parent
3a5a59a422
commit
d9eedde37d
6 changed files with 20 additions and 7 deletions
|
|
@ -36,11 +36,12 @@ export function micromarkTokens() {
|
|||
* Gets a cached object value - computes it and caches it.
|
||||
*
|
||||
* @param {string} name Cache object name.
|
||||
* @param {Function} getValue Getter for object value.
|
||||
* @param {() => Object} getValue Getter for object value.
|
||||
* @returns {Object} Object value.
|
||||
*/
|
||||
function getCached(name, getValue) {
|
||||
if (map.has(name)) {
|
||||
// @ts-ignore
|
||||
return map.get(name);
|
||||
}
|
||||
const value = getValue();
|
||||
|
|
@ -56,6 +57,7 @@ function getCached(name, getValue) {
|
|||
* @returns {MicromarkToken[]} Filtered tokens.
|
||||
*/
|
||||
export function filterByTypesCached(types, htmlFlow) {
|
||||
// @ts-ignore
|
||||
return getCached(
|
||||
// eslint-disable-next-line prefer-rest-params
|
||||
JSON.stringify(arguments),
|
||||
|
|
|
|||
|
|
@ -2,6 +2,8 @@
|
|||
|
||||
"use strict";
|
||||
|
||||
/* eslint-disable jsdoc/reject-any-type */
|
||||
|
||||
/**
|
||||
* Calls require for markdownit.cjs. Used to synchronously defer loading because module.createRequire is buggy under webpack (https://github.com/webpack/webpack/issues/16724).
|
||||
*
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ import yaml from "js-yaml";
|
|||
import { __dirname, importWithTypeJson } from "../test/esm-helpers.mjs";
|
||||
const configSchema = await importWithTypeJson(import.meta, "../schema/markdownlint-config-schema.json");
|
||||
|
||||
/** @type {Object<string, any>} */
|
||||
/** @type {import("markdownlint").Configuration} */
|
||||
const configExample = {};
|
||||
for (const rule in configSchema.properties) {
|
||||
if (/^(?:MD\d{3}|default|extends)$/.test(rule)) {
|
||||
|
|
@ -19,7 +19,7 @@ for (const rule in configSchema.properties) {
|
|||
).filter(([ key ]) => ((key !== "enabled") && (key !== "severity")))
|
||||
);
|
||||
if (Object.keys(subproperties).length > 0) {
|
||||
/** @type {Object<string, any>} */
|
||||
/** @type {import("markdownlint").Configuration} */
|
||||
const ruleExample = {};
|
||||
// eslint-disable-next-line guard-for-in
|
||||
for (const property in subproperties) {
|
||||
|
|
|
|||
|
|
@ -26,6 +26,8 @@ export const __filename = (meta) => fileURLToPath(meta.url);
|
|||
// eslint-disable-next-line no-underscore-dangle
|
||||
export const __dirname = (meta) => path.dirname(__filename(meta));
|
||||
|
||||
/* eslint-disable jsdoc/reject-any-type */
|
||||
|
||||
/**
|
||||
* Imports a file as JSON.
|
||||
* Avoids "ExperimentalWarning: Importing JSON modules is an experimental feature and might change at any time".
|
||||
|
|
|
|||
|
|
@ -1216,16 +1216,18 @@ test("customRulesOnErrorBad", (t) => {
|
|||
]) {
|
||||
const { propertyName, subPropertyName, propertyValues } = testCase;
|
||||
for (const propertyValue of propertyValues) {
|
||||
/** @type {Object<string, any>} */
|
||||
const badObject = {
|
||||
"lineNumber": 1
|
||||
};
|
||||
let propertyNames = null;
|
||||
if (subPropertyName) {
|
||||
// @ts-ignore
|
||||
badObject[propertyName] = {};
|
||||
// @ts-ignore
|
||||
badObject[propertyName][subPropertyName] = propertyValue;
|
||||
propertyNames = `${propertyName}.${subPropertyName}`;
|
||||
} else {
|
||||
// @ts-ignore
|
||||
badObject[propertyName] = propertyValue;
|
||||
propertyNames = propertyName;
|
||||
}
|
||||
|
|
@ -1290,16 +1292,18 @@ test("customRulesOnErrorInvalid", (t) => {
|
|||
]) {
|
||||
const { propertyName, subPropertyName, propertyValues } = testCase;
|
||||
for (const propertyValue of propertyValues) {
|
||||
/** @type {Object<string, any>} */
|
||||
const badObject = {
|
||||
"lineNumber": 1
|
||||
};
|
||||
let propertyNames = null;
|
||||
if (subPropertyName) {
|
||||
// @ts-ignore
|
||||
badObject[propertyName] = {};
|
||||
// @ts-ignore
|
||||
badObject[propertyName][subPropertyName] = propertyValue;
|
||||
propertyNames = `${propertyName}.${subPropertyName}`;
|
||||
} else {
|
||||
// @ts-ignore
|
||||
badObject[propertyName] = propertyValue;
|
||||
propertyNames = propertyName;
|
||||
}
|
||||
|
|
@ -1370,14 +1374,16 @@ test("customRulesOnErrorValid", (t) => {
|
|||
]) {
|
||||
const { propertyName, subPropertyName, propertyValues } = testCase;
|
||||
for (const propertyValue of propertyValues) {
|
||||
/** @type {Object<string, any>} */
|
||||
const goodObject = {
|
||||
"lineNumber": 1
|
||||
};
|
||||
if (subPropertyName) {
|
||||
// @ts-ignore
|
||||
goodObject[propertyName] = {};
|
||||
// @ts-ignore
|
||||
goodObject[propertyName][subPropertyName] = propertyValue;
|
||||
} else {
|
||||
// @ts-ignore
|
||||
goodObject[propertyName] = propertyValue;
|
||||
}
|
||||
/** @type {import("markdownlint").Options} */
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ import customRules from "./rules/rules.cjs";
|
|||
import { __dirname, importWithTypeJson } from "./esm-helpers.mjs";
|
||||
/** @type {{exports: Object.<string, string>, homepage: string, version: string}} */
|
||||
const packageJson = await importWithTypeJson(import.meta, "../package.json");
|
||||
/** @type {{$id: string, properties: Object<string, any>}} */
|
||||
/** @type {{$id: string, properties: Object<string, Object>}} */
|
||||
const configSchema = await importWithTypeJson(import.meta, "../schema/markdownlint-config-schema.json");
|
||||
const configSchemaStrict = await importWithTypeJson(import.meta, "../schema/markdownlint-config-schema-strict.json");
|
||||
|
||||
|
|
@ -1190,6 +1190,7 @@ test("validateConfigExampleJson", (t) => {
|
|||
configSchema.$id.replace(/^.*\/v(?<ver>\d+\.\d+\.\d+)\/.*$/u, "$<ver>"),
|
||||
packageJson.version
|
||||
);
|
||||
// @ts-ignore
|
||||
t.is(configSchema.$id, configSchema.properties.$schema.default);
|
||||
|
||||
// Validate JSONC
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue