mirror of
https://github.com/DavidAnson/markdownlint.git
synced 2025-12-16 22:10: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.
|
* Gets a cached object value - computes it and caches it.
|
||||||
*
|
*
|
||||||
* @param {string} name Cache object name.
|
* @param {string} name Cache object name.
|
||||||
* @param {Function} getValue Getter for object value.
|
* @param {() => Object} getValue Getter for object value.
|
||||||
* @returns {Object} Object value.
|
* @returns {Object} Object value.
|
||||||
*/
|
*/
|
||||||
function getCached(name, getValue) {
|
function getCached(name, getValue) {
|
||||||
if (map.has(name)) {
|
if (map.has(name)) {
|
||||||
|
// @ts-ignore
|
||||||
return map.get(name);
|
return map.get(name);
|
||||||
}
|
}
|
||||||
const value = getValue();
|
const value = getValue();
|
||||||
|
|
@ -56,6 +57,7 @@ function getCached(name, getValue) {
|
||||||
* @returns {MicromarkToken[]} Filtered tokens.
|
* @returns {MicromarkToken[]} Filtered tokens.
|
||||||
*/
|
*/
|
||||||
export function filterByTypesCached(types, htmlFlow) {
|
export function filterByTypesCached(types, htmlFlow) {
|
||||||
|
// @ts-ignore
|
||||||
return getCached(
|
return getCached(
|
||||||
// eslint-disable-next-line prefer-rest-params
|
// eslint-disable-next-line prefer-rest-params
|
||||||
JSON.stringify(arguments),
|
JSON.stringify(arguments),
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,8 @@
|
||||||
|
|
||||||
"use strict";
|
"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).
|
* 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";
|
import { __dirname, importWithTypeJson } from "../test/esm-helpers.mjs";
|
||||||
const configSchema = await importWithTypeJson(import.meta, "../schema/markdownlint-config-schema.json");
|
const configSchema = await importWithTypeJson(import.meta, "../schema/markdownlint-config-schema.json");
|
||||||
|
|
||||||
/** @type {Object<string, any>} */
|
/** @type {import("markdownlint").Configuration} */
|
||||||
const configExample = {};
|
const configExample = {};
|
||||||
for (const rule in configSchema.properties) {
|
for (const rule in configSchema.properties) {
|
||||||
if (/^(?:MD\d{3}|default|extends)$/.test(rule)) {
|
if (/^(?:MD\d{3}|default|extends)$/.test(rule)) {
|
||||||
|
|
@ -19,7 +19,7 @@ for (const rule in configSchema.properties) {
|
||||||
).filter(([ key ]) => ((key !== "enabled") && (key !== "severity")))
|
).filter(([ key ]) => ((key !== "enabled") && (key !== "severity")))
|
||||||
);
|
);
|
||||||
if (Object.keys(subproperties).length > 0) {
|
if (Object.keys(subproperties).length > 0) {
|
||||||
/** @type {Object<string, any>} */
|
/** @type {import("markdownlint").Configuration} */
|
||||||
const ruleExample = {};
|
const ruleExample = {};
|
||||||
// eslint-disable-next-line guard-for-in
|
// eslint-disable-next-line guard-for-in
|
||||||
for (const property in subproperties) {
|
for (const property in subproperties) {
|
||||||
|
|
|
||||||
|
|
@ -26,6 +26,8 @@ export const __filename = (meta) => fileURLToPath(meta.url);
|
||||||
// eslint-disable-next-line no-underscore-dangle
|
// eslint-disable-next-line no-underscore-dangle
|
||||||
export const __dirname = (meta) => path.dirname(__filename(meta));
|
export const __dirname = (meta) => path.dirname(__filename(meta));
|
||||||
|
|
||||||
|
/* eslint-disable jsdoc/reject-any-type */
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Imports a file as JSON.
|
* Imports a file as JSON.
|
||||||
* Avoids "ExperimentalWarning: Importing JSON modules is an experimental feature and might change at any time".
|
* 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;
|
const { propertyName, subPropertyName, propertyValues } = testCase;
|
||||||
for (const propertyValue of propertyValues) {
|
for (const propertyValue of propertyValues) {
|
||||||
/** @type {Object<string, any>} */
|
|
||||||
const badObject = {
|
const badObject = {
|
||||||
"lineNumber": 1
|
"lineNumber": 1
|
||||||
};
|
};
|
||||||
let propertyNames = null;
|
let propertyNames = null;
|
||||||
if (subPropertyName) {
|
if (subPropertyName) {
|
||||||
|
// @ts-ignore
|
||||||
badObject[propertyName] = {};
|
badObject[propertyName] = {};
|
||||||
|
// @ts-ignore
|
||||||
badObject[propertyName][subPropertyName] = propertyValue;
|
badObject[propertyName][subPropertyName] = propertyValue;
|
||||||
propertyNames = `${propertyName}.${subPropertyName}`;
|
propertyNames = `${propertyName}.${subPropertyName}`;
|
||||||
} else {
|
} else {
|
||||||
|
// @ts-ignore
|
||||||
badObject[propertyName] = propertyValue;
|
badObject[propertyName] = propertyValue;
|
||||||
propertyNames = propertyName;
|
propertyNames = propertyName;
|
||||||
}
|
}
|
||||||
|
|
@ -1290,16 +1292,18 @@ test("customRulesOnErrorInvalid", (t) => {
|
||||||
]) {
|
]) {
|
||||||
const { propertyName, subPropertyName, propertyValues } = testCase;
|
const { propertyName, subPropertyName, propertyValues } = testCase;
|
||||||
for (const propertyValue of propertyValues) {
|
for (const propertyValue of propertyValues) {
|
||||||
/** @type {Object<string, any>} */
|
|
||||||
const badObject = {
|
const badObject = {
|
||||||
"lineNumber": 1
|
"lineNumber": 1
|
||||||
};
|
};
|
||||||
let propertyNames = null;
|
let propertyNames = null;
|
||||||
if (subPropertyName) {
|
if (subPropertyName) {
|
||||||
|
// @ts-ignore
|
||||||
badObject[propertyName] = {};
|
badObject[propertyName] = {};
|
||||||
|
// @ts-ignore
|
||||||
badObject[propertyName][subPropertyName] = propertyValue;
|
badObject[propertyName][subPropertyName] = propertyValue;
|
||||||
propertyNames = `${propertyName}.${subPropertyName}`;
|
propertyNames = `${propertyName}.${subPropertyName}`;
|
||||||
} else {
|
} else {
|
||||||
|
// @ts-ignore
|
||||||
badObject[propertyName] = propertyValue;
|
badObject[propertyName] = propertyValue;
|
||||||
propertyNames = propertyName;
|
propertyNames = propertyName;
|
||||||
}
|
}
|
||||||
|
|
@ -1370,14 +1374,16 @@ test("customRulesOnErrorValid", (t) => {
|
||||||
]) {
|
]) {
|
||||||
const { propertyName, subPropertyName, propertyValues } = testCase;
|
const { propertyName, subPropertyName, propertyValues } = testCase;
|
||||||
for (const propertyValue of propertyValues) {
|
for (const propertyValue of propertyValues) {
|
||||||
/** @type {Object<string, any>} */
|
|
||||||
const goodObject = {
|
const goodObject = {
|
||||||
"lineNumber": 1
|
"lineNumber": 1
|
||||||
};
|
};
|
||||||
if (subPropertyName) {
|
if (subPropertyName) {
|
||||||
|
// @ts-ignore
|
||||||
goodObject[propertyName] = {};
|
goodObject[propertyName] = {};
|
||||||
|
// @ts-ignore
|
||||||
goodObject[propertyName][subPropertyName] = propertyValue;
|
goodObject[propertyName][subPropertyName] = propertyValue;
|
||||||
} else {
|
} else {
|
||||||
|
// @ts-ignore
|
||||||
goodObject[propertyName] = propertyValue;
|
goodObject[propertyName] = propertyValue;
|
||||||
}
|
}
|
||||||
/** @type {import("markdownlint").Options} */
|
/** @type {import("markdownlint").Options} */
|
||||||
|
|
|
||||||
|
|
@ -24,7 +24,7 @@ import customRules from "./rules/rules.cjs";
|
||||||
import { __dirname, importWithTypeJson } from "./esm-helpers.mjs";
|
import { __dirname, importWithTypeJson } from "./esm-helpers.mjs";
|
||||||
/** @type {{exports: Object.<string, string>, homepage: string, version: string}} */
|
/** @type {{exports: Object.<string, string>, homepage: string, version: string}} */
|
||||||
const packageJson = await importWithTypeJson(import.meta, "../package.json");
|
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 configSchema = await importWithTypeJson(import.meta, "../schema/markdownlint-config-schema.json");
|
||||||
const configSchemaStrict = await importWithTypeJson(import.meta, "../schema/markdownlint-config-schema-strict.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>"),
|
configSchema.$id.replace(/^.*\/v(?<ver>\d+\.\d+\.\d+)\/.*$/u, "$<ver>"),
|
||||||
packageJson.version
|
packageJson.version
|
||||||
);
|
);
|
||||||
|
// @ts-ignore
|
||||||
t.is(configSchema.$id, configSchema.properties.$schema.default);
|
t.is(configSchema.$id, configSchema.properties.$schema.default);
|
||||||
|
|
||||||
// Validate JSONC
|
// Validate JSONC
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue