skip to content
Melodyclue

Posts

  • Storybookでaliasを設定したい

    .storybook/main.tsにてconfigに以下を追加 これでtsconfig.jsonに設定したpathsでaliasを書ける

    import tsconfigPaths from "vite-tsconfig-paths"
    import { mergeConfig } from "vite"
    ...
    async viteFinal(config) {
    return mergeConfig(config, {
    plugins: [tsconfigPaths()],
    })
    },

    参考 vite-tsconfig-paths

  • lefthookでコミット時のlintを自動化する

    lefthook - Gitフックを作成するライブラリ 例えば… コミットする前にprettierとeslintを実行する、コミット前にコミットメッセージがコミット規約に準じているかをチェックする

    commitlint - コミットメッセージが一般的なコミット規約に順しているかをチェックするlint

    lefthook.ymlを更新した後にlefthook installするとgit hookが作成される

    lefthook.yml
    commit-msg:
    commands:
    "lint commit message":
    run: yarn run commitlint --edit {1}

  • Video SDKまとめ

  • ts-resetを使うとより型安全になった

    ts-reset

    .filter(Boolean)について

    これが

    // BEFORE
    const filteredArray = [1, 2, undefined].filter(Boolean); // (number | undefined)[]

    こうなるので、直感的な型安全になる

    // AFTER
    import "@total-typescript/ts-reset/filter-boolean";
    const filteredArray = [1, 2, undefined].filter(Boolean); // number[]

  • Horizon Forbidden West - 一番好きなPS5ゲームソフト

    ⚠️ネタバレ注意!!

    Horizon Forbidden West

    広大なオープンワールドで機械獣と戦ったり、謎解き、探索していくアクションRPG

    良いところは…

    • グラフィックがめっちゃきれい(特に水、夕陽の表現)
    • アーロイの独り言にヒントや次にやるべきこと、できることが含まれている
    • 雪山、砂漠、森林という多様なフィールドがある、マップも十分広大と言える
    • 古代の遺産(車やクレーン、廃れた建物など)と、垣間見れる古代の最新技術の対比が素晴らしい
    • 機械獣の描写が丁寧で、かなりリアルな迫力、戦闘もやりがいがあった
    • 味方の拠点がところどころあるので安心
    • サブクエストのボリュームがちょうどいい
    • 機械獣の弱点をきちんと割り出せればかなり体力を削れる
    • 画面上に表示される情報量を細かく調整できる
    • 会話ムービー中、話者単位でスキップできる
    • 登れる場所を画面上にハイライトできる
    • アイテムを拾う動作(時間)を0にできる
    • 滑空時の体力制限がない
    • フォーカスモードの時間制限がない
    • 登っている最中の体力ゲージ制限がない
    • かなり序盤から乗り物乗れる
    • 難易度をいつでも変えられる
    • ファストトラベルのロード時間が約3秒、至る所にファストトラベル基点(たき火)がありアイテム(ファストトラベルパック)消費なしでトラベルできる
    • 海に潜れる(序盤では呼吸ゲージが限られているが、メインクエスト「砂の海」を完了すると潜水マスクを入手し、無制限に水中探索が可能になる)
    • 空を飛ぶ機械獣に乗れるようになるのは、かなり終盤(最終メインクエストの一つ手前のメインクエスト「テンの翼」)からだけど、あまりにも序盤で乗れたとしてもそれはそれでつまらなくなりそうなのでOK

    本編スタート前に設定をざっと見ておくと良いかも。用語の説明も載せてくれてる。

  • AstroサイトにGoogle Analyticsを入れた

    type="text/partytown"を忘れずに

    headタグの先頭に

    <!-- Google tag (gtag.js) -->
    <script type="text/partytown" async src="https://www.googletagmanager.com/gtag/js?id=タグ"
    ></script>
    <script type="text/partytown">
    window.dataLayer = window.dataLayer || [];
    function gtag() {
    dataLayer.push(arguments);
    }
    gtag("js", new Date());
    gtag("config", "タグ");
    </script>

    を入れる

  • RemixはEpic Stackから学べる

    Remixのスタータープロジェクトのひとつ Remixの作法がたくさん詰まっているので、ここから始めるのが良いかも

    https://github.com/epicweb-dev/epic-stack

  • Tempoはdate-fnsのalternaitveに十分なりうる

    Tempoという日付ライブラリ

    https://github.com/formkit/tempo

    • まず何よりドキュメントが見やすい(date-fnsに比べて)
    • タイムゾーンの扱いがシンプル(date-fnsに比べて)
    • 軽い

  • 郵便番号検索API「ポスト君」- 商用利用可能でリクエスト数無制限

    ポスト君

    • 無料
    • 高速
    • 商用利用OK
    • リクエスト数無制限
    • 事業所も検索できる
    • 稼働状況がみれる
    • ドキュメントが充実

  • Remix Debounce Usage

  • サブスクのスケジュールをキャンセルする時にサブスクもキャンセルしたい

    end_behaviorがcancelの(キャンセル予定の)scheduleを持つサブスクリプションを取り消すとき、単にscheduleをreleaseしてもサブスクリプション自体のキャンセルは取り消されないので、preserve_cancel_dateというパラメータで対応

    await stripeClient.subscriptionSchedules.release(schedule, {
    preserve_cancel_date: false,
    });

  • Vite + Remix で Lucia を使う際の ESM 依存関係エラーを解決する方法

    vite+Rmiexにてluciaを使う際に、ESMパッケージの依存関係でエラーが出る。 自分の場合、以下で動くようになった

    vite-remix-lucia-esm-error-solution