133 lines
2.5 KiB
TypeScript
133 lines
2.5 KiB
TypeScript
![]() |
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<AppState>) {
|
||
|
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);
|
||
|
}
|