From 88ecade342e1928a23c30779101d52a0b1e3027d Mon Sep 17 00:00:00 2001 From: Juan Cruz Viotti Date: Fri, 5 Dec 2014 15:04:49 -0400 Subject: [PATCH] Document resin/errors --- lib/resin/errors/errors.coffee | 64 +++++++++++++++++++++++++++++++--- 1 file changed, 59 insertions(+), 5 deletions(-) diff --git a/lib/resin/errors/errors.coffee b/lib/resin/errors/errors.coffee index f8b4d896..c9e1024a 100644 --- a/lib/resin/errors/errors.coffee +++ b/lib/resin/errors/errors.coffee @@ -3,25 +3,79 @@ TypedError = require('typed-error') log = require('../log/log') exports.NotFound = class NotFound extends TypedError + + # Construct a Not Found error + # + # @param {String} name name of the thing that was not found + # + # @example Application not found + # throw new resin.errors.NotFound('application') + # Error: Couldn't find application + # constructor: (name) -> @message = "Couldn't find #{name}" - @code = 1 -exports.InvalidConfigFile = class NotFound extends TypedError + # Error code + code: 1 + +exports.InvalidConfigFile = class InvalidConfigFile extends TypedError + + # Construct an Invalid Config File error + # + # @param {String} file the name of the invalid configuration file + # + # @example Invalid config file error + # throw new resin.errors.InvalidConfigFile('/opt/resin.conf') + # Error: Invalid configuration file: /opt/resin.conf + # constructor: (file) -> @message = "Invalid configuration file: #{file}" - @code = 1 + + # Error code + code: 1 exports.InvalidCredentials = class InvalidCredentials extends TypedError + + # Construct an Invalid Credentials error + # + # @example Invalid credentials error + # throw new resin.errors.InvalidCredentials() + # Error: Invalid credentials + # constructor: -> @message = 'Invalid credentials' - @code = 1 + + # Error code + code: 1 exports.NotAny = class NotAny extends TypedError + + # Construct an Not Any error + # + # @param {String} name name of the thing that the user doesn't have + # + # @example Not Any applications error + # throw new resin.errors.NotAny('applications') + # Error: You don't have any applications + # constructor: (name) -> @message = "You don't have any #{name}" - @code = 0 + # Error code + code: 0 + +# Handle error instances +# +# Prints the message to stderr and aborts the program with the corresponding error code, or 0 if none. +# +# @param {Error} error the error instance +# @param {Boolean} exit whether to exit or not (defaults to true) +# +# @example Handle error +# error = new Error('My Error') +# shouldExit = false +# resin.errors.handle(error, shouldExit) +# exports.handle = (error, exit = true) -> return if not error? or error not instanceof Error