UNPKG

next-auth

Version:

Authentication for Next.js

113 lines (112 loc) 4.75 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.BroadcastChannel = BroadcastChannel; exports.apiBaseUrl = apiBaseUrl; exports.fetchData = fetchData; exports.now = now; var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator")); var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator")); function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } function fetchData(_x, _x2, _x3) { return _fetchData.apply(this, arguments); } function _fetchData() { _fetchData = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(path, __NEXTAUTH, logger) { var _ref, ctx, _ref$req, req, url, _req$headers, options, res, data, _args = arguments; return _regenerator.default.wrap(function _callee$(_context) { while (1) switch (_context.prev = _context.next) { case 0: _ref = _args.length > 3 && _args[3] !== undefined ? _args[3] : {}, ctx = _ref.ctx, _ref$req = _ref.req, req = _ref$req === void 0 ? ctx === null || ctx === void 0 ? void 0 : ctx.req : _ref$req; url = "".concat(apiBaseUrl(__NEXTAUTH), "/").concat(path); _context.prev = 2; options = { headers: _objectSpread({ "Content-Type": "application/json" }, req !== null && req !== void 0 && (_req$headers = req.headers) !== null && _req$headers !== void 0 && _req$headers.cookie ? { cookie: req.headers.cookie } : {}) }; if (req !== null && req !== void 0 && req.body) { options.body = JSON.stringify(req.body); options.method = "POST"; } _context.next = 7; return fetch(url, options); case 7: res = _context.sent; _context.next = 10; return res.json(); case 10: data = _context.sent; if (res.ok) { _context.next = 13; break; } throw data; case 13: return _context.abrupt("return", Object.keys(data).length > 0 ? data : null); case 16: _context.prev = 16; _context.t0 = _context["catch"](2); logger.error("CLIENT_FETCH_ERROR", { error: _context.t0, url: url }); return _context.abrupt("return", null); case 20: case "end": return _context.stop(); } }, _callee, null, [[2, 16]]); })); return _fetchData.apply(this, arguments); } function apiBaseUrl(__NEXTAUTH) { if (typeof window === "undefined") { return "".concat(__NEXTAUTH.baseUrlServer).concat(__NEXTAUTH.basePathServer); } return __NEXTAUTH.basePath; } function now() { return Math.floor(Date.now() / 1000); } function BroadcastChannel() { var name = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : "nextauth.message"; return { receive: function receive(onReceive) { var handler = function handler(event) { var _event$newValue; if (event.key !== name) return; var message = JSON.parse((_event$newValue = event.newValue) !== null && _event$newValue !== void 0 ? _event$newValue : "{}"); if ((message === null || message === void 0 ? void 0 : message.event) !== "session" || !(message !== null && message !== void 0 && message.data)) return; onReceive(message); }; window.addEventListener("storage", handler); return function () { return window.removeEventListener("storage", handler); }; }, post: function post(message) { if (typeof window === "undefined") return; try { localStorage.setItem(name, JSON.stringify(_objectSpread(_objectSpread({}, message), {}, { timestamp: now() }))); } catch (_unused) {} } }; }