entlib
Version:
Entry API Wrapper
21 lines • 2.44 kB
text/typescript
export namespace ProjectLoader {
export let running = false
export const run = async () => {
const exportedProject = Entry.exportProject()
const projectData = await (await fetch(`https://playentry.org/graphql`, {
method: 'POST',
body: JSON.stringify({
query: "\n query($id: ID! $groupId: ID) {\n project(id: $id, groupId: $groupId) {\n \n id\n name\n user {\n \n id\n nickname\n username\n profileImage {\n \n id\n name\n label {\n \n ko\n en\n ja\n vn\n\n }\n filename\n imageType\n dimension {\n \n width\n height\n\n }\n trimmed {\n filename\n width\n height\n }\n\n }\n status {\n following\n follower\n }\n description\n role\n\n }\n visit\n speed\n objects\n variables\n messages\n functions\n tables\n scenes\n thumb\n isopen\n blamed\n isPracticalCourse\n category\n categoryCode\n created\n updated\n shortenUrl\n parent {\n id\n name\n user {\n id\n username\n nickname\n }\n }\n likeCnt\n favorite\n special\n isForLecture\n isForStudy\n isForSubmit\n hashId\n complexity\n staffPicked\n ranked\n submitId {\n id\n }\n description\n description2\n description3\n hasRealTimeVariable\n realTimeVariable {\n \n variableType\n key\n value\n array {\n key\n data\n }\n minValue\n maxValue\n visible\n x\n y\n width\n height\n object\n\n }\n commentGroup {\n group\n count\n }\n likeCntGroup {\n group\n count\n }\n visitGroup {\n group\n count\n }\n recentGroup {\n group\n count\n }\n learning\n expansionBlocks\n aiUtilizeBlocks\n\n }\n }\n",
variables: { id: Entry.projectId }
}),
headers: new Headers({
'content-type': 'application/json'
})
})).json()
Entry.clearProject()
Entry.loadProject(Object.keys(exportedProject).reduce((acc, cur) => {
acc[cur] = projectData.data.project[cur]
return acc
}, <any> {}))
}
}