TypeScriptでライブラリをラッパーして型を閉じ込める
· ☕ 1 min read
結論 TanStack Queryの例です 1 2 3 4 5 6 7 8 9 10 import {QueryClient as QueryClientImpl, QueryClientProvider as ReactQueryQueryClientProvider} from "@tanstack/react-query" import {ReactNode} from "react" export const createClient = (): QueryClient => new QueryClientImpl() export const QueryClientProvider = ({client, children}: {client: QueryClient, children: ReactNode}) => { return <ReactQueryQueryClientProvider client={client as QueryClientImpl}>{children}</ReactQueryQueryClientProvider> } export type QueryClient = {}

sorbetでmochaを使う方法
· ☕ 1 min read
現象 sorbetでmochaのオブジェクトを引数として渡そうとすると以下のようなエラーが出る 1 TypeError: Parameter 'http_client': Expected type HttpClient, got type Mocha::Mock with value #<Mock:0xaa78> これはsorbet-r

rom-rbでcustom mapperを使っている時に must be a subclass of ROM::Struct が出る時の対処法
· ☕ 1 min read
現象 1 2 3 4 5 6 7 8 9 10 11 12 13 14 require 'rom/transformer' class UserMapper < ROM::Transformer relation :users, as: :default map_array do symbolize_keys constructor_inject Entities::User end end class UserRepository < ROM::Repository[:users] struct_namespace Entities end のようなcustom mapperを定義し、 1 user_repository.users.map_with(:default).to_a とした時に以下

rom-rbのmapperで undefined method key? が出る時の対処法
· ☕ 1 min read
現象 rom-rbでmapperを使うと key? がないというエラーが出た 1 2 3 4 5 6 7 class UserMapper < ROM::Transformer relation :users, as: :default map_array do constructor_inject Domain::Model::User end end どうやらmapperの処理に入る時

hugoのテーマを変えました
· ☕ 1 min read
コードブロックの部分とかわかりづらかったのでテーマを変えました。 しばらくはこれでいきたいと思います。 ToCとかもおいおい追加していきます。

/etc/environmentでは#を使えない
· ☕ 1 min read
短いですが割と詰まったので書いておきます。 タイトルの通りですが、 /etc/environment では # を使えません。# 以降はコメントとして処理されるようです。 エスケープも