stripe webhook express.raw() rawBody

第一引数はバッファを欲しがってる stripe.webhooks.constructEvent(req.body, sig, endpointSecret) バッファの見た目 <Buffer 7b 0a 20 20 22 69 64 22 3a 20 22 65 76 74 5f 31 4a 39 35 41 55 44 52 30 4f 7a 53 72 32 74 4a 53 39 6d 34 77 70 37 77 22 2c 0a 20 20 22 6f 62 6a 65 63 ... 3342 more bytes> イベントを発行するとイベントオブジェクトがPOSTされる stri…</buffer>

Typescript UtilityTypes まとめる

React に続き TypeScript も今週から始めてみたけど、おもろい!型がおもろい!カタが! UtilityTypes について、少しずつ分析してみる。 Exclued U に割り当て可能な T のキーを全て exclued (除外)した T を構築 type Exclude<T, U> = T extends U ? never : T T</t,>…

React おもろい

React を今月から始めてみたけど、おもろい! サスペンスを使ったデータ取得までしか見てないけど、とりあえず体感したかったし、公式を参考に適当に実装(^^♪。 //エラー境界 class ErrorBoundary extends React.Component {...} //リソース const userResour…

sass アンパサンド & 後ろ ネスト 親参照

sass の親を指定する & について、セレクタの後ろについているのを見かけた 親セレクタ { 子セレクタ & {...} } このようにコンパイルされるが 子セレクタ 親セレクタ {...} css 3では親を参照できないので、当然親のスタイルは変わりませんでした でもこう…

IntersectionObserver スクロール position: absolute ⇔ position fixed

下へスクロールしたら上へ戻るためのスクロールトップボタンを表示させたい 下へスクロールすると上部へ消えていく任意の要素を監視対象とした スクロールトップボタンはデフォルトの設定で不可視、および位置として position: absolute を設定して調整(bott…

PHP null 合体演算子 便利過ぎる

試したらできた 関数($a ?? $b = [//]); 左辺が null なら右辺を引数に渡すが その時に変数を動的に初期化できる つまり、名前を付けることができる これもできた $arr1; foreach ($arr1 ?? $arr2 ?? $arr3 = [1, 2, 3] as $item) { echo $item; //123 } な…

PHP セッション 閲覧履歴

適当に実装してみた 記事をクリックする URLのパスパラメータを記事のidとしてセッションに配列で保存 こんなURL http://localhost/article/15 FQDN + パスパラメータを取得 $url = (empty($_SERVER['HTTPS']) ? 'http://' : 'https://') . $_SERVER['HTTP_H…

IntersectionObserver 複数 バグ? スクロール

1つのオブザーバで複数のアイテムを監視する場合、(頭も)バグる 結論 2つのオブザーバで同じコンテナ内の異なるアイテムをそれぞれ1つずつ監視することで解決した observer1.observe(document.querySelector(".container").firstElementChild) observer2.obs…

無限スクロール infinite scroll 「intersection observer」

適当に実装してみた option で渡す root は null の場合と任意の場合があるので場合分け いずれもその viewport 内の最後の要素を監視 上にスクロールして戻る時は監視不要 よってその都度監視を停止して新しい監視を開始 class InfiniteScroller { Id = 0; …

【composer dump-autoload 効かない】Fatal error: Uncaught Error: Class 'XXX' not found

composer dump-autoload が効かない composer dump-autoload --optimize が効かない 結論 プロジェクトのディレクトリ構造を全身全霊の力を持って強く意識して、それから composer.json を正しく記述する composer.json 変更前 "autoload": { "psr-4": { "Ap…

git revert コンフリクト CONFLICT (modify/delete)

状態を確認 git status git status -b git status -sb コマンドが実行可能か dry run してみる git add -n . git push -n origin main 本題 CONFLICT (modify/delete) ファイル作成と同じファイルを更新のコミットがそれぞれ存在し ファイル作成のコミットを…

アロー関数 this

javascript アロー関数は this を持たず、レキシカルスコープの this を使用する 持たないことを束縛しないとも表現される アロー関数をクロージャとして、エンクロージャがどこのスコープで宣言されたかで使用する this を決定する エンクロージャが存在し…

docker phpmyadmin config.inc.php でセッション変更

デフォルトの1440秒を変更したい 手順 /etc/phpmyadmin/config.inc.php をに以下を記述 $cfg['LoginCookieValidity'] = 秒数; 結果 (60秒) ※たぶん /etc/phpmyadmin/config.secret.inc.php に設定してもできる

windows 10 home に wsl2 をインストール

修理に出したPCの windows のバージョンが最新になってた。 windows update で配信されるまでダウンロードしないで待っていたのだが仕方ない。 wsl2 をインストールできる条件 (Ver.2004、ビルド19041以降) を満たしていたので導入する。 スタート → 設定 → …

Google Search Console サイトマップ その前に URL検査

ブログを書いたものの次に何やればいいかわからず サイトマップの登録からはじめてしまって、サイトマップが登録できんのだけど…な人へ。 記事を検索結果に表示することが先決なので、まずはインデックスに登録しよう。 手順 記事を書いて公開してブラウザの…

windows 10 再インストール後の PHP インストールしたらエラー

1年半前、突如ブルースクリーンが発生し windows が起動しなくなった。 修理できる状態ではなかったため、すぐに大枚はたいて新しいPCを購入。 それから1年半後、再びブルースクリーンなう。 スタートアップ修復、コマンドプロンプト、システムの復元。 他に…

flatpickr で week (曜日) を取得して変更

動機 5分くらい探したけど currentWeekが見つからないから 対応 マッチした文字列を置換する インスタンスに flatpickr("#flatpickr", {}) wを設定 dateFormat: "Y年m月d日-w H:i", wは曜日だが対応している数値で表示される。0~6 (日~土)。他の年月日等と…