@amboras-dev/money-gate

中文文档
0.1.5发布于 2026/10/31UNLICENSEDTypeScriptESM + CJS近 30 天下载 6777

Amboras的货币闸门重置:一个可找到手写货币代码@amboras-dev/货币替换(10缩放能力、浮动货币数学、Intl货币格式化、当地货币表、硬码货币回落、货币SQL、小-un)的dev-time检查器

中文使用文档
文档目录7 节
  1. 规则
  2. 退休人员(MG008)
  3. 豁免
  4. 基线
  5. 配置
  6. 收 养
  7. 图标

@amboras-dev/money-gate

钱门:一个找到手写钱码的dev-time检查器 @amboras-dev/money 替换. 每找到要使用的软件包函数的名称 . 一个运行中的依赖, @amboras-dev/money (其货币登记); 节点 .

pnpm add -D @amboras-dev/money-gate
npx money-gate baseline          # once, when a repo adopts the gate
npx money-gate check --ratchet   # in CI
src/checkout.ts:4:30 MG002 hand-rolled x100 / x1000 money scaling -> fromMajor / toMajorDecimal / percentOf
src/checkout.ts MG002: 2 found, baseline allows 1
money-gate: 1 count(s) above the baseline, 0 below it

规则

编号查找改为使用
MG001号文件10 **, (中文(简体) ), Math.pow(10,, (中文(简体) ), 1e2, (中文(简体) ), 1e3, (中文(简体) ), 1e7,以及 10_000_000 以比率(如果是上限)相邻storageScale, (中文(简体) ), fromMajor, (中文(简体) ), toMajorDecimal, (中文(简体) ), RATE_REF
MG002 (选入)* 100, (中文(简体) ), / 100, (中文(简体) ), * 1000, (中文(简体) ), / 1000 包括货币操作(金额、价格、总额、成本、费用、小计、余额、小数、分数、主要、储存、价值),而不是一次fromMajor, (中文(简体) ), toMajorDecimal, (中文(简体) ), percentOf
MG003(选入)toFixed( 打开,和 parseFloat( 编号 : Number( 货币价值toMajorDecimal, (中文(简体) ), readStored, (中文(简体) ), parseImportAmount
MG004 导弹Intl.NumberFormat 与 style: 'currency' 或者说 currencyDisplay, (中文(简体) ), toLocaleString 有货币formatMoney
MG005导弹数组、 设置或对象字面上持有 3 个或更多货币代码登记册, pspCurrencies
MG006 导弹?? 'USD', (中文(简体) ), || 'EUR', (中文(简体) ), currency = 'usd' 默认, SQL COALESCE(currency_code, 'usd')firstCurrency
MG007号SQL : (英语) decimal_digits, (中文(简体) ), THEN 1000 ELSE 100, (中文(简体) ), POWER(10, ...), (中文(简体) ), 10 ^ ..., (中文(简体) ), jsonb_build_object('value',计算 rate_numerator 编号 : rate_denominator, (中文(简体) ), ROUND(..., 2) 钱@amboras-dev/money/sql 建设者
MG008 导弹退休援助人员进口(下表),当地 formatMoney 编号 : formatCurrency大数 toNumber 编号 : toNum外头的遗赠货币 legacyShimAllow每个查找名称的函数
MG009 导弹minor units, (中文(简体) ), in cents, (中文(简体) ), divide by 100, (中文(简体) ), (cents) 在字符串中,外部装饰器调用(文本禁止单位使用时不使用:"Never mess 或 small unit")MONEY_UNIT_SENTENCE, (中文(简体) ), STORAGE_UNIT_SENTENCE
千兆马赫豁免,无规则编号或理由完全豁免

代码规则只读代码:注释,字符串字元和正格克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克. JSX 关闭标签(</p>, (中文(简体) ), </>, (中文(简体) ), <a href={x} />)不作regex字读取. 字符串规则读取字符串和模板文字; SQL 规则读取字符串文字和 .sql 文档.

MG002和MG003默认关闭:它们自行标出百分比,点名 total 和DOM系统 .value 阅读太频繁. 打开每回波 "rules": { "MG002": "on", "MG003": "on" } 在配置中.

货币代码(MG005,MG006):一个大写代码总是算数. 小写代码,或同为常用词或缩略语的代码(ALL, (中文(简体) ), TOP, (中文(简体) ), TRY, (中文(简体) ), PHP, (中文(简体) ), CAD, (中文(简体) ), AMD, (中文(简体) ), BTN 和其余部分 WORD_COLLISIONS 内 src/currencies.ts),只计算货币背景. 在代码中,表示其前方的语句取出货币名称(currency, (中文(简体) ), currencies, (中文(简体) ), ZERO_DECIMAL. ) (中文(简体) ) store.currency ?? 'usd' 财务报告和审定财务报表 const zeroDecimalCurrencies = ['jpy', ...] 计数, filter ?? 'all' 财务报告和审定财务报表 ['all', 'top', 'try'] 别. 一个街区里的第一个声明 也读了街区的头条,所以 function normalizeCurrency(code) { return code ?? 'usd' } 计数. 在模板本身的文本中读取模板文字中的倒置(以文本形式生成的存储前置代码). 在 SQL 中 COALESCE,第一个参数必须提及货币或代码栏.

MG009在装饰器调用参数中跳过字符串(@ApiProperty({ description: 'Amount in cents' }),任意 @Name(...):这些文档是Swagger/OpenAPI的电线字段,而不是模型的措辞. 工具计划中的字符串( T)z.number().describe('...'))和提示仍在检查中.

退休人员(MG008)

帮助改为使用
divisorForstorageScale(code)
storageDivisorForDigitsstorageScale(code) (按代码键,不是数字;在SQL中 @amboras-dev/money/sql 建设者
fractionDigitsForstorageDigits(code) 因为它是如何储存的, displayDigits(code) 为了显示什么
isoFractionDigitspspWireDigits(psp, code) 从 @amboras-dev/money/wire
toMinorUnitsfromMajor(major, code)
toMajorUnitstoMajorDecimal(roundToUnit(readStoredDecimal(raw), code)): Medusa的总数可以是分数(sevDesk, GA4,发票)和 readStored 投出分数
readAmountNumber大数 toNumber 编号 : toNumreadStoredDecimal(raw) (保留分数),或 readStored(raw, code) 全部储存量
a 当地 formatMoney 编号 : formatCurrencyformatMoney(m) 从 @amboras-dev/money
留下的货币 shimcurrencyCode(value) 或者说 firstCurrency(...)
toStorageAmount (单位:千美元)@amboras-dev/capability-kit(中文(简体) )fromMajor(major, code).amount
fromStorageAmount (单位:千美元)@amboras-dev/capability-kit(中文(简体) )toMajorDecimal(readStored(stored, code)),或 toMajorNumber 对于浮点
storageScale (单位:千美元)@amboras-dev/capability-kit(中文(简体) )storageScale(code) 从 @amboras-dev/money
fractionDigits (单位:千美元)@amboras-dev/capability-kit(中文(简体) )storageDigits(code)
moneyView (单位:千美元)@amboras-dev/capability-kit(中文(简体) )moneyView(readStored(stored, code)) 从 @amboras-dev/money/ai

只有在从 @amboras-dev/capability-kit; 软件包本身 storageScale 财务报告和审定财务报表 moneyView 是替换.

豁免

// money-gate-exempt: MG001 the one legacy scale kept until the wire migration
const LEGACY_SCALE = 10 ** 2;

标记覆盖了自己的行和下方的两行,仅用于被命名的规则. 它只算在评论中//, (中文(简体) ), /* */,或 -- 在 SQL 中);字符串正文中相同的文字是数据,不免除任何内容. 规则ID和理由是强制性的;没有它们,标记就是MG000违章行为,并免除了任何东西. 旧的 money-scale-exempt: <reason> 标记计为迁移期间的MG001豁免.

基线

money-gate.baseline.json 将违规案件立案 并按档案和规则计算. check (一) 任何超过基线的计数都未能实现(新的违规行为); check --ratchet 在基准降低之前,低于基准的计数也会失败,因此基准只缩小. baseline 写入当前计数并拒绝提高任何计数,除非 --force (在评论中出现).

基线(第2版)还存储了每个文件和规则的指纹:每条违法行的出处文本,被修剪,排序和散列(SHA-256,前16个正数). 当行在文件内移动或文件被更名时,它不会改变;当任何违反的行被添加,去除或编辑时,它也会改变.

纯粹的重命名或移动会保留它的计数. 基准文件不会继承基准文件的条目,而基准文件只有在对每项规则来说,计数和指纹都相等时才不再扫描. 礛 check 通过并打印重命名,以及 baseline 重写新路径的条目, 不 --force。 。 。 . check --ratchet 失败直到基线被刷新, 因此一个 stale 路径不能在以后被再使用 . 删除一个基线文件, 并添加一个与此相同的不相关的文件, 不是一个重命名( 线条不同) , 因此其违反失败 check 作为新的. 添加、删除或编辑违法行的重命名不包含: 修正违法行,或 baseline --force。 。 。 . 第1版基线(仅计数)仍然被读取,但没有任何内容被取出; money-gate baseline 升级它.

配置

money-gate.config.json 在 repo 根( 所有键可选) :

{
    "include": ["src/**/*.ts", "scripts/**/*.ts"],
    "sql": ["src/migrations/**/*.sql"],
    "exclude": ["src/generated/**"],
    "legacyShimAllow": ["src/modules/payments/stripe/**"],
    "baseline": "money-gate.baseline.json",
    "rules": { "MG002": "on", "MG003": "on" }
}

include 默认为 src/**/*.{ts,tsx,js,jsx,mjs,cjs}。 。 。 . 完全不选择文件的配置是一个配置错误( exit 2) , 命名了 globs 和 root, 绝不是 “ ok ” : 代码不下的一个 repo src/ 必须设置 include。 。 。 . rules 开关 MG001-MG009 "on" 或者说 "off" 从其默认值(MG002和MG003启动)起.

从未扫描 : node_modules, (中文(简体) ), dist, (中文(简体) ), *.generated.ts 和测试文件*.spec.*, (中文(简体) ), *.test.*),可建立固定装置. 球状支持 **, (中文(简体) ), *, (中文(简体) ), ? 财务报告和审定财务报表 {a,b}。 。 。 . 疏 漏 (!pattern)不支持,并且是一个配置错误,而不是一个沉默的不开放:在下方列出模式 exclude。 。 。 .

收 养

  1. 添加一个 money-gate.config.json 谁 include (和 sql)选择repo的代码;门拒绝在空选择上运行.
  2. npx money-gate baseline 一次,输入基线,然后运行 npx money-gate check --ratchet 在中央情报局.
  3. 退去Repo的自已的钱卫 作为他们的规则土地在这里. 美杜萨: src/common/utils/money-conversion-sites.spec.ts 要求 CASE WHEN ... decimal_digits ... THEN 1000 ELSE 100 END 存储divisor 在 analytics.service.ts,MG007的禁令. 它的通过 PR 重写了要断言 @amboras-dev/money/sql 代之以建造者,并放弃其10次检查,即MG001(代码)和MG007(POWER(10, ...), (中文(简体) ), 10 ^ ... 现在的封面.

图标

  • money-gate check [--ratchet] [--json] [--root <dir>] [--config <file>]: 出 0 清, 1 违反, 2 使用或配置出错 .
  • money-gate baseline [--force] [--root <dir>] [--config <file>]。 。 。 .
  • 图书馆输出相同的部件(run, (中文(简体) ), scanSource, (中文(简体) ), scanRepo, (中文(简体) ), RULES, (中文(简体) ), loadConfig,基线帮助者).

版本与发布记录

@amboras-dev/money-gate 共发布 7 个版本,首次发布于 2026/10/26;过去 12 个月发布了 7 个版本。

版本发布日期距今
0.1.5latest2026/10/317 天前
0.1.42026/10/2810 天前
0.1.32026/10/2711 天前
0.1.22026/10/2711 天前
0.1.12026/10/2612 天前
0.1.02026/10/2612 天前

关于 @amboras-dev/money-gate 的常见问题

@amboras-dev/money-gate 是什么?

Amboras的货币闸门重置:一个可找到手写货币代码@amboras-dev/货币替换(10缩放能力、浮动货币数学、Intl货币格式化、当地货币表、硬码货币回落、货币SQL、小-un)的dev-time检查器

如何安装 @amboras-dev/money-gate?

在项目目录运行 npm install @amboras-dev/money-gate,或使用 pnpm add / yarn add / bun add。它还提供命令行工具 money-gate,可以用 npx money-gate 直接运行。

@amboras-dev/money-gate 支持 TypeScript 吗?

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

@amboras-dev/money-gate 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@amboras-dev/money-gate 需要什么版本的 Node.js?

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

@amboras-dev/money-gate 可以商用吗?

@amboras-dev/money-gate 使用 UNLICENSED 许可。作者声明为 UNLICENSED,即不授予公开使用许可(与公共领域的 Unlicense 不同)。使用前需获得作者授权。以上为概括,不构成法律意见,请以许可原文为准。

@amboras-dev/money-gate 的下载量有多少?

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

@amboras-dev/money-gate 还在维护吗?

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