From 6fed56f6f619cfc10c4fab12349443bb96bfc520 Mon Sep 17 00:00:00 2001 From: Viacheslav Slinko Date: Wed, 15 May 2024 10:35:23 +0300 Subject: [PATCH] Maintenance --- .github/workflows/ci.yml | 9 +++--- .prettierrc | 4 --- Makefile | 12 -------- csv_spectrum_test.ts | 2 +- deno.json | 22 ++++++++++++++ deno.lock | 63 ++++++++++++++++++++++++++++++++++++++++ deps.ts | 7 ----- dev_deps.ts | 7 ----- reader.ts | 26 ++++++++++------- reader_test.ts | 10 ++++--- utils.ts | 2 +- writer.ts | 5 ++-- writer_test.ts | 3 +- 13 files changed, 117 insertions(+), 55 deletions(-) delete mode 100644 .prettierrc delete mode 100644 Makefile create mode 100644 deno.json create mode 100644 deno.lock delete mode 100644 deps.ts delete mode 100644 dev_deps.ts diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b34bcd3..a3d31f4 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -7,10 +7,9 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - - uses: denolib/setup-deno@master + - uses: denoland/setup-deno@master with: - deno-version: "v1.x" - + deno-version: "1.42.4" - run: deno --version - - run: make lint - - run: make test + - run: deno lint + - run: deno task test diff --git a/.prettierrc b/.prettierrc deleted file mode 100644 index f707f7a..0000000 --- a/.prettierrc +++ /dev/null @@ -1,4 +0,0 @@ -{ - "quoteProps": "consistent", - "trailingComma": "all" -} \ No newline at end of file diff --git a/Makefile b/Makefile deleted file mode 100644 index 713a5cb..0000000 --- a/Makefile +++ /dev/null @@ -1,12 +0,0 @@ -all: test lint benchmark - -test: - deno test --allow-read reader_test.ts writer_test.ts csv_spectrum_test.ts - -lint: - deno fmt --check *.ts benchmarks/*.ts benchmarks/*.js - -benchmark: - cd benchmarks && make - -.PHONY: test lint benchmark diff --git a/csv_spectrum_test.ts b/csv_spectrum_test.ts index 5ee612f..cc3f3ef 100644 --- a/csv_spectrum_test.ts +++ b/csv_spectrum_test.ts @@ -1,5 +1,5 @@ import { readCSVObjects } from "./mod.ts"; -import { assertEquals } from "./dev_deps.ts"; +import { assertEquals } from "@std/assert/assert-equals"; for await (const file of Deno.readDir("./third_party/csv-spectrum/csvs")) { const csvFilePath = "./third_party/csv-spectrum/csvs/" + file.name; diff --git a/deno.json b/deno.json new file mode 100644 index 0000000..0e9a669 --- /dev/null +++ b/deno.json @@ -0,0 +1,22 @@ +{ + "imports": { + "@std/io": "jsr:@std/io@0.224.0", + "@std/bytes": "jsr:@std/bytes@0.224.0", + "@std/log": "jsr:@std/log@0.224.0", + "@std/assert": "jsr:@std/assert@0.224.0", + "chiefbiiko/sha256": "https://denopkg.com/chiefbiiko/sha256@v2.0.0/mod.ts" + }, + "tasks": { + "test": "deno test --allow-read", + "benchmark": "cd benchmarks && make" + }, + "test": { + "include": ["reader_test.ts", "writer_test.ts", "csv_spectrum_test.ts"] + }, + "lint": { + "include": ["*.ts", "benchmarks/*.ts", "benchmarks/*.js"] + }, + "fmt": { + "include": ["*.ts", "benchmarks/*.ts", "benchmarks/*.js", "*.json"] + } +} diff --git a/deno.lock b/deno.lock new file mode 100644 index 0000000..cf1b074 --- /dev/null +++ b/deno.lock @@ -0,0 +1,63 @@ +{ + "version": "3", + "packages": { + "specifiers": { + "jsr:@std/assert@0.224.0": "jsr:@std/assert@0.224.0", + "jsr:@std/assert@^0.224.0": "jsr:@std/assert@0.224.0", + "jsr:@std/bytes@0.224.0": "jsr:@std/bytes@0.224.0", + "jsr:@std/bytes@^0.224.0": "jsr:@std/bytes@0.224.0", + "jsr:@std/fmt@^0.224.0": "jsr:@std/fmt@0.224.0", + "jsr:@std/fs@^0.224.0": "jsr:@std/fs@0.224.0", + "jsr:@std/internal@^0.224.0": "jsr:@std/internal@0.224.0", + "jsr:@std/io@0.224.0": "jsr:@std/io@0.224.0", + "jsr:@std/io@^0.224.0": "jsr:@std/io@0.224.0", + "jsr:@std/log@0.224.0": "jsr:@std/log@0.224.0" + }, + "jsr": { + "@std/assert@0.224.0": { + "integrity": "8643233ec7aec38a940a8264a6e3eed9bfa44e7a71cc6b3c8874213ff401967f", + "dependencies": [ + "jsr:@std/fmt@^0.224.0", + "jsr:@std/internal@^0.224.0" + ] + }, + "@std/bytes@0.224.0": { + "integrity": "a2250e1d0eb7d1c5a426f21267ab9bdeac2447fa87a3d0d1a467d3f7a6058e49" + }, + "@std/fmt@0.224.0": { + "integrity": "e20e9a2312a8b5393272c26191c0a68eda8d2c4b08b046bad1673148f1d69851" + }, + "@std/fs@0.224.0": { + "integrity": "52a5ec89731ac0ca8f971079339286f88c571a4d61686acf75833f03a89d8e69" + }, + "@std/internal@0.224.0": { + "integrity": "afc50644f9cdf4495eeb80523a8f6d27226b4b36c45c7c195dfccad4b8509291" + }, + "@std/io@0.224.0": { + "integrity": "0aff885d21d829c050b8a08b1d71b54aed5841aecf227f8d77e99ec529a11e8e", + "dependencies": [ + "jsr:@std/assert@^0.224.0", + "jsr:@std/bytes@^0.224.0" + ] + }, + "@std/log@0.224.0": { + "integrity": "24c8a38f3f322e3d33c3137d5562acad25830c01bd5838ade6c5a62118882deb", + "dependencies": [ + "jsr:@std/assert@^0.224.0", + "jsr:@std/fmt@^0.224.0", + "jsr:@std/fs@^0.224.0", + "jsr:@std/io@^0.224.0" + ] + } + } + }, + "remote": {}, + "workspace": { + "dependencies": [ + "jsr:@std/assert@0.224.0", + "jsr:@std/bytes@0.224.0", + "jsr:@std/io@0.224.0", + "jsr:@std/log@0.224.0" + ] + } +} diff --git a/deps.ts b/deps.ts deleted file mode 100644 index a5ffddf..0000000 --- a/deps.ts +++ /dev/null @@ -1,7 +0,0 @@ -export { - concat, - indexOfNeedle, - repeat, -} from "https://deno.land/std@0.195.0/bytes/mod.ts"; -export { getLogger, Logger } from "https://deno.land/std@0.195.0/log/mod.ts"; -export { iterateReader } from "https://deno.land/std@0.195.0/streams/iterate_reader.ts"; diff --git a/dev_deps.ts b/dev_deps.ts deleted file mode 100644 index 042ba6c..0000000 --- a/dev_deps.ts +++ /dev/null @@ -1,7 +0,0 @@ -export { - assertEquals, - assertRejects, -} from "https://deno.land/std@0.195.0/testing/asserts.ts"; -export * as log from "https://deno.land/std@0.195.0/log/mod.ts"; -export { Buffer } from "https://deno.land/std@0.195.0/io/buffer.ts"; -export { SHA256 as Sha256 } from "https://denopkg.com/chiefbiiko/sha256@v2.0.0/mod.ts"; diff --git a/reader.ts b/reader.ts index fafaae0..8966b93 100644 --- a/reader.ts +++ b/reader.ts @@ -1,4 +1,8 @@ -import { concat, getLogger, iterateReader, Logger, repeat } from "./deps.ts"; +import type { Reader } from "@std/io/types"; +import { concat } from "@std/bytes/concat"; +import { repeat } from "@std/bytes/repeat"; +import { getLogger, Logger } from "@std/log"; +import { iterateReader } from "@std/io/iterate-reader"; import { getUint8Array, hasPrefixFrom } from "./utils.ts"; /** Common options for CSV reader module */ @@ -114,7 +118,7 @@ export class CSVReader { private fromLine: number; private toLine: number; - constructor(reader: Deno.Reader, options?: Partial) { + constructor(reader: Reader, options?: Partial) { this.decoder = new TextDecoder(options?.encoding); const mergedOptions: HiddenCSVReaderOptions = { ...defaultCSVReaderOptions, @@ -240,7 +244,7 @@ export class CSVReader { if (done) { this.readerEmpty = true; } else { - this.inputBuffer = concat(this.inputBuffer, value); + this.inputBuffer = concat([this.inputBuffer, value]); this.inputBufferUnprocessed += value.length; } } @@ -500,7 +504,7 @@ class CSVStreamReader implements AsyncIterableIterator { ) => void; private nextPromiseReject?: (err: Error) => void; - constructor(reader: Deno.Reader, options?: Partial) { + constructor(reader: Reader, options?: Partial) { this.buffer = []; this.done = false; this.reader = new CSVReader(reader, { @@ -597,7 +601,7 @@ export const newLine = Symbol("newLine"); * } */ export function readCSVStream( - reader: Deno.Reader, + reader: Reader, options?: Partial, ): AsyncIterable { return new CSVStreamReader(reader, options); @@ -612,7 +616,7 @@ class CSVRowReader implements AsyncIterableIterator { private nextPromiseResolve?: (res: IteratorResult) => void; private nextPromiseReject?: (err: Error) => void; - constructor(reader: Deno.Reader, options?: Partial) { + constructor(reader: Reader, options?: Partial) { this.buffer = []; this.done = false; this.row = []; @@ -701,7 +705,7 @@ class CSVRowReader implements AsyncIterableIterator { * } */ export function readCSVRows( - reader: Deno.Reader, + reader: Reader, options?: Partial, ): AsyncIterable { return new CSVRowReader(reader, options); @@ -740,7 +744,7 @@ class RowIterator implements AsyncIterableIterator { } const { done, value } = this.buffer.length > 0 - ? this.buffer.shift() as IteratorResult + ? (this.buffer.shift() as IteratorResult) : await this.onRequested(); if (done || value === newLine) { @@ -767,7 +771,7 @@ class CSVRowIteratorReader implements AsyncIterableIterator { ) => void; private nextPromiseReject?: (err: Error) => void; - constructor(reader: Deno.Reader, options?: Partial) { + constructor(reader: Reader, options?: Partial) { this.done = false; this.buffer = []; this.reader = new CSVReader(reader, { @@ -875,7 +879,7 @@ class CSVRowIteratorReader implements AsyncIterableIterator { * } */ export function readCSV( - reader: Deno.Reader, + reader: Reader, options?: Partial, ): AsyncIterable> { return new CSVRowIteratorReader(reader, options); @@ -888,7 +892,7 @@ export function readCSV( * } */ export async function* readCSVObjects( - reader: Deno.Reader, + reader: Reader, options?: Partial, ): AsyncIterable<{ [key: string]: string }> { let header: string[] | undefined; diff --git a/reader_test.ts b/reader_test.ts index 7220201..90d5875 100644 --- a/reader_test.ts +++ b/reader_test.ts @@ -1,5 +1,7 @@ -import { concat } from "./deps.ts"; -import { assertEquals, assertRejects } from "./dev_deps.ts"; +import type { Reader } from "@std/io/types"; +import { concat } from "@std/bytes/concat"; +import { assertRejects } from "@std/assert/assert-rejects"; +import { assertEquals } from "@std/assert/assert-equals"; import { newLine, readCSV, @@ -9,7 +11,7 @@ import { } from "./reader.ts"; import { asyncArrayFrom, asyncArrayFrom2 } from "./utils.ts"; -class MyReader implements Deno.Reader { +class MyReader implements Reader { private buf: Uint8Array; private index: number; @@ -17,7 +19,7 @@ class MyReader implements Deno.Reader { const opts = { withBom: false, ...options }; this.buf = new TextEncoder().encode(content); if (opts.withBom) { - this.buf = concat(new Uint8Array([0xef, 0xbb, 0xbf]), this.buf); + this.buf = concat([new Uint8Array([0xef, 0xbb, 0xbf]), this.buf]); } this.index = 0; } diff --git a/utils.ts b/utils.ts index 915e29c..5230c9c 100644 --- a/utils.ts +++ b/utils.ts @@ -1,4 +1,4 @@ -import { getLogger } from "./deps.ts"; +import { getLogger } from "@std/log"; const enc = new TextEncoder(); diff --git a/writer.ts b/writer.ts index 8ce0df2..6e426b2 100644 --- a/writer.ts +++ b/writer.ts @@ -1,4 +1,5 @@ -import { concat, indexOfNeedle } from "./deps.ts"; +import { concat } from "@std/bytes/concat"; +import { indexOfNeedle } from "@std/bytes/index-of-needle"; import { dummyAsyncIterable, getUint8Array, @@ -113,7 +114,7 @@ export class CSVWriter { if (done) { inputBufferEmpty = true; } else { - inputBuffer = concat(inputBuffer, value); + inputBuffer = concat([inputBuffer, value]); } continue; } diff --git a/writer_test.ts b/writer_test.ts index edf1d00..08793ec 100644 --- a/writer_test.ts +++ b/writer_test.ts @@ -1,4 +1,5 @@ -import { assertEquals, Buffer } from "./dev_deps.ts"; +import { assertEquals } from "@std/assert/assert-equals"; +import { Buffer } from "@std/io/buffer"; import { CSVWriter, writeCSV, writeCSVObjects } from "./writer.ts"; Deno.test({