errors.js 1.37 KB
'use strict';

var E = module.exports;

function create(code, msg) {
    E[code] = function(ctx, msg2) {
        var err = new Error(msg);
        err.code = code;
        err.context = ctx;
        if (msg2) {
            err.message += ': ' + msg2;
        }
        /*
		Object.keys(extras).forEach(function(k) {
			if ('message' === k) {
				err.message += ': ' + extras[k];
			} else {
				err[k] = extras[k];
			}
		});
    */
        return err;
    };
}

// TODO open issues and link to them as the error url
create(
    'NO_MAINTAINER',
    'please supply `maintainerEmail` as a contact for security and critical bug notices'
);
create(
    'BAD_ORDER',
    'altnames should be in deterministic order, with subject as the first altname'
);
create('NO_SUBJECT', 'no certificate subject given');
create(
    'NO_SUBSCRIBER',
    'please supply `subscriberEmail` as a contact for failed renewal and certificate revocation'
);
create(
    'INVALID_SUBSCRIBER',
    '`subscriberEmail` is not a valid address, please check for typos'
);
create(
    'INVALID_HOSTNAME',
    'valid hostnames must be restricted to a-z0-9_.- and contain at least one "."'
);
create(
    'INVALID_DOMAIN',
    'one or more domains do not exist on public DNS SOA record'
);
create(
    'NOT_UNIQUE',
    'found duplicate domains, or a subdomain that overlaps a wildcard'
);

// exported for testing only
E._create = create;