GraphQL-Houtou
view release on metacpan or search on metacpan
examples/sqlite-blog/public/index.html view on Meta::CPAN
<label>Tags (comma separated) <input name="tags" value="graphql,perl"></label>
<button>Publish / æç¨¿</button>
<div id="create-error" class="error"></div>
</form>
<main id="feed">Loadingâ¦</main>
<script>
async function persisted(id, variables = {}) {
const response = await fetch('/graphql', {
method: 'POST', headers: {'content-type': 'application/json'},
body: JSON.stringify({id, variables})
});
const payload = await response.json();
if (!response.ok || payload.errors) throw new Error(JSON.stringify(payload, null, 2));
return payload.data;
}
const escapeHtml = value => String(value).replace(/[&<>"']/g, c => ({'&':'&','<':'<','>':'>','"':'"',"'":'''}[c]));
async function refresh() {
const [data, summary] = await Promise.all([persisted('Feed', {limit: 30}), persisted('Stats')]);
document.querySelector('#stats').textContent = `${summary.health} â ${summary.stats.posts} posts / ${summary.stats.authors} authors / ${summary.stats.comments} comments`;
( run in 2.854 seconds using v1.01-cache-2.11-cpan-800906f7e73 )