This commit is contained in:
51
node_modules/mdast-util-definitions/index.js
generated
vendored
Normal file
51
node_modules/mdast-util-definitions/index.js
generated
vendored
Normal file
@@ -0,0 +1,51 @@
|
||||
'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, options) {
|
||||
var cache = {}
|
||||
|
||||
if (!node || !node.type) {
|
||||
throw new Error('mdast-util-definitions expected node')
|
||||
}
|
||||
|
||||
visit(node, 'definition', options && options.commonmark ? commonmark : normal)
|
||||
|
||||
return cache
|
||||
|
||||
function commonmark(definition) {
|
||||
var id = normalise(definition.identifier)
|
||||
if (!own.call(cache, id)) {
|
||||
cache[id] = definition
|
||||
}
|
||||
}
|
||||
|
||||
function normal(definition) {
|
||||
cache[normalise(definition.identifier)] = 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()
|
||||
}
|
||||
Reference in New Issue
Block a user