Configuration
Configuration is written in jungle.config.js.
module.exports = {
/* ...config */
}
Config
Option | Type | Description |
---|---|---|
clientInputOptions | (filename: String, extension: String) => inputOptions | Function returning rollup input options given the filename and extension of each file for client-side hydration. |
clientOutputOptions | (filename: String, extension: String) => outputOptions | Function returning rollup output options given the filename and extension of each file for client-side hydration. |
ssrInputOptions | (filename: String, extension: String) => inputOptions | Function returning rollup input options given the filename and extension of each file for server-side rendering. |
ssrOutputOptions | (filename: String, extension: String) => outputOptions | Function returning rollup output options given the filename and extension of each file for server-side rendering. |
dataSources | {format: String, name: String, queryArgs: {[String]: String} /*...moreConfig*/} | Data sources config - 'format' is the type of source, 'name' is the GraphQL name, 'queryArgs' adds any GraphQL query parameters supported by the format. Further config depends on the format of the data source. |
Data sources
JungleJS currently only supports two data sources (we have an issue open to add more here)
- JSON
- Markdown
JSON
Usage
module.exports = {
dataSources: [
{
format: "json",
name: "members",
items: [
{id: 1, name: 'foo'},
{id: 2, name: 'bar'}
],
queryArgs: {id: 'Int!'}
}
]
}
Options
Option | Description |
---|---|
items | Data given as array of JSON objects. These can be handwritten or pulled from another API at the top of the jungle.config.js file. |
Query arguments
Any field in any of the JSON objects.
Markdown
Usage
module.exports = {
dataSources: [
{
format: "dir/markdown",
name: "posts",
items: 'static/posts',
queryArgs: { slug: 'String!' }
}
]
}
Options
Option | Description |
---|---|
items | Directory to markdown files. |
Query Arguments
Any field from the frontmatter of the markdown file. Frontmatter is specified at the top of the markdown seperated by triple dashes.
---
title: Hello everyone!
slug: hello
---