@sphereon/ssi-sdk.data-store
Version:
69 lines • 3.16 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.statusListFrom = exports.statusListEntityFrom = void 0;
const StatusListEntities_1 = require("../../entities/statusList/StatusListEntities");
const ssi_types_1 = require("@sphereon/ssi-types");
const FormattingUtils_1 = require("../FormattingUtils");
const statusListEntityFrom = (args) => {
if (args.type === ssi_types_1.StatusListType.StatusList2021) {
const entity = new StatusListEntities_1.StatusList2021Entity();
const sl2021 = args;
entity.indexingDirection = sl2021.indexingDirection;
entity.statusPurpose = sl2021.statusPurpose;
setBaseFields(entity, args);
Object.defineProperty(entity, 'type', {
value: ssi_types_1.StatusListType.StatusList2021,
enumerable: true,
configurable: true,
});
return entity;
}
if (args.type === ssi_types_1.StatusListType.OAuthStatusList) {
const entity = new StatusListEntities_1.OAuthStatusListEntity();
const oauthSl = args;
entity.bitsPerStatus = oauthSl.bitsPerStatus;
entity.expiresAt = oauthSl.expiresAt;
setBaseFields(entity, args);
Object.defineProperty(entity, 'type', {
value: ssi_types_1.StatusListType.OAuthStatusList,
enumerable: true,
configurable: true,
});
return entity;
}
throw new Error(`Invalid status list type ${args.type}`);
};
exports.statusListEntityFrom = statusListEntityFrom;
const statusListFrom = (entity) => {
if (entity instanceof StatusListEntities_1.StatusList2021Entity) {
const result = Object.assign(Object.assign({}, getBaseFields(entity)), { type: ssi_types_1.StatusListType.StatusList2021, indexingDirection: entity.indexingDirection, statusPurpose: entity.statusPurpose });
return (0, FormattingUtils_1.replaceNullWithUndefined)(result);
}
if (entity instanceof StatusListEntities_1.OAuthStatusListEntity) {
const result = Object.assign(Object.assign({}, getBaseFields(entity)), { type: ssi_types_1.StatusListType.OAuthStatusList, bitsPerStatus: entity.bitsPerStatus, expiresAt: entity.expiresAt });
return (0, FormattingUtils_1.replaceNullWithUndefined)(result);
}
throw new Error(`Invalid status list type ${typeof entity}`);
};
exports.statusListFrom = statusListFrom;
const setBaseFields = (entity, args) => {
entity.id = args.id;
entity.correlationId = args.correlationId;
entity.length = args.length;
entity.issuer = args.issuer;
entity.driverType = args.driverType;
entity.credentialIdMode = args.credentialIdMode;
entity.proofFormat = args.proofFormat;
entity.statusListCredential = args.statusListCredential;
};
const getBaseFields = (entity) => ({
id: entity.id,
correlationId: entity.correlationId,
length: entity.length,
issuer: entity.issuer,
driverType: entity.driverType,
credentialIdMode: entity.credentialIdMode,
proofFormat: entity.proofFormat,
statusListCredential: entity.statusListCredential,
});
//# sourceMappingURL=MappingUtils.js.map