github.com/muhammedhassanm/blockchain@v0.0.0-20200120143007-697261defd4d/sawtooth-supply-chain-master/ledger_sync/system/config.js (about)

     1  /**
     2   * Copyright 2018 Intel Corporation
     3   *
     4   * Licensed under the Apache License, Version 2.0 (the "License");
     5   * you may not use this file except in compliance with the License.
     6   * You may obtain a copy of the License at
     7   *
     8   *     http://www.apache.org/licenses/LICENSE-2.0
     9   *
    10   * Unless required by applicable law or agreed to in writing, software
    11   * distributed under the License is distributed on an "AS IS" BASIS,
    12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    13   * See the License for the specific language governing permissions and
    14   * limitations under the License.
    15   * ----------------------------------------------------------------------------
    16   */
    17  'use strict'
    18  
    19  const loadConfig = (defaultValue = {}) => {
    20    try {
    21      return require('../config.json')
    22    } catch (err) {
    23      // Throw error on bad JSON, otherwise ignore
    24      if (err instanceof SyntaxError) throw err
    25      return {}
    26    }
    27  }
    28  
    29  const config = loadConfig()
    30  
    31  const initConfigValue = (key, defaultValue = null) => {
    32    config[key] = process.env[key] || config[key] || defaultValue
    33  }
    34  
    35  // Setup non-sensitive config variable with sensible defaults,
    36  // if not set in environment variables or config.json
    37  initConfigValue('RETRY_WAIT', 5000)
    38  initConfigValue('VALIDATOR_URL', 'tcp://localhost:4004')
    39  initConfigValue('DB_HOST', 'localhost')
    40  initConfigValue('DB_PORT', 28015)
    41  initConfigValue('DB_NAME', 'supply_chain')
    42  
    43  module.exports = config