setConfigとgetConfig

にメンテナンス済み

kintone プラグインを取り扱うための API として、プラグインの設定情報を保存、取得するための API が用意されています。

しかし、保存される情報は以下の型となります。

APIで保存される情報
type PluginConfig = {
  [key: string]: string;
};

つまり、1 つのプロパティに 1 つの文字列のみであれば問題ありませんが、文字列以外の型を格納する場合は、プロパティ毎に JSON.stringify して保存し、取得時に JSON.parse する必要があります。

これを都度意識するのは単純に手間になりますし、ミスの原因にもなりかねません。

今回はその部分を意識しなくてもデータをやり取りするための関数を用意したので、よろしければご活用ください。

プラグイン情報取得時

データの取得は設定画面、操作画面どちらでも利用できる API が用意されています。

/**
 * プラグインがアプリ単位で保存している設定情報を返却します
 */
const restoreStorage = (id) => {
  const config = kintone.plugin.app.getConfig(id);

  return Object.entries(config).reduce(
    (acc, [key, value]) => ({ ...acc, [key]: JSON.parse(value) }),
    {}
  );
};

プラグイン情報設定時

こちらは基本的に設定画面のみでの利用が多いかと思います。

/**
 * アプリにプラグインの設定情報を保存します
 */
const storeStorage = (target, callback) => {
  const converted = Object.entries(target).reduce(
    (acc, [key, value]) => ({ ...acc, [key]: JSON.stringify(value) }),
    {}
  );
  kintone.plugin.app.setConfig(converted, callback);
};
#JavaScript #kintone