UNPKG

jose

Version:

Universal 'JSON Web Almost Everything' - JWA, JWS, JWE, JWT, JWK with no dependencies

58 lines (57 loc) 1.79 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const epoch_js_1 = require("./epoch.js"); const is_object_js_1 = require("./is_object.js"); const secs_js_1 = require("./secs.js"); class ProduceJWT { constructor(payload) { if (!is_object_js_1.default(payload)) { throw new TypeError('JWT Claims Set MUST be an object'); } this._payload = payload; } setIssuer(issuer) { this._payload = { ...this._payload, iss: issuer }; return this; } setSubject(subject) { this._payload = { ...this._payload, sub: subject }; return this; } setAudience(audience) { this._payload = { ...this._payload, aud: audience }; return this; } setJti(jwtId) { this._payload = { ...this._payload, jti: jwtId }; return this; } setNotBefore(input) { if (typeof input === 'number') { this._payload = { ...this._payload, nbf: input }; } else { this._payload = { ...this._payload, nbf: epoch_js_1.default(new Date()) + secs_js_1.default(input) }; } return this; } setExpirationTime(input) { if (typeof input === 'number') { this._payload = { ...this._payload, exp: input }; } else { this._payload = { ...this._payload, exp: epoch_js_1.default(new Date()) + secs_js_1.default(input) }; } return this; } setIssuedAt(input) { if (typeof input === 'undefined') { this._payload = { ...this._payload, iat: epoch_js_1.default(new Date()) }; } else { this._payload = { ...this._payload, iat: input }; } return this; } } exports.default = ProduceJWT;