12345678910111213141516171819202122232425262728293031323334 |
- /**
- * @typedef {import('micromark-util-types').Event} Event
- * @typedef {import('micromark-util-types').Resolver} Resolver
- * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
- */
- /**
- * Call all `resolveAll`s.
- *
- * @param {Array<{resolveAll?: Resolver | undefined}>} constructs
- * List of constructs, optionally with `resolveAll`s.
- * @param {Array<Event>} events
- * List of events.
- * @param {TokenizeContext} context
- * Context used by `tokenize`.
- * @returns {Array<Event>}
- * Changed events.
- */
- export function resolveAll(constructs, events, context) {
- /** @type {Array<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
- }
|