forex

💱 一个 JavaScript 外汇库,通过 fawazahmed0 的 API。

NodeJS License NPM Codecov BundlePhobia CircleCI

English | 简体中文

Insights

forex 全称是 Foreign Exchange,它的目的不是用于 FX 外汇交易,请慎重用于投资相关决策。

在浏览器或终端中获取每日汇率,免费且无速率限制。

查看 文档在线示例

npm install @kabeep/forex --save
yarn add @kabeep/forex
pnpm add @kabeep/forex

CommonJS

const { ForexClient, ForexClientOptions } = require('@kabeep/forex');

const client = new ForexClinet({} as ForexClientOptions);

ESModule

import { ForexClient, type ForexClientOptions } from '@kabeep/forex';

const client = new ForexClinet({} as ForexClientOptions);

接口 ForexClientOptions:

参数 类型 可选 默认值 描述
baseCurrency string true - 基准货币代码
minified boolean true true 请求压缩过的 JSON 数据
timeout number true 5000 请求超时时间 (毫秒)
headers HeadersInit true {} 请求头

获取可用的货币列表。

const client = new ForexClient();
// => {
// code: 200,
// message: 'OK',
// data: [
// { code: 'eur', name: 'Euro' },
// { code: 'usd', name: 'US Dollar' },
// { code: 'cny', name: 'Chinese Yuan Renminbi' },
// { code: 'btc', name: 'Bitcoin', }
// ... More items
// ]
// }
client.getCurrencies('latest');

// or
client.getCurrencies(new Date(2024, 11, 1));
参数 类型 可选 默认值 描述
date Date | "latest" true "latest" 获取货币的日期,或最新的 'latest'
options RequestInit true {} 自定义请求参数

返回: Promise<HttpResponse<AvailableCurrency[]>>

属性 类型 必选 描述
code number true HTTP 响应状态代码
message string true HTTP 响应状态消息
data AvailableCurrency[] false 可用货币列表

接口: AvailableCurrency

属性 类型 必选 描述
code string true 货币代码
name string false 货币名称

获取指定货币的汇率。

const client = new ForexClient();
// => {
// code: 200,
// message: 'OK',
// data: [
// { code: 'eur', rate: 100_000 },
// { code: 'usd', rate: 100_000 },
// { code: 'cny', rate: 100_000 },
// ... More items
// ]
// }
client.getRates('USD');

// or
client.getRates('US');
参数 类型 可选 默认值 描述
code string true this.options.baseCurrency 用于获取汇率的货币代码或区域代码
date Date | "latest" true "latest" 获取货币的日期,或最新的 'latest'
options RequestInit true {} 自定义请求参数

返回: Promise<HttpResponse<ExchangeRate[]>>

属性 类型 必选 描述
code number true HTTP 响应状态代码
message string true HTTP 响应状态消息
data ExchangeRate[] false 汇率列表

接口: ExchangeRate

属性 类型 必选 描述
code string true 货币代码
rate number false 货币汇率

获取两种货币之间的汇率。

const client = new ForexClient();
// => {
// code: 200,
// message: 'OK',
// data: 0.94759027
// }
client.getRate('USD', 'EUR');

// => {
// code: 200,
// message: 'OK',
// data: 7.78004385
// }
client.getRate('US', 'HK');
参数 类型 可选 默认值 描述
baseCode string true this.options.baseCurrency 基准货币代码或区域代码
destCode string true - 目标货币代码或区域代码
date Date | "latest" true "latest" 获取货币的日期,或最新的 'latest'
options RequestInit true {} 自定义请求参数

返回: Promise<HttpResponse<number>>

属性 类型 必选 描述
code number true HTTP 响应状态代码
message string true HTTP 响应状态消息
data number false 汇率

根据 ISO 3166-1 代码获取有效的货币代码。

const client = new ForexClient();
// => 'USD'
client.getCode('US');

// => 'CNH'
client.getCode('HK');

// => 'CNY'
client.getCode('RMB');
参数 类型 可选 默认值 描述
localeCode string false - 用于获取货币代码的 ISO 3166-1 代码

返回: string

对应的货币代码。


将金额从一种货币转换为另一种货币。

const client = new ForexClient();
// => {
// code: 200,
// message: 'OK',
// data: 9.48
// }
client.convert('USD', 'EUR', 10);

// => {
// code: 200,
// message: 'OK',
// data: 72.67
// }
client.convert('US', 'HK', 10);
参数 类型 可选 默认值 描述
baseCode string true this.options.baseCurrency 基准货币代码或区域代码
destCode string true - 目标货币代码或区域代码
amount number true 0 兑换数额
date Date | "latest" true "latest" 获取货币的日期,或最新的 'latest'
options RequestInit true {} 自定义请求参数

返回: Promise<HttpResponse<number>>

属性 类型 必选 描述
code number true HTTP 响应状态代码
message string true HTTP 响应状态消息
data number false 兑换金额
  • exchange-api - 如果没有这个,这个包就不会存在。
  • forex-cli - 💱 用于在终端中转换外汇的 Node.js 库。

欢迎通过 Pull Requests 或 Issues 来贡献你的想法和代码。

本项目采用 MIT 许可证。详情请见 LICENSE 文件。