File: //usr/share/opensearch-dashboards/node_modules/mdast-util-definitions/index.js
'use strict'
var visit = require('unist-util-visit')
module.exports = getDefinitionFactory
var own = {}.hasOwnProperty
// Get a definition in `node` by `identifier`.
function getDefinitionFactory(node, options) {
return getterFactory(gather(node, options))
}
// Gather all definitions in `node`
function gather(node) {
var cache = {}
if (!node || !node.type) {
throw new Error('mdast-util-definitions expected node')
}
visit(node, 'definition', ondefinition)
return cache
function ondefinition(definition) {
var id = normalise(definition.identifier)
if (!own.call(cache, id)) {
cache[id] = definition
}
}
}
// Factory to get a node from the given definition-cache.
function getterFactory(cache) {
return getter
// Get a node from the bound definition-cache.
function getter(identifier) {
var id = identifier && normalise(identifier)
return id && own.call(cache, id) ? cache[id] : null
}
}
function normalise(identifier) {
return identifier.toUpperCase()
}