1 | const { existsSync } = require('fs')
|
2 | const { resolve } = require('path')
|
3 |
|
4 | const { getRoutes, interceptRoutes } = require('./routes.js')
|
5 | const reqPlugin = resolve(__dirname, './plugin.js')
|
6 |
|
7 | function getModuleOptions (nuxtOpts) {
|
8 | const contentVars = {
|
9 | srcPath: nuxtOpts.srcDir,
|
10 | srcDir: 'content',
|
11 | routeName: '',
|
12 | dirs: ['/'],
|
13 | permalink: ':slug',
|
14 | isPost: true,
|
15 | data: {}
|
16 | }
|
17 |
|
18 | const rootConfig = resolve(nuxtOpts.srcDir, 'nuxt.content.js')
|
19 | const userOpts = existsSync(rootConfig) ? require(rootConfig) : nuxtOpts.content
|
20 | return Object.assign({}, contentVars, userOpts)
|
21 | }
|
22 |
|
23 | module.exports = function contentModule() {
|
24 | const options = getModuleOptions(this.options)
|
25 |
|
26 |
|
27 | const content = require('./content.js').default(options)
|
28 | this.addPlugin({ src: reqPlugin })
|
29 |
|
30 |
|
31 | this.extendRoutes(routes => interceptRoutes(routes, content, options))
|
32 |
|
33 |
|
34 | if (!('generate' in this.options)) this.options.generate = {}
|
35 | const gen = this.options.generate
|
36 | gen.routes = gen.routes && Array.isArray(gen.routes)
|
37 | ? Array.concat(routes, getRoutes(content))
|
38 | : getRoutes(content)
|
39 | }
|
40 |
|
41 | module.exports.meta = require('../package.json')
|