ts-spiffe
Version:
typescript client for spiffe
46 lines • 1.44 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.TrustDomain = void 0;
const SpiffeId_1 = require("./SpiffeId");
const exception_1 = require("../exception");
class TrustDomain {
constructor(trustDomain) {
this.name = trustDomain;
}
toString() {
return this.name;
}
toIdString() {
return SpiffeId_1.SpiffeId.SPIFFE_SCHEME + "://" + this.name;
}
newSpiffeId(...segments) {
return SpiffeId_1.SpiffeId.fromSegments(this, segments);
}
static parse(idOrName) {
if (idOrName.includes(":/")) {
const spiffeId = SpiffeId_1.SpiffeId.parse(idOrName);
return spiffeId.getTrustDomain();
}
TrustDomain.validateTrustDomainName(idOrName);
return new TrustDomain(idOrName);
}
static validateTrustDomainName(name) {
const chars = [...name];
for (const c in chars) {
if (!TrustDomain.isValidTrustDomainChar(c)) {
throw new exception_1.InvalidSpiffeIdError(SpiffeId_1.SpiffeId.BAD_TRUST_DOMAIN_CHAR);
}
}
}
static isValidTrustDomainChar(c) {
if (c >= 'a' && c <= 'z') {
return true;
}
if (c >= '0' && c <= '9') {
return true;
}
return c == '-' || c == '.' || c == '_';
}
}
exports.TrustDomain = TrustDomain;
//# sourceMappingURL=TrustDomain.js.map