MilkCocoa短縮URLサイトサンプル

iwb.jp/b?
遷移先URL

<h1>MilkCocoa短縮URLサイトサンプル</h1>
<table>
  <tr>
    <td>iwb.jp/b?</td>
    <td><input type="text" value="" id="val"></td>
  </tr>
  <tr>
    <td>遷移先URL</td>
    <td><input type="text" value="" id="url"></td>
  </tr>
</table>
<p><button id="b">短縮URL登録</button></p>
<p id="r"></p>
const milkcocoa = new MilkCocoa('vuejcx8418w.mlkcca.com');
const ds = milkcocoa.dataStore('urls');
const b = document.getElementById('b');
const c = document.getElementById('c');
const r = document.getElementById('r');
const p = location.search.substring(1);
let datas;
milkcocoa.dataStore('urls').stream().next((err, data) => {
  datas = data.filter(x => x.value.val);
  datas.forEach(x => {
    if (x.value.val === p) {
      location.href = x.value.url
    }
  });
});

// 登録ボタンを押したら登録
b.addEventListener('click', () => {
  const val = document.getElementById('val').value;
  const url = document.getElementById('url').value;
  if (!val || !url) return;

  // 登録済みの短縮URLは処理を中断
  if (datas.find(x => x.value.val === val)) {
    r.textContent = 'この短縮URLは登録済みです。';
    return;
  }

  // 短縮URLを登録
  ds.push({val: val, url: url});
  r.innerHTML =
`<pre>短縮URLを登録しました。
iwb.jp/b?${val}
↓
${url}</pre>`;

  // 最新のデータに更新
  milkcocoa.dataStore('urls').stream().next((err, data) => {
    datas = data.filter(x => x.value.val);
  });
});