UNPKG

@notebook-intelligence/notebook-intelligence

Version:
52 lines (43 loc) 1.2 kB
// Copyright (c) Mehmet Bektas <mbektasgh@outlook.com> import { URLExt } from '@jupyterlab/coreutils'; import { ServerConnection } from '@jupyterlab/services'; /** * Call the API extension * * @param endPoint API REST end point for the extension * @param init Initial values for the request * @returns The response body interpreted as JSON */ export async function requestAPI<T>( endPoint = '', init: RequestInit = {} ): Promise<T> { // Make request to Jupyter API const settings = ServerConnection.makeSettings(); const requestUrl = URLExt.join( settings.baseUrl, 'notebook-intelligence', // API Namespace endPoint ); let response: Response; try { response = await ServerConnection.makeRequest(requestUrl, init, settings); } catch (error) { throw new ServerConnection.NetworkError(error as any); } let data: any = await response.text(); if (data.length > 0) { try { data = JSON.parse(data); } catch (error) { console.log('Not a JSON response body.', response); } } if (!response.ok) { throw new ServerConnection.ResponseError( response, data.message || data.error || data ); } return data; }