@balena/balena-pricing

中文文档
2.0.72发布于 2026/11/07AGPL-3.0TypeScriptCommonJS构建来源已验证近 30 天下载 1.2万

Balena定价/节省计算器

中文使用文档

巴莱纳定价/保存计算器

这个库提供了一套可以用来计算信用购买成本的功能 和与动态计费相比的节约。 信用定价定义可在 即时性,可用于测试和试验,但用于生产的价格定义 在此套件中也定义了.

使用量

import { CreditPricing } from '@balena/balena-pricing';

// Format output to dollar currency.
const dollar = Intl.NumberFormat('en-US', {
    style: 'currency',
    currency: 'USD',
});
function toDollar(pennies: number): string {
    return dollar.format(pennies / 100);
}

// Set dynamic base price.
const dynamicPrice = 150;

// Use production credit pricing definitions.
let pricing = new CreditPricing();

// Use production credit pricing definitions.
// Explicitly target current versions (default).
let pricing = new CreditPricing({
    target: 'current',
});

// Use production credit pricing definitions.
// Target most recent versions, even those slated for future use.
pricing = new CreditPricing({
    target: 'latest',
});

// Use production credit pricing parameters.
// Target version 2, will return undefined for features without a version 2.
let pricing = new CreditPricing({
    target: 2,
});

// Use production credit pricing parameters.
// Target most recent versions valid up to a given date.
let pricing = new CreditPricing({
    target: new Date('2023-03-01T00:00:00Z'),
});

// Use custom credit pricing parameters.
// Mostly useful for testing parameters against the curve,
// should not normally be used in production.
pricing = CreditPricing({
    credits: {
        'foo:bar': [
            {
                version: 1,
                validFrom: new Date('2023-02-01T00:00:00Z'),
                basePriceCents: 150,
                firstDiscountPriceCents: 149,
                discountRate: 0.33,
                discountThreshold: 12000,
                discountThresholdPriceCents: 125,
            },
        ],
    },
});

// Get individual credit price
const creditPrice = pricing.getCreditPrice('foo:bar', 0, 1000);
console.log('Credit unit price:', toDollar(creditPrice));

// Get total price for credit purchase
const totalPrice = pricing.getCreditTotalPrice('foo:bar', 0, 1000);
console.log('Credit total price:', toDollar(totalPrice));

// Get discount percentage compared to dynamic
const discount = pricing.getDiscountOverDynamic('foo:bar', 0, 1000, dynamicPrice);
console.log('Discount over dynamic:', `${discount}%`);

// Get total savings for credit purchase compared to dynamic
const totalSavings = pricing.getTotalSavings('foo:bar', 0, 1000, dynamicPrice);
console.log('Total savings:', toDollar(totalSavings));

版本与发布记录

@balena/balena-pricing 共发布 256 个版本,首次发布于 2023/01/14;过去 12 个月发布了 160 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
2.0.72latest2026/11/07今天
2.0.72-build-renovate-rollup-4-67-x-0c8f8b8375d8055467c8be99ecdf93a9b55b9650-12026/11/07今天
2.0.712026/11/07今天
2.0.71-build-renovate-tslib-2-x-c68b666012b20c653c00444b2fba4401d25010c6-12026/11/07今天
2.0.702026/11/07今天
2.0.70-build-renovate-rollup-4-x-7cbfb6cc4c248a4b18cbf3c6916826524548125d-12026/11/07今天

其他发布通道:build-joshbwlng-bump-deps → 2.0.0-build-joshbwlng-bump-deps-991024050e89e191b952b90f1ea9ce2af980bc52-1,build-renovate-major-9-husky → 2.0.1-build-renovate-major-9-husky-9bd765ddce22167d08680bb426d1f52068159c65-1,build-joshbwlng-tslib → 2.0.2-build-joshbwlng-tslib-85324a44634bdfa030a3f818a260c0c67ce61c21-1,build-renovate-major-16-lint-staged → 2.0.3-build-renovate-major-16-lint-staged-abdd7e7469fe295e1ecbdea7301ba961766de1f5-1,build-joshbwlng-fix-lint-staged → 2.0.4-build-joshbwlng-fix-lint-staged-f9f5fcf4f75c9e36dde6c05da53df31d271253ff-1,build-joshbwlng-constructor → 2.0.5-build-joshbwlng-constructor-c15a866f29c551e0cc5b04dc888d32527591d6c6-1。

关于 @balena/balena-pricing 的常见问题

@balena/balena-pricing 是什么?

Balena定价/节省计算器

如何安装 @balena/balena-pricing?

在项目目录运行 npm install @balena/balena-pricing,或使用 pnpm add / yarn add / bun add。

@balena/balena-pricing 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@balena/balena-pricing 支持 ESM 还是 CommonJS?

以 CommonJS 形式发布,可以直接 require();在 ES Module 项目中也可以用 import 引入(Node.js 会把 module.exports 作为默认导出)。

@balena/balena-pricing 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=22.4.0。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@balena/balena-pricing 可以商用吗?

@balena/balena-pricing 使用 AGPL-3.0 许可。最严格的 Copyleft:除分发外,通过网络向用户提供基于它的服务也需要开源对应源码。闭源 SaaS 使用前务必评估。以上为概括,不构成法律意见,请以许可原文为准。

@balena/balena-pricing 的下载量有多少?

根据 npm 官方下载统计,@balena/balena-pricing 在 2026/10/08 – 2026/11/06 这 30 天内被下载 12,495 次,日均约 417 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@balena/balena-pricing 还在维护吗?

最新版本 2.0.72 发布于 2026/11/07(今天);至今共发布 256 个版本,其中过去 12 个月发布了 160 个;首次发布于 2023/01/14。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。