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

This commit is contained in:
David Anson 2025-09-27 06:21:34 +00:00
parent 3a5a59a422
commit d9eedde37d
6 changed files with 20 additions and 7 deletions

View file

@ -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".

View file

@ -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} */

View file

@ -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