.gitignore added
[dotfiles/.git] / .config / coc / extensions / node_modules / coc-prettier / node_modules / unist-util-is / index.js
diff --git a/.config/coc/extensions/node_modules/coc-prettier/node_modules/unist-util-is/index.js b/.config/coc/extensions/node_modules/coc-prettier/node_modules/unist-util-is/index.js
new file mode 100644 (file)
index 0000000..f18d416
--- /dev/null
@@ -0,0 +1,37 @@
+'use strict'
+
+var convert = require('./convert')
+
+module.exports = is
+
+is.convert = convert
+
+// Assert if `test` passes for `node`.
+// When a `parent` node is known the `index` of node should also be given.
+// eslint-disable-next-line max-params
+function is(node, test, index, parent, context) {
+  var hasParent = parent !== null && parent !== undefined
+  var hasIndex = index !== null && index !== undefined
+  var check = convert(test)
+
+  if (
+    hasIndex &&
+    (typeof index !== 'number' || index < 0 || index === Infinity)
+  ) {
+    throw new Error('Expected positive finite index or child node')
+  }
+
+  if (hasParent && (!is(parent) || !parent.children)) {
+    throw new Error('Expected parent node')
+  }
+
+  if (!node || !node.type || typeof node.type !== 'string') {
+    return false
+  }
+
+  if (hasParent !== hasIndex) {
+    throw new Error('Expected both parent and index')
+  }
+
+  return Boolean(check.call(context, node, index, parent))
+}