@dimerapp/config-parser

Parses the dimer.json file

Stats

StarsIssuesVersionUpdatedCreatedSize
@dimerapp/config-parser
102.0.43 years ago3 years agoMinified + gzip package size for @dimerapp/config-parser in KB

Readme

Dimer App

Dimer is an open source project and CMS to help you publish your documentation online.


We believe every project/product is incomplete without documentation.
We want to help you publish user facing documentation, without worrying about tools or code to write.


Dimer Config Parser

Parses dimer.json

travis-image npm-image

This module parses the dimer.json file and returns a normalised config object back.

Installation

npm i @dimerapp/config-parser

# yarn
yarn add @dimerapp/config-parser

Usage

const ConfigParser = require('@dimerapp/config-parser')
const Context = require('@dimerapp/context')

const ctx = new Context(__dirname)

// masterOptions are optional
const configParser = new ConfigParser(ctx, masterOptions)

Master Options

You can optionally pass masterOptions to the constructor. The masterOptions are merged (with more priority) the compiler options defined inside the config file.

Compiler options

Following options are allowed inside dimer.json config file as compileOptions.

validateDomain (boolean)

Whether or not to validate the domain. default=true

apiUrl? (string)

API url from which the api is served. default=http://localhost:5000. Defining this in options, will override the value explicitly defined in config.

assetsUrl? (string)

The assets url from where the assets will be served. If not defined, it will be created from the apiUrl.

createSearchIndex

Whether or not to create the search index.

detectAssets

Whether or not to detect assets.

API

parse

Parse the config file and returns normalised config object.

try {
  const { errors, config } = await configParser.parse()
  
  if (errors) {
    errors.forEach(({ message, ruleId }) => console.log(message, ruleId))
    return
  }

  // use config
} catch (error) {
  // file is missing or bad JSON
}

init

Create a new config file (if missing).

await configParser.init()

// or pass custom config

await configParser.init({
  domain: '',
  versions: {}
})

Config file sample

{
  domain: 'adonisjs.dimerapp.com',
  cname?: 'adonisjs.com',
  defaultVersion: 'master',
  versions: {
    master: 'docs/master'
  },
  websiteOptions?: {},
  compilerOptions: {
    apiUrl: 'http://localhost:5000',
    detectAssets: true,
    createSearchIndex: true,
    assetsUrl?: 'http://localhost:5000/__assets',
    validateDomain?: true
  }
}

Change log

The change log can be found in the CHANGELOG.md file.

Contributing

Everyone is welcome to contribute. Please take a moment to review the contributing guidelines.

Authors & License

thetutlage and contributors.

MIT License, see the included MIT file.

If you find any bugs or have a feature request, please open an issue on github!

The npm package download data comes from npm's download counts api and package details come from npms.io.