Source: ncob.js

/**
 * NFC On Browserのメインクラス
 */
class NFCReader {
  /**
   * @param {String} serveraddress NFCプロキシのサーバーアドレス
   * @example const ncob = new NFCReader("http://localhost:9235")
   */
  constructor(serveraddress) {
    this.serveraddress = serveraddress;
  }
  /**
   * スキャンを実行するメソッド
   * @return {string} NFCタグに書き込まれたレコードを返す
   * @example ncob.scan();
   */
  async scan() {
    return await this.scanaccesst();
  }
  /**
   * NFCタグへの書き込みを行うメソッド
   * @param {String} content 書き込む内容
   * @return {string} NFCタグに書き込まれたレコードを返す
   * @example ncob.write("Hello World!");
   */
  async write(content) {
    return await this.writerequest(content);
  }
  /**
   * サーバーが動いているかの確認を行うメソッド
   * @return {boolean} サーバーに到達可能か、True/Falseを返す
   * @example ncob.accessible();
   */
  accessible() {
    return new Promise((resolve, reject) => {
      fetch(this.serveraddress, {
        method: "GET",
        mode: "cors",
      })
        .then((response) => {
          if (response.ok) {
            console.log("Response OK");
            resolve(true);
          }
          resolve(false);
        })
        .catch((error) => {
          // ネットワークエラーの場合はここに到達する
          console.error(error);
        });
    });
  }
  async scanaccesst() {
    const accessaddress = this.serveraddress + "scan";
    return await (await fetch(accessaddress)).json();
  }
  async writerequest(content) {
    const writeaddress = this.serveraddress + "write";
    return await (
      await fetch(writeaddress, {
        method: "POST",
        mode: "cors",
        body: content,
      })
    ).json();
  }
}