import axios from 'axios'; import { AppState } from '../redux/app'; import { Language } from '../redux/types'; export async function getExample(id: string) { const response = await axios.get(`/static/examples/${id}`); return response.data; } export async function compileContract( syntax: Language, code: string, entrypoint: string, format?: string ) { const response = await axios.post('/api/compile-contract', { syntax, code, entrypoint, format }); return response.data; } export async function compileExpression( syntax: Language, expression: string, format?: string ) { const response = await axios.post('/api/compile-expression', { syntax, expression, format }); return response.data; } export async function dryRun( syntax: Language, code: string, entrypoint: string, parameters: string, storage: string ) { // For whatever reason, storage set by examples is not treated as a string. So we convert it here. storage = `${storage}`; const response = await axios.post('/api/dry-run', { syntax, code, entrypoint, parameters, storage }); return response.data; } export async function share({ editor, compile, dryRun, deploy, evaluateValue, evaluateFunction }: Partial) { const response = await axios.post('/api/share', { editor, compile, dryRun, deploy, evaluateValue, evaluateFunction }); return response.data; } export async function deploy( syntax: Language, code: string, entrypoint: string, storage: string ) { // For whatever reason, storage set by examples is not treated as a string. So we convert it here. storage = `${storage}`; const response = await axios.post('/api/deploy', { syntax, code, entrypoint, storage }); return response.data; } export async function evaluateValue( syntax: Language, code: string, entrypoint: string ) { const response = await axios.post('/api/evaluate-value', { syntax, code, entrypoint }); return response.data; } export async function runFunction( syntax: Language, code: string, entrypoint: string, parameters: string ) { const response = await axios.post('/api/run-function', { syntax, code, entrypoint, parameters }); return response.data; } export function getErrorMessage(ex: any): string { if (ex.response && ex.response.data) { return ex.response.data.error; } else if (ex instanceof Error) { return ex.message; } return JSON.stringify(ex); }