@dodi-smart/ttlock-graphql-api
Version:
TTLock GraphQL API
38 lines • 1.88 kB
JavaScript
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
;