code: function run(node, file, cb) {
      assertNode(node)
      freeze()
  
      if (!cb && typeof file === 'function') {
        cb = file
        file = null
      }
  
      if (!cb) {
        return new Promise(executor)
      }
  
      executor(null, cb)
  
      function executor(resolve, reject) {
        transformers.run(node, vfile(file), done)
  
        function done(err, tree, file) {
          tree = tree || node
          if (err) {
            reject(err)
          } else if (resolve) {
            resolve(tree)
          } else {
            cb(null, tree, file)
          }
        }
      }
    }
docs: Run transforms on a unist node representation of a file (in string or vfile representation), async.