简介

在过去的几年里,我为自己以及本地和在线社区中的少数玩家构建了几个原型,以帮助我们成为更好的 Pokemon TCG 玩家。基于这些项目,我今天发布了我的第一个 npm 包。

我的一些原型是Proxymon,它现在已经过时,缺少最近的集合,但仍然可以打印用于游戏测试的代理和pkmn-attack-damage,这是我在一个星期六晚上在 Discord 社区讨论后构建的。

满足ptcgo-parser!

我写了hamatti/ptcgo-parser来学习如何构建 npm 包并减轻我为所有项目复制粘贴和重写解析部分的痛苦。我是PokemonTCG.io API的忠实粉丝,并决定捆绑该 API 的兼容性。

快速指南

您可以通过 npm 安装软件包

npm install ptcgo-parser

然后在你自己的代码中使用它,提供一个 Pokemon TCG Online 套牌列表导出作为它唯一公开的函数parse的参数:

const PTCGOParser = require('ptcgo-parser')

const ptcgoExportedDecklist = `
****** Pokémon Trading Card Game Deck List ******

##Pokémon - 13

* 1 Oranguru SUM 113
* 3 Darkrai-EX BKP 74
* 4 Dratini SUM 94
* 3 Dragonair SUM 95
* 1 Dragonite ROS 51
* 1 Mew FAC 29
`

const decklist = PTCGOParser.parse(ptcgoExportedDecklist)

console.log(decklist)

/*
  {
    cards: [
        {
            name: 'Oranguru',
            amount: 1,
            set: 'SUM',
            code: 113,
            ptcgoio: {
                id: 'sm1-113'
            }
        },
        ...
    ]
  }
*/

它将返回卡的解析版本,但还包括 PokemonTCG.io ID,您可以使用该 ID 从 API 获取更多信息。

已知问题

最初的启动功能,但仍然存在许多已知问题,主要是 PokemonTCG.io API 中不提供某些卡(如 Rainbow Rares)。我将继续处理该软件包,使其达到 1.0.0 发布将包含丢失卡的例外情况,以便您可以获得正确的卡,即使是错误的稀有度。

如果您是开发人员和 Pokemon TCG 玩家,请试一试,让我知道如何改进它以使其完美适合您的用例。

在 npm 中发布包

我很惊讶在 npm 中发布包的工作流程如此简单。您需要做的就是在 npmjs.com 创建一个帐户,创建一个package.json文件,编写一些代码并在命令行上运行npm publish

使用Shields.io,您可以获得这些很酷的徽章,您可以将其放入您的文档中:

[npm 徽章](https://res.cloudinary.com/practicaldev/image/fetch/s--A3D47-ba--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://img. shields.io/npm/v/ptcgo-parser.svg%3Fstyle%3Dplastic)

结论

这个库还有很多工作要做,尤其是让它在丢失或不匹配的卡片方面更加稳定。但是将它包装在 npm 包中迫使我考虑 API 以及它返回数据的格式以及考虑文档。

如果您想学习如何编写好的文档,@jamesstone已经为他的存储库jamesstoneco/docsthursday收集了大量资源。

ptcgo-parser的开发得到Spice Program的支持.

Logo

ModelScope旨在打造下一代开源的模型即服务共享平台,为泛AI开发者提供灵活、易用、低成本的一站式模型服务产品,让模型应用更简单!

更多推荐