UNPKG

frappe-js-sdk

Version:

TypeScript/JavaScript client for Frappe Framework REST API

63 lines (62 loc) 2.61 kB
"use strict"; var __assign = (this && this.__assign) || function () { __assign = Object.assign || function(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; return __assign.apply(this, arguments); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.getRequestHeaders = exports.getAxiosClient = void 0; var axios_1 = require("axios"); function getAxiosClient(appURL, useToken, token, tokenType, customHeaders) { var axiosInstance = axios_1.default.create({ baseURL: appURL, headers: getRequestHeaders(useToken, tokenType, token, appURL, customHeaders), withCredentials: true, }); // Add request interceptor to dynamically set CSRF token and auth token axiosInstance.interceptors.request.use(function (config) { // Update CSRF token on each request if available if (typeof window !== 'undefined' && window.csrf_token && window.csrf_token !== '{{ csrf_token }}') { config.headers['X-Frappe-CSRF-Token'] = window.csrf_token; } // Update authorization token if using token auth if (useToken && tokenType && token) { config.headers.Authorization = "".concat(tokenType, " ").concat(token()); } return config; }); return axiosInstance; } exports.getAxiosClient = getAxiosClient; function getRequestHeaders(useToken, tokenType, token, appURL, customHeaders) { if (useToken === void 0) { useToken = false; } var headers = { Accept: 'application/json', 'Content-Type': 'application/json; charset=utf-8', }; if (useToken && tokenType && token) { headers.Authorization = "".concat(tokenType, " ").concat(token()); } // in case of browser environments if (typeof window !== 'undefined' && typeof document !== 'undefined') { if (window.location) { if (appURL && appURL !== window.location.origin) { // Do not set X-Frappe-Site-Name } else { headers['X-Frappe-Site-Name'] = window.location.hostname; } } if (window.csrf_token && window.csrf_token !== '{{ csrf_token }}') { headers['X-Frappe-CSRF-Token'] = window.csrf_token; } } return __assign(__assign({}, headers), (customHeaders !== null && customHeaders !== void 0 ? customHeaders : {})); } exports.getRequestHeaders = getRequestHeaders;