文件
使用 typed fetch wrapper 呼叫台股資料 API,內建 timeout 與錯誤碼映射。
npm install ./packages/js-sdkimport { TWMarketDataClient } from "@twmarketdata/sdk";
const client = new TWMarketDataClient({
apiKey: "twmd_live_xxx",
baseUrl: "https://twmarketdata.com",
timeoutMs: 10000,
});SDK 內建 AbortController timeout,避免長時間等待上游回應造成程序卡住。
const result = await client.twseDailyPrice({
symbol: "2330",
limit: 1,
});const valuation = await client.valuationData({
symbol: "2330",
limit: 5,
});
console.log(valuation.status);
console.log(valuation.meta.requestId);
console.log(valuation.meta.creditsCost);SDK 會把 X-Request-Id、X-TWMD-Dry-Run、X-TWMD-Credits-Cost、X-TWMD-Credits-Charged、X-TWMD-Plan 轉成 meta。
import {
AuthenticationError,
EntitlementError,
InsufficientCreditsError,
DatasetNotFoundError,
UpstreamError,
} from "@twmarketdata/sdk";
try {
await client.monthlyRevenue({ symbol: "2330", limit: 12 });
} catch (error) {
if (error instanceof AuthenticationError) console.error("API key 無效");
else if (error instanceof EntitlementError) console.error("方案權限不足");
else if (error instanceof InsufficientCreditsError) console.error("credits 不足");
else if (error instanceof DatasetNotFoundError) console.error("dataset 不存在");
else if (error instanceof UpstreamError) console.error("上游服務異常");
}