CaliStyle/trailpack-treefrog

View on GitHub
index.js

Summary

Maintainability
A
0 mins
Test Coverage
/* eslint no-console: [0, { allow: ["log","warn", "error"] }] */
'use strict'

const Trailpack = require('trailpack')
const lib = require('./lib')
const _ = require('lodash')

module.exports = class TreefrogTrailpack extends Trailpack {

  /**
   * Validate Treefrog Configuration (Generated by generator-treefrog)
   */
  validate () {
    const treefrog = _.get(this.app.config, 'treefrog')
    if (treefrog && Object.keys(treefrog).length === 0) {
      this.app.log.warn('Treefrog was not configured at config.treefrog')
    }
    else {
      // this.app.log.info('Treefrog validated')
    }
    return Promise.all([
      lib.Validator.validateConfig(this.app.config.treefrog)
    ])
  }

  /**
   * Configure Treefrog
   *
   * Should configure angular/react routes from trails routes
   */
  configure () {
    return Promise.resolve()
  }

  /**
   * Initialize Treefrog
   */
  initialize () {
    // this.app.log.info('Treefrog is initialized')
    // We don't need to write angular config because it can be dyn
    // switch(this.app.config.treefrog.frontend) {
    //   case 'angular':
    //     lib.Utils.Angular.buildRoutes(this.app)
    //     .then(rotues => {
    //       return Promise.resolve()
    //     })
    //   default:
    //     return Promise.resolve()
    // }
    return Promise.resolve()
  }

  /**
   * Expose the "util" module on the public API
   */
  get util () {
    return lib.Util
  }

  constructor (app) {
    super(app, {
      config: require('./config'),
      api: require('./api'),
      pkg: require('./package')
    })
  }
}