JSONからCLIで値を取れる locker-keys を作った

何故作った

何に使うものなのか分からない方がほとんどだと思いますが、npmに月額7$払ってプライベートパッケージとして自分用にカスタマイズしたものを作れるのが前提みたいな話だったりします。誰にでも見られてもいいならいいやつならパブリックでもいいと思いますが!

作った理由は、

  1. .dotfilesなんかに書くのはちょっと…
  2. トークンなど諸々引っ張ってこれるものが欲しかった
  3. パブリックじゃない所で というのが主な理由です。

まず、こんなJSONが配置されているとします。

{
  "foo": {
    "token": "..."
  }
}

その時にこんなコマンドを叩くと、そのパスの値が取れるというだけです。ちなみにパスが途中だった場合はhelpが表示されます。

locker-keys foo token ...

自分用ツールを作る

毎回JSONを作るのは面倒くさいので、自分用の読み込まれている状態のコマンドを作ります。まずlocker-keysをインストールします。

yarn add locker-files

コマンド実行時に実行されるファイルcli.jsはこんな感じにします。

#!/usr/bin/env node
const lockerKeys = require('locker-keys').default;

(async () => {
  await lockerKeys.process(__dirname);
})()
  .catch(err => {
    console.error(err);
  })

あとは、同じディレクトリにlocker.jsonというファイルを置くだけです!
あ、package.json"bin": {"コマンドになる名前": "cli.js"}はお忘れなく。

プライベート公開後それをインストールして、コマンドになる名前 <prop> <prop>で想定通りの値が表示されてば完了です!