cwv-logger
web-vitalsから取得した Core Web Vitals のメトリクスをデータとして使いやすい形式に変換して出力するライブラリです。
Installation
yarn add -D @openameba/cwv-logger
or
npm i --save-dev @openameba/cwv-logger
Usage
const reportPerformance = () => {
const startTime = Date.now();
const handleReport: ReportCallback = useCallback(
({ metricsName, metricsValue, networkType, selectorName, rectDiff }) => {
firebase
.performance()
.trace(metricsName)
.record(startTime, metricsValue, {
selectorName,
networkType,
rectDiff,
});
},
[option]
);
import("@openameba/cwv-logger").then(
({ reportCLS, reportFID, reportLCP, reportTTFB, reportINP }) => {
reportCLS(handleReport);
reportFID(handleReport);
reportLCP(handleReport);
reportTTFB(handleReport);
reportINP(handleReport, {
reportAllChanges: false,
durationThreshold: 40,
});
}
);
};
Supported Metrics
Report params
type ReportParams = {
metricsName: "CLS" | "LCP" | "FID" | "TTFB" | "INP";
metricsValue: number;
networkType: string;
country?: string;
selectorName?: string;
rectDiff?: string;
debug: Debug<T>;
};
Debug
The attribution
is provided by web-vitals
library.
type Debug<T extends keyof typeof SupportedMetrics> = {
attribution: T extends "LCP"
? LCPAttribution
: T extends "CLS"
? CLSAttribution
: T extends "FID"
? FIDAttribution
: T extends "TTFB"
? TTFBAttribution
: T extends "INP"
? INPAttribution
: never;
};
リリースフロー
main
またはbeta
ブランチにマージすることで自動的にリリースされます。
リリースが完了するとリリースノートも自動的に生成されます。
基本はmain
ブランチにマージします。
実験的な機能や大きな変更を含む場合に、beta
ブランチを通して段階的にリリースします。