UNPKG

ts-mls

Version:

[![CI](https://github.com/LukaJCB/ts-mls/actions/workflows/ci.yml/badge.svg)](https://github.com/LukaJCB/ts-mls/actions/workflows/ci.yml) [![npm version](https://badge.fury.io/js/ts-mls.svg)](https://badge.fury.io/js/ts-mls) [![Coverage Status](https://co

31 lines 1.59 kB
import { flatMapDecoder, mapDecoder } from "./codec/tlsDecoder.js"; import { contramapEncoders } from "./codec/tlsEncoder.js"; import { decodeVarLenData, decodeVarLenType, encodeVarLenData, encodeVarLenType } from "./codec/variableLength.js"; import { decodeCredentialType, encodeCredentialType } from "./credentialType.js"; export const encodeCredentialBasic = contramapEncoders([encodeCredentialType, encodeVarLenData], (c) => [c.credentialType, c.identity]); export const encodeCredentialX509 = contramapEncoders([encodeCredentialType, encodeVarLenType(encodeVarLenData)], (c) => [c.credentialType, c.certificates]); export const encodeCredentialCustom = contramapEncoders([encodeCredentialType, encodeVarLenData], (c) => [c.credentialType, c.data]); export const encodeCredential = (c) => { switch (c.credentialType) { case "basic": return encodeCredentialBasic(c); case "x509": return encodeCredentialX509(c); default: return encodeCredentialCustom(c); } }; const decodeCredentialBasic = mapDecoder(decodeVarLenData, (identity) => ({ credentialType: "basic", identity, })); const decodeCredentialX509 = mapDecoder(decodeVarLenType(decodeVarLenData), (certificates) => ({ credentialType: "x509", certificates })); export const decodeCredential = flatMapDecoder(decodeCredentialType, (credentialType) => { switch (credentialType) { case "basic": return decodeCredentialBasic; case "x509": return decodeCredentialX509; } }); //# sourceMappingURL=credential.js.map