| // Copyright 2015 The Vanadium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style |
| // license that can be found in the LICENSE file. |
| |
| var extend = require('xtend'); |
| var isBrowser = require('is-browser'); |
| |
| /** |
| * @summary Namespace errors defines an error reporting mechanism that works |
| * across programming environments, and a set of common errors. |
| * |
| * @description |
| * <p>Namespace errors defines an error reporting mechanism that works |
| * across programming environments, and a set of common errors.</p> |
| * |
| * <p>Each error has an identifier string, which is used for equality checks. |
| * E.g. a Javascript client can check if a Go server returned a NoExist error by |
| * checking the string identifier. Error identifier strings start with the VDL |
| * package path to ensure uniqueness, e.g. "v.io/v23/verror.NoExist".</p> |
| * |
| * <p>Each error contains an action, which is the suggested action for a typical |
| * client to perform upon receiving the error. E.g. some action codes represent |
| * whether to retry the operation after receiving the error.</p> |
| * |
| * <p>Each error also contains a list of typed parameters, and an error message. |
| * The error message is created by looking up a format string keyed on the error |
| * identifier, and applying the parameters to the format string. This enables |
| * error messages to be generated in different languages.</p> |
| * |
| * @namespace |
| * @name verror |
| * @memberof module:vanadium |
| */ |
| module.exports = extend(require('../gen-vdl/v.io/v23/verror'), { |
| makeError: require('./make-errors'), |
| actions: require('./actions'), |
| VanadiumError: require('./vanadium-error'), |
| }); |
| |
| if (isBrowser) { |
| // Extend extension errors if browser |
| module.exports = extend( |
| module.exports, |
| require('../browser/extension-errors') |
| ); |
| } |