【GAS】プロパティストアを簡単に使う

【デフォルト】
・PropertiesService.getScriptProperties()のために変数を増やす
・都度getProperty()と記載する必要あり。

const properties = PropertiesService.getScriptProperties();
const hoge = properties.getProperty("hoge");

【自分の解決策】
下記のコードを使うようにした。
有効化のためにPropertiesService.getScriptProperties()と記述する必要のある煩雑さは残るものの、それ以外の労力はかなり軽減される。

const env = (() =>  new Proxy({}, {
      get: (t, p) => p === "setService" ? v => t.e = v : t.e ? t.e.getProperty(p) : void 0,
      set: (t, k, v) => t.e ? t.e.setProperty(k, v) : void 0
  }))();

【使用方法】

envの有効化

  env.setService(PropertiesService.getScriptProperties());

プロパティの取り出し

  const { USER_ACCESS_TOKEN } = env;
  // PropertiesService.getScriptProperties().getProperty("USER_ACCESS_TOKEN") と同等。
  // const token = env.USER_ACCESS_TOKEN でももちろんOK

プロパティの定義

  env.clientId = "hogehoge";
  // PropertiesService.getScriptProperties().setProperty("clientId","hogehoge") と同等。

【改善点】

・PropertiesService.getScriptProperties()の記述が面倒。envの定義に予め入れておくのも手。

const env = (() =>  new Proxy({e : PropertiesService.getScriptProperties()}, {
      get: (t, p) => t.e ? t.e.getProperty(p) : void 0,
      set: (t, k, v) => t.e ? t.e.setProperty(k, v) : void 0
  }))();

有効化の結果を最初から書いただけ。安直だがコピペを考えれば楽そう。

この記事が気に入ったらサポートをしてみませんか?