wip
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-08-27 21:55:30 -07:00
parent 802e3fbdd4
commit e4bcef6685
6 changed files with 24 additions and 14 deletions

View file

@ -622,7 +622,7 @@ comments.
##### ~~options.resultVersion~~ ##### ~~options.resultVersion~~
This property is *deprecated* and can be removed. The default format of the This property is *deprecated* and should be removed. The default format of the
`result` object remains the same as setting `resultVersion` to `3`. For `result` object remains the same as setting `resultVersion` to `3`. For
continued access to other (previously *deprecated*) formats: continued access to other (previously *deprecated*) formats:

View file

@ -431,10 +431,6 @@ export type Options = {
* True to ignore HTML directives. * True to ignore HTML directives.
*/ */
noInlineConfig?: boolean; noInlineConfig?: boolean;
/**
* Results object version.
*/
resultVersion?: number;
/** /**
* Strings to lint. * Strings to lint.
*/ */

View file

@ -823,9 +823,8 @@ function lintInput(options, synchronous, callback) {
options.frontMatter; options.frontMatter;
const handleRuleFailures = !!options.handleRuleFailures; const handleRuleFailures = !!options.handleRuleFailures;
const noInlineConfig = !!options.noInlineConfig; const noInlineConfig = !!options.noInlineConfig;
const resultVersion = (options.resultVersion === undefined) ? // eslint-disable-next-line dot-notation
3 : const resultVersion = (options["resultVersion"] === undefined) ? 3 : options["resultVersion"];
options.resultVersion;
const markdownItFactory = const markdownItFactory =
options.markdownItFactory || options.markdownItFactory ||
(() => { throw new Error("The option 'markdownItFactory' was required (due to the option 'customRules' including a rule requiring the 'markdown-it' parser), but 'markdownItFactory' was not set."); }); (() => { throw new Error("The option 'markdownItFactory' was required (due to the option 'customRules' including a rule requiring the 'markdown-it' parser), but 'markdownItFactory' was not set."); });
@ -1484,7 +1483,6 @@ export function getVersion() {
* @property {boolean} [handleRuleFailures] True to catch exceptions. * @property {boolean} [handleRuleFailures] True to catch exceptions.
* @property {MarkdownItFactory} [markdownItFactory] Function to create a markdown-it parser. * @property {MarkdownItFactory} [markdownItFactory] Function to create a markdown-it parser.
* @property {boolean} [noInlineConfig] True to ignore HTML directives. * @property {boolean} [noInlineConfig] True to ignore HTML directives.
* @property {number} [resultVersion] Results object version.
* @property {Object.<string, string>} [strings] Strings to lint. * @property {Object.<string, string>} [strings] Strings to lint.
*/ */

View file

@ -24,6 +24,7 @@ test("customRulesV0", (t) => new Promise((resolve) => {
"customRules": customRules.all, "customRules": customRules.all,
"files": [ customRulesMd ], "files": [ customRulesMd ],
markdownItFactory, markdownItFactory,
// @ts-ignore
"resultVersion": 0 "resultVersion": 0
}; };
lintAsync(options, function callback(err, actualResult) { lintAsync(options, function callback(err, actualResult) {
@ -97,6 +98,7 @@ test("customRulesV1", (t) => new Promise((resolve) => {
"customRules": customRules.all, "customRules": customRules.all,
"files": [ customRulesMd ], "files": [ customRulesMd ],
markdownItFactory, markdownItFactory,
// @ts-ignore
"resultVersion": 1 "resultVersion": 1
}; };
lintAsync(options, function callback(err, actualResult) { lintAsync(options, function callback(err, actualResult) {
@ -229,6 +231,7 @@ test("customRulesV2", (t) => new Promise((resolve) => {
"customRules": customRules.all, "customRules": customRules.all,
"files": [ customRulesMd ], "files": [ customRulesMd ],
markdownItFactory, markdownItFactory,
// @ts-ignore
"resultVersion": 2 "resultVersion": 2
}; };
lintAsync(options, function callback(err, actualResult) { lintAsync(options, function callback(err, actualResult) {
@ -358,6 +361,7 @@ test("customRulesConfig", (t) => new Promise((resolve) => {
"letters-e-x": false "letters-e-x": false
}, },
markdownItFactory, markdownItFactory,
// @ts-ignore
"resultVersion": 0 "resultVersion": 0
}; };
lintAsync(options, function callback(err, actualResult) { lintAsync(options, function callback(err, actualResult) {
@ -387,6 +391,7 @@ test("customRulesNpmPackage", (t) => new Promise((resolve) => {
"strings": { "strings": {
"string": "# Text\n\n---\n\nText ✅\n" "string": "# Text\n\n---\n\nText ✅\n"
}, },
// @ts-ignore
"resultVersion": 0 "resultVersion": 0
}; };
lintAsync(options, function callback(err, actualResult) { lintAsync(options, function callback(err, actualResult) {

View file

@ -627,7 +627,7 @@ test("frontMatterResultVersion3", (t) => new Promise((resolve) => {
})); }));
test("convertToResultVersionN", async(t) => { test("convertToResultVersionN", async(t) => {
t.plan(6); t.plan(8);
const options = { const options = {
"files": [ "files": [
"./test/break-all-the-rules.md", "./test/break-all-the-rules.md",
@ -638,19 +638,27 @@ test("convertToResultVersionN", async(t) => {
"banana": "## Heading" "banana": "## Heading"
} }
}; };
const [ version3, version2, version1, version0 ] = await Promise.all([ const [ base, version3, version2, version1, version0 ] = await Promise.all([
lintPromise(options), lintPromise(options),
// @ts-ignore
lintPromise({ ...options, "resultVersion": 3 }),
// @ts-ignore
lintPromise({ ...options, "resultVersion": 2 }), lintPromise({ ...options, "resultVersion": 2 }),
// @ts-ignore
lintPromise({ ...options, "resultVersion": 1 }), lintPromise({ ...options, "resultVersion": 1 }),
// @ts-ignore
lintPromise({ ...options, "resultVersion": 0 }) lintPromise({ ...options, "resultVersion": 0 })
]); ]);
const v2 = convertToResultVersion2(version3); const v3 = version3;
t.deepEqual(v3, base);
t.is(v3.toString(), base.toString());
const v2 = convertToResultVersion2(base);
t.deepEqual(v2, version2); t.deepEqual(v2, version2);
t.is(v2.toString(), version2.toString()); t.is(v2.toString(), version2.toString());
const v1 = convertToResultVersion1(version3); const v1 = convertToResultVersion1(base);
t.deepEqual(v1, version1); t.deepEqual(v1, version1);
t.is(v1.toString(), version1.toString()); t.is(v1.toString(), version1.toString());
const v0 = convertToResultVersion0(version3); const v0 = convertToResultVersion0(base);
t.deepEqual(v0, version0); t.deepEqual(v0, version0);
t.is(v0.toString(), version0.toString()); t.is(v0.toString(), version0.toString());
}); });

View file

@ -546,6 +546,7 @@ test("nullFrontMatter", (t) => new Promise((resolve) => {
"default": false, "default": false,
"MD010": true "MD010": true
}, },
// @ts-ignore
"resultVersion": 0 "resultVersion": 0
}, function callback(err, result) { }, function callback(err, result) {
t.falsy(err); t.falsy(err);
@ -598,6 +599,7 @@ test("noInlineConfig", (t) => new Promise((resolve) => {
].join("\n") ].join("\n")
}, },
"noInlineConfig": true, "noInlineConfig": true,
// @ts-ignore
"resultVersion": 0 "resultVersion": 0
}, function callback(err, result) { }, function callback(err, result) {
t.falsy(err); t.falsy(err);
@ -1229,6 +1231,7 @@ Text with: [^footnote]
[reference]: https://example.com [reference]: https://example.com
` `
}, },
// @ts-ignore
"resultVersion": 0 "resultVersion": 0
}, (err, actual) => { }, (err, actual) => {
t.falsy(err); t.falsy(err);