@httpc/kit
Version:
httpc toolbox for building function-based API with minimal code and end-to-end type safety
31 lines (30 loc) • 860 B
JavaScript
import { Assertion } from ".";
function serializeTokenClaim(token) {
return typeof token === "string" ? token : token.join(":");
}
function serializeAuthorizationClaim(claim) {
let str = serializeTokenClaim(claim.token);
if (claim.scope) {
str += "@" + serializeTokenClaim(claim.scope);
}
return str;
}
function serializeAssertionClaim(assertion) {
let str = serializeAuthorizationClaim(assertion);
if (assertion.negative) {
str = "!" + str;
}
return str;
}
function serialize(what) {
const serialize = what instanceof Assertion
? serializeAssertionClaim
: serializeAuthorizationClaim;
return what.claims.map(serialize).join(" ");
}
export default {
serialize,
serializeTokenClaim,
serializeAuthorizationClaim,
serializeAssertionClaim
};