UNPKG

xiot-core-spec-ts

Version:
42 lines (41 loc) 1.7 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.JwtCodec = void 0; const JwtType_1 = require("../../typedef/jwt/JwtType"); const JwtSecretsImplCodec_1 = require("./impl/JwtSecretsImplCodec"); const JwtRsaImplCodec_1 = require("./impl/JwtRsaImplCodec"); const JwtEsImplCodec_1 = require("./impl/JwtEsImplCodec"); const JwtSecretsImpl_1 = require("../../typedef/jwt/impl/JwtSecretsImpl"); const JwtRsaImpl_1 = require("../../typedef/jwt/impl/JwtRsaImpl"); const JwtEsImpl_1 = require("../../typedef/jwt/impl/JwtEsImpl"); class JwtCodec { static decode(o) { const type = (0, JwtType_1.JwtTypeFromString)(o.type); switch (type) { case JwtType_1.JwtType.SECRETS: return JwtSecretsImplCodec_1.JwtSecretsImplCodec.decode(o['secrets']); case JwtType_1.JwtType.RSA: return JwtRsaImplCodec_1.JwtRsaImplCodec.decode(o['rsa']); case JwtType_1.JwtType.ES: return JwtEsImplCodec_1.JwtEsImplCodec.decode(o['es']); default: throw new Error('Jwt Invalid: ' + o); } } static encode(jwt) { const o = { type: jwt.type.toString() }; if (jwt instanceof JwtSecretsImpl_1.JwtSecretsImpl) { o.secrets = JwtSecretsImplCodec_1.JwtSecretsImplCodec.encode(jwt); } else if (jwt instanceof JwtRsaImpl_1.JwtRsaImpl) { o.rsa = JwtRsaImplCodec_1.JwtRsaImplCodec.encode(jwt); } else if (jwt instanceof JwtEsImpl_1.JwtEsImpl) { o.es = JwtEsImplCodec_1.JwtEsImplCodec.encode(jwt); } return o; } } exports.JwtCodec = JwtCodec;