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 => ({'&':'&amp;','<':'&lt;','>':'&gt;','"':'&quot;',"'":'&#39;'}[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 )