code: function process(doc, cb) {
      freeze()
      assertParser('process', processor.Parser)
      assertCompiler('process', processor.Compiler)
  
      if (!cb) {
        return new Promise(executor)
      }
  
      executor(null, cb)
  
      function executor(resolve, reject) {
        var file = vfile(doc)
  
        pipeline.run(processor, {file: file}, done)
  
        function done(err) {
          if (err) {
            reject(err)
          } else if (resolve) {
            resolve(file)
          } else {
            cb(null, file)
          }
        }
      }
    }
docs: Parse a file (in string or vfile representation) into a unist node using the `Parser` on the processor, then run transforms on that node, and compile the resulting node using the `Compiler` on the processor, and store that result on the vfile.