UNPKG

@dodi-smart/ttlock-graphql-api

Version:
38 lines 1.88 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.fixBooleanNullable = exports.fixNumberNullable = exports.fixStringNullable = exports.getUserClaims = exports.required = exports.optional = void 0; const logger_1 = require("./logger"); const jsonwebtoken_1 = __importDefault(require("jsonwebtoken")); const optional = (name, fallback) => process.env[name] || fallback; exports.optional = optional; const required = (name) => process.env[name] || (logger_1.logger.error('🚨 Missing required env var: ' + name), process.exit(1)); exports.required = required; const getUserClaims = (req) => { try { const authorizationHeader = req.headers.get('authorization'); const accessToken = authorizationHeader === null || authorizationHeader === void 0 ? void 0 : authorizationHeader.split(' ')[1]; if (!accessToken) { return undefined; } if (!process.env.NHOST_JWT_SECRET) { throw new Error('NHOST_JWT_SECRET env var is not set'); } const jwtSecret = JSON.parse(process.env.NHOST_JWT_SECRET); const decodedToken = jsonwebtoken_1.default.verify(accessToken, jwtSecret.key); return decodedToken['https://hasura.io/jwt/claims']; } catch (error) { return undefined; } }; exports.getUserClaims = getUserClaims; const fixStringNullable = (field) => field == null ? undefined : field; exports.fixStringNullable = fixStringNullable; const fixNumberNullable = (field) => field == null ? undefined : field; exports.fixNumberNullable = fixNumberNullable; const fixBooleanNullable = (field) => field == null ? undefined : field; exports.fixBooleanNullable = fixBooleanNullable; //# sourceMappingURL=utils.js.map