Urara-Blog/node_modules/.pnpm-store/v3/files/35/09f004612b80171807b90c3807aa4a08406510995642acc0fdfd3df1f255dfa8d4884d12310e952e8f576d8e9ed420697153c7c36af4c9adbc71b575e4737d
2022-08-14 01:14:53 +08:00

30 lines
736 B
Text

/**
* @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
* @typedef {import('micromark-util-types').Event} Event
* @typedef {import('micromark-util-types').Resolver} Resolver
*/
/**
* Call all `resolveAll`s.
*
* @param {{resolveAll?: Resolver}[]} constructs
* @param {Event[]} events
* @param {TokenizeContext} context
* @returns {Event[]}
*/
export function resolveAll(constructs, events, context) {
/** @type {Resolver[]} */
const called = []
let index = -1
while (++index < constructs.length) {
const resolve = constructs[index].resolveAll
if (resolve && !called.includes(resolve)) {
events = resolve(events, context)
called.push(resolve)
}
}
return events
}