コンパイラかく語りき

import { Fun } from 'programming'

【パフォーマンス計測】severless framework を利用して、Lighthouse 計測結果の Datadog への送信を定期実行する(TypeScript 対応)

概要 Lighthouse でパフォーマンス計測 計測値を Datadog に送信 以上の2つを severless framework 上で定期実行する仕組みを構築していきます。またコードは TypeScript で書けるようにします。 パッケージ バージョン 本記事の執筆時点での serverless fra…

【Angular/rxjs】shareReplay が unsubscribe 後も emit し続けメモリリークになりうる問題への対処法

概要 shareReplay を使うと複数の subscribe を一本化できて便利です。 stream$.pipe(shareReplay()) パフォーマンス改善の対処法としてよくやります。(share だと初期値の null が流れてきてしまうので、個人的には shareReplay の方が好みです。 参考: an…

【echarts】複数線形チャートにて MarkArea 背景色の opacity が重なる問題(multiple markarea opacity)

問題 echarts では複数線形チャートが作れる。 参考: https://echarts.apache.org/examples/en/editor.html?c=line-stack ここで、MarkArea を利用して部分的な背景色を適用したい場合がある。以下の画像で言うところの、薄青色の部分。 参考: https://echar…

【TypeScript】localStorage.setItem の値に number を指定したい

本記事の執筆時点での TypeScript のバージョンは 4.1.5。 localStorage.setItem の型定義を見てみると、 setItem(key: string, value: string): void; となっている。 なので、以下のように number 型を渡すと型エラーとなる。 localStorage.setItem('ここ…

【Angular】バージョン9からバージョン10にアップデートした

概要 Angular のバージョンを上げるので、その記録を書く。 基本的には、 https://update.angular.io/ に従うだけ。 ただ、関連するパッケージのアップデートや破壊的変更に伴うコード修正は必要だと思われる。 使用しているライブラリは「Angular CDK、Nebu…

【JavaScript】Error 内容を JSON.stringify する(原因不明の空オブジェクト文字列の正体?)

概要 Error オブジェクト(のインスタンス)を JSON.stringify すると、空オブジェクトの文字列になる。 JSON.stringify(new Error('this is erorr')) // '{}' ログ監視・エラー監視などでありがち。 原因 空オブジェクトの文字列になってしまう理由としては…

【JavaScript】文字列から px 以外の数値部分だけを取り出す

なにがしかの方法で要素のスタイルを取得したはいいものの、px のついた文字列だった場合の対処。 数値部分だけを取り出すには、 parseInt が使える。 const txt = '120px' parseInt(txt, 10) // 120 もちろん、 em でも rem でも % でも同じことができる。p…

【Angular.js】ng-tempate へ複数の変数を渡す方法

いつも忘れるこの記法。 Angular.js で ng-template に複数の変数を渡したい場合の書き方。 <ng-container *ngTemplateOutlet="template; context:{ text: 'foo', item: 'bar' }"></ng-container> <ng-template #template let-text="text" let-item="item"></ng-template> ``` 参照: [Angular - NgTemplateOutlet](https://angular.io/api/common/NgTemplate…

【JavaScript】DataDog で sourcemap(ソースマップ)対応する方法

概要 DataDog で sourcemap を利用して、コンパイル前のファイルを参照させる方法を調べてみた。 DataDog の sourcemap 対応状況 DataDog は sourcemap に対応している。 参照: Make Sense of Application Issues With Datadog Error Tracking | Datadog dat…

【パフォーマンス改善】ngx-echarts でカスタムビルドを利用し、バンドルサイズを削減する方法

概要 Angular 内で echarts を使うには ngx-echarts が利用できる。その設定は以下のようになる。 import { NgxEchartsModule } from 'ngx-echarts'; import * as echarts from './custom-echarts'; @NgModule({ imports: [ NgxEchartsModule.forRoot({ echa…