csv-row-limit
TypeScript icon, indicating that this package has built-in type declarations

1.0.1 • Public • Published

Csv Row Limit

English

一个轻量、快速、纯原生的 CSV 行数读取限制库。

  • 小巧. 包体积非常小,没有依赖,核心代码不到 100 行。
  • 快速.fast-csv 的速度快 5-9 倍(数据基于下面的基准测试得出)。
  • 易用. 使用 async/await 进行封装,外部用户只需要感知一个函数。
  • 稳定. 每次发包都会进行单测和基准测试,保证包的稳定性。

🚀 基准测试(Benchmark)

$ yarn benchmark
# 1000 行里取前 100 行
csv-row-limit limit 100 from 1000 lines      7369 ops/sec
fast-csv limit 100 from 1000 lines            796 ops/sec

# 10w 行里取前 1w 行
csv-row-limit limit 1w from 10w lines         397 ops/sec
fast-csv limit 1w from 10w lines               61 ops/sec

# 100w 行里取前 10w 行
csv-row-limit limit 10w from 100w lines        34 ops/sec
fast-csv limit 10w from 100w lines              6 ops/sec

测试配置:MacBook Air(M2,2022 年), macOS Monterey 12.5.1, Node.js 16.19.0。

🛠 安装

yarn add csv-row-limit

或者

npm install csv-row-limit

⌨️ 使用

import { csvRowLimit } from "csv-row-limit";

async function yourFunction() {
  const rows = await csvRowLimit({
    path: './data/example.csv', // 本地路径或者 HTTP 地址
    maxRowCount: 1000, // 限制的行数
  });
}

📗 API

  • path:必填,CSV 文件的路径。本地路径或者 HTTP/HTTPS 路径。
  • maxRowCount:必填,需要限制行数的最大值。
  • readLineOptions:选填,按行读取 CSV 时的定制选项,和 readline 模块的 createInterface 方法参数一致,详见 readline 模块
  • requestOptions: 选填,读取 HTTP 文件时的自定义选项, 和http/https 模块的 request 方法参数一致,详见 http 模块

💻 贡献

非常欢迎参与到项目的贡献中,一起为爱发电!

如果您对本项目感兴趣或者有想法,欢迎新建一个 Issue 进行讨论~

👨‍💻 贡献者

目前项目就我一个人,欢迎共建~

Readme

Keywords

Package Sidebar

Install

npm i csv-row-limit

Weekly Downloads

0

Version

1.0.1

License

MIT

Unpacked Size

12.4 kB

Total Files

13

Last publish

Collaborators

  • onechunlin