site/node_modules/retext-latin/lib/index.js
2024-10-14 08:09:33 +02:00

38 lines
990 B
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/**
* @typedef {import('nlcst').Root} Root
*/
import {ParseLatin} from 'parse-latin'
/**
* Add support for parsing Latin-script natural language.
*
* @returns {undefined}
* Nothing.
*/
export default function retextLatin() {
// @ts-expect-error -- TS in JSDoc doesnt understand `this`.
// eslint-disable-next-line unicorn/no-this-assignment
const self = /** @type {import('unified').Processor<Root>} */ (this)
self.parser = parser
/** @type {import('unified').Parser<Root>} */
function parser(value) {
const parser = new ParseLatin()
add(parser.tokenizeParagraphPlugins, self.data('nlcstParagraphExtensions'))
add(parser.tokenizeRootPlugins, self.data('nlcstRootExtensions'))
add(parser.tokenizeSentencePlugins, self.data('nlcstSentenceExtensions'))
return parser.parse(value)
}
}
/**
* @template T
* @param {Array<T>} list
* @param {Array<T> | undefined} values
*/
function add(list, values) {
if (values) list.unshift(...values)
}