UNPKG

844 BJavaScriptView Raw
1'use strict'
2
3const vuedoc = require('@vuedoc/parser')
4const md = require('./lib/markdown')
5
6module.exports.render = (options) => (component) => new Promise((resolve) => {
7 let document = ''
8
9 md.render(component, options)
10 .on('write', (text) => {
11 if (options.stream) {
12 return options.stream.write(text)
13 }
14 document += text
15 })
16 .on('end', () => resolve(document))
17})
18
19module.exports.join = (options) => {
20 const merge = require('deepmerge')
21 const parsers = options.filenames.map((filename) => {
22 return vuedoc.parse(Object.assign({}, options, { filename }))
23 })
24
25 return Promise.all(parsers).then(merge.all)
26}
27
28module.exports.md = (options) => {
29 const opts = Object.assign({}, options)
30 const parse = options.join ? this.join(opts) : vuedoc.parse(opts)
31
32 return parse.then(this.render(opts))
33}