code: function(scope) {
          if (!_argValidator.checkString(scope)) {
              scope = _applicationScope;
          }
  
          let config = _configCache[scope];
          if (!config) {
              const data = _deepDefaults(
                  _deepDefaults({}, _config[scope]),
                  _config.default
              );
              config = new AppConfig(data);
              if (_isInitialized) {
                  _configCache[scope] = config;
              }
          }
  
          return config;
      }
docs: Returns a configuration object that is scoped to a specific environment.
  This configuration object will return default application configuration
  properties, overridden by environment speicific values.
  
  @param {String} [scope=<default scope>] The name of the environment for
  which the application configuration object will be returned.  If
  omitted, this value will be defaulted to the environment
  set by invoking
  [setAppScope()]{@link module:config.setAppScope}. If this
  method was never invoked, the default scope is "default".
  
  @return {AppConfig} A configuration object that can be used to query for
  configuration parameters.