@nestjs-mod/sso
Version:
NestJS SDK for Single Sign-On on NestJS and Angular with webhooks and social authorization (Wrapper for https://www.npmjs.com/package/@nestjs-mod/sso-rest-sdk)
57 lines • 2.42 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.SsoError = exports.SSO_ERROR_ENUM_TITLES = exports.SsoErrorEnum = void 0;
const tslib_1 = require("tslib");
const misc_1 = require("@nestjs-mod/misc");
const swagger_1 = require("@nestjs/swagger");
var SsoErrorEnum;
(function (SsoErrorEnum) {
SsoErrorEnum["COMMON"] = "SSO-000";
SsoErrorEnum["FORBIDDEN"] = "SSO-001";
SsoErrorEnum["UNAUTHORIZED"] = "SSO-002";
})(SsoErrorEnum || (exports.SsoErrorEnum = SsoErrorEnum = {}));
exports.SSO_ERROR_ENUM_TITLES = {
[SsoErrorEnum.COMMON]: (0, misc_1.getText)('Sso error'),
[SsoErrorEnum.FORBIDDEN]: (0, misc_1.getText)('Forbidden'),
[SsoErrorEnum.UNAUTHORIZED]: (0, misc_1.getText)('Unauthorized'),
};
class SsoError extends Error {
constructor(message, code, metadata) {
const codeAsMetadata = Boolean(code && !Object.values(SsoErrorEnum).includes(String(code)));
const messageAsCode = Boolean(message && Object.values(SsoErrorEnum).includes(message));
const preparedCode = messageAsCode ? message : code;
const preparedMessage = messageAsCode && preparedCode ? exports.SSO_ERROR_ENUM_TITLES[preparedCode] : message;
metadata = codeAsMetadata ? code : metadata;
code = preparedCode || SsoErrorEnum.COMMON;
message = preparedMessage || exports.SSO_ERROR_ENUM_TITLES[code];
super(message);
this.code = SsoErrorEnum.COMMON;
this.code = code;
this.message = message;
this.metadata = metadata;
}
}
exports.SsoError = SsoError;
tslib_1.__decorate([
(0, swagger_1.ApiProperty)({
type: String,
description: Object.entries(exports.SSO_ERROR_ENUM_TITLES)
.map(([key, value]) => `${value} (${key})`)
.join(', '),
example: exports.SSO_ERROR_ENUM_TITLES[SsoErrorEnum.COMMON],
}),
tslib_1.__metadata("design:type", String)
], SsoError.prototype, "message", void 0);
tslib_1.__decorate([
(0, swagger_1.ApiProperty)({
enum: SsoErrorEnum,
enumName: 'SsoErrorEnum',
example: SsoErrorEnum.COMMON,
}),
tslib_1.__metadata("design:type", Object)
], SsoError.prototype, "code", void 0);
tslib_1.__decorate([
(0, swagger_1.ApiPropertyOptional)({ type: Object }),
tslib_1.__metadata("design:type", Object)
], SsoError.prototype, "metadata", void 0);
//# sourceMappingURL=sso.errors.js.map