【Node.js】memoizeで手軽にメモ化する

こんにちは、フリーランスエンジニアの太田雅昭です。

初期化処理

API Clientなどの初期化処理は、地味に面倒です。たとえば

let client: Client;

export function getClient(){
  if (!client) {
    client = new Client();
  }
  return client;
}
import { getClient } from './client';

getClient().xxx();

こう言うのは、地味に精神が削られていきます。同じようなコードを何度も書くのは、プログラマにとっては苦行です。

memoize

memoizeを使えば、こうした苦行から解放されます。ついでに関数名もスマートにしています。

import memoize from 'memoize';

export const client = memoize(() => new Client());
import { client } from './client';

client().xxx();