From 3d74818e975099c7c83112434f7ed23a68b9af0a Mon Sep 17 00:00:00 2001 From: Rod Vagg Date: Mon, 28 Aug 2023 17:39:56 +1000 Subject: [PATCH] fix: linting --- src/bases/identity.js | 2 +- src/basics.js | 16 +++++++--------- src/block/interface.ts | 5 +++-- src/cid.js | 10 ++++++---- src/hashes/sha2.js | 2 +- src/index.js | 7 ++++--- src/link.js | 2 +- src/link/interface.ts | 3 ++- src/traversal.js | 11 ++--------- test/test-block.spec.js | 5 +++-- test/test-bytes.spec.js | 3 ++- test/test-cid.spec.js | 16 ++++++++-------- test/test-link.spec.js | 2 +- test/test-multibase-spec.spec.js | 2 +- test/test-multibase.spec.js | 9 +++++---- test/test-multicodec.spec.js | 5 +++-- test/test-multihash.spec.js | 13 +++++++------ test/test-traversal.spec.js | 7 ++++--- test/test-varint.spec.js | 2 +- test/ts-use/src/main.ts | 4 ++-- 20 files changed, 64 insertions(+), 62 deletions(-) diff --git a/src/bases/identity.js b/src/bases/identity.js index 758bba6b..5db2a0ca 100644 --- a/src/bases/identity.js +++ b/src/bases/identity.js @@ -1,7 +1,7 @@ // @ts-check -import { from } from './base.js' import { fromString, toString } from '../bytes.js' +import { from } from './base.js' export const identity = from({ prefix: '\x00', diff --git a/src/basics.js b/src/basics.js index 1fbc254a..fde44152 100644 --- a/src/basics.js +++ b/src/basics.js @@ -1,21 +1,19 @@ // @ts-check -import * as identityBase from './bases/identity.js' -import * as base2 from './bases/base2.js' -import * as base8 from './bases/base8.js' import * as base10 from './bases/base10.js' import * as base16 from './bases/base16.js' +import * as base2 from './bases/base2.js' +import * as base256emoji from './bases/base256emoji.js' import * as base32 from './bases/base32.js' import * as base36 from './bases/base36.js' import * as base58 from './bases/base58.js' import * as base64 from './bases/base64.js' -import * as base256emoji from './bases/base256emoji.js' -import * as sha2 from './hashes/sha2.js' -import * as identity from './hashes/identity.js' - -import * as raw from './codecs/raw.js' +import * as base8 from './bases/base8.js' +import * as identityBase from './bases/identity.js' import * as json from './codecs/json.js' - +import * as raw from './codecs/raw.js' +import * as identity from './hashes/identity.js' +import * as sha2 from './hashes/sha2.js' import { CID, hasher, digest, varint, bytes } from './index.js' const bases = { ...identityBase, ...base2, ...base8, ...base10, ...base16, ...base32, ...base36, ...base58, ...base64, ...base256emoji } diff --git a/src/block/interface.ts b/src/block/interface.ts index df583589..568be526 100644 --- a/src/block/interface.ts +++ b/src/block/interface.ts @@ -1,7 +1,8 @@ /* eslint-disable @typescript-eslint/no-unnecessary-type-constraint */ /* eslint-disable no-use-before-define */ -import { Link, Version } from '../link/interface.js' -import { CID } from '../cid.js' + +import type { CID } from '../cid.js' +import type { Link, Version } from '../link/interface.js' /** * A byte-encoded representation of some type of `Data`. diff --git a/src/cid.js b/src/cid.js index 852b3d53..40f7c5fc 100644 --- a/src/cid.js +++ b/src/cid.js @@ -1,11 +1,11 @@ -import * as varint from './varint.js' -import * as Digest from './hashes/digest.js' -import { base58btc } from './bases/base58.js' import { base32 } from './bases/base32.js' +import { base58btc } from './bases/base58.js' import { coerce } from './bytes.js' +import * as Digest from './hashes/digest.js' // Linter can see that API is used in types. // eslint-disable-next-line import * as API from "./link/interface.js" +import * as varint from './varint.js' // This way TS will also expose all the types from module export * from './link/interface.js' @@ -82,7 +82,6 @@ export class CID { * @param {Format} code - Code of the codec content is encoded in, see https://github.com/multiformats/multicodec/blob/master/table.csv * @param {API.MultihashDigest} multihash - (Multi)hash of the of the content. * @param {Uint8Array} bytes - * */ constructor (version, code, multihash, bytes) { /** @readonly */ @@ -215,6 +214,9 @@ export class CID { return format(this, base) } + /** + * @returns {API.LinkJSON} + */ toJSON () { return { '/': format(this) } } diff --git a/src/hashes/sha2.js b/src/hashes/sha2.js index 20f88b6e..4193aa66 100644 --- a/src/hashes/sha2.js +++ b/src/hashes/sha2.js @@ -1,8 +1,8 @@ // @ts-check import crypto from 'crypto' -import { from } from './hasher.js' import { coerce } from '../bytes.js' +import { from } from './hasher.js' export const sha256 = from({ name: 'sha2-256', diff --git a/src/index.js b/src/index.js index 377a9771..0f676fcd 100644 --- a/src/index.js +++ b/src/index.js @@ -1,8 +1,9 @@ -import { CID } from './cid.js' -import * as varint from './varint.js' import * as bytes from './bytes.js' -import * as hasher from './hashes/hasher.js' +import { CID } from './cid.js' import * as digest from './hashes/digest.js' +import * as hasher from './hashes/hasher.js' +import * as varint from './varint.js' + // This way TS will also expose all the types from module export * from './interface.js' diff --git a/src/link.js b/src/link.js index 0cd0a849..43b361ef 100644 --- a/src/link.js +++ b/src/link.js @@ -1,7 +1,7 @@ +import { CID, format, toJSON, fromJSON } from './cid.js' // Linter can see that API is used in types. // eslint-disable-next-line import * as API from "./link/interface.js" -import { CID, format, toJSON, fromJSON } from './cid.js' // This way TS will also expose all the types from module export * from './link/interface.js' diff --git a/src/link/interface.ts b/src/link/interface.ts index 06955a2c..7a1415bd 100644 --- a/src/link/interface.ts +++ b/src/link/interface.ts @@ -1,8 +1,9 @@ /* eslint-disable @typescript-eslint/no-unnecessary-type-constraint */ /* eslint-disable no-use-before-define */ -import type { MultihashDigest } from '../hashes/interface.js' + import type { MultibaseEncoder, MultibaseDecoder, Multibase } from '../bases/interface.js' import type { Phantom, ByteView } from '../block/interface.js' +import type { MultihashDigest } from '../hashes/interface.js' export type { MultihashDigest, MultibaseEncoder, MultibaseDecoder } export type Version = 0 | 1 diff --git a/src/traversal.js b/src/traversal.js index 0b46b086..6c61a506 100644 --- a/src/traversal.js +++ b/src/traversal.js @@ -1,18 +1,11 @@ import { base58btc } from './bases/base58.js' /** - * @template [C=number] - multicodec code corresponding to codec used to encode the block - * @template [A=number] - multicodec code corresponding to the hashing algorithm used in CID creation. - * @template [V=0|1] - CID version - * @typedef {import('./cid').CID} CID + * @typedef {import('./cid').CID} CID */ /** - * @template [T=unknown] - Logical type of the data encoded in the block - * @template [C=number] - multicodec code corresponding to codec used to encode the block - * @template [A=number] - multicodec code corresponding to the hashing algorithm used in CID creation. - * @template [V=0|1] - CID version - * @typedef {import('./block/interface.js').BlockView} BlockView + * @typedef {import('./block/interface.js').BlockView} BlockView */ /** diff --git a/test/test-block.spec.js b/test/test-block.spec.js index 4fdf8f54..65a79225 100644 --- a/test/test-block.spec.js +++ b/test/test-block.spec.js @@ -1,9 +1,10 @@ /* globals describe, it */ + +import { assert } from 'aegir/chai' +import * as main from '../src/block.js' import * as codec from '../src/codecs/json.js' import { sha256 as hasher } from '../src/hashes/sha2.js' -import * as main from '../src/block.js' import { CID, bytes } from '../src/index.js' -import { assert } from 'aegir/chai' const fixture = { hello: 'world' } const link = CID.parse('bafyreidykglsfhoixmivffc5uwhcgshx4j465xwqntbmu43nb2dzqwfvae') diff --git a/test/test-bytes.spec.js b/test/test-bytes.spec.js index 44cc6afa..0dff8537 100644 --- a/test/test-bytes.spec.js +++ b/test/test-bytes.spec.js @@ -1,6 +1,7 @@ /* globals describe, it */ -import * as bytes from '../src/bytes.js' + import { assert } from 'aegir/chai' +import * as bytes from '../src/bytes.js' describe('bytes', () => { it('isBinary', () => { diff --git a/test/test-cid.spec.js b/test/test-cid.spec.js index e6a6b806..e7721a33 100644 --- a/test/test-cid.spec.js +++ b/test/test-cid.spec.js @@ -1,17 +1,17 @@ /* globals describe, it */ -import { fromHex, toHex, equals } from '../src/bytes.js' -import { varint, CID } from '../src/index.js' -import { base58btc } from '../src/bases/base58.js' -import { base32 } from '../src/bases/base32.js' -import { base64 } from '../src/bases/base64.js' -import { sha256, sha512 } from '../src/hashes/sha2.js' -import invalidMultihash from './fixtures/invalid-multihash.js' -import OLDCID from 'cids' import { assert } from 'aegir/chai' +import OLDCID from 'cids' // Linter can see that API is used in types. // eslint-disable-next-line import * as API from 'multiformats' +import { base32 } from '../src/bases/base32.js' +import { base58btc } from '../src/bases/base58.js' +import { base64 } from '../src/bases/base64.js' +import { fromHex, toHex, equals } from '../src/bytes.js' +import { sha256, sha512 } from '../src/hashes/sha2.js' +import { varint, CID } from '../src/index.js' +import invalidMultihash from './fixtures/invalid-multihash.js' const textEncoder = new TextEncoder() diff --git a/test/test-link.spec.js b/test/test-link.spec.js index 7fdc1f05..980690f1 100644 --- a/test/test-link.spec.js +++ b/test/test-link.spec.js @@ -1,8 +1,8 @@ /* globals describe, it */ -import * as Link from '../src/link.js' import { assert } from 'aegir/chai' import { sha256 } from '../src/hashes/sha2.js' +import * as Link from '../src/link.js' const utf8 = new TextEncoder() diff --git a/test/test-multibase-spec.spec.js b/test/test-multibase-spec.spec.js index f30101af..4bfc3834 100644 --- a/test/test-multibase-spec.spec.js +++ b/test/test-multibase-spec.spec.js @@ -1,8 +1,8 @@ /* eslint-env mocha */ +import { assert } from 'aegir/chai' import { bases } from '../src/basics.js' import { fromString } from '../src/bytes.js' -import { assert } from 'aegir/chai' const encoded = [ { diff --git a/test/test-multibase.spec.js b/test/test-multibase.spec.js index bdb93293..f3f1881e 100644 --- a/test/test-multibase.spec.js +++ b/test/test-multibase.spec.js @@ -1,14 +1,15 @@ /* globals describe, it */ -import * as bytes from '../src/bytes.js' -import * as b2 from '../src/bases/base2.js' -import * as b8 from '../src/bases/base8.js' + +import { assert } from 'aegir/chai' import * as b10 from '../src/bases/base10.js' import * as b16 from '../src/bases/base16.js' +import * as b2 from '../src/bases/base2.js' import * as b32 from '../src/bases/base32.js' import * as b36 from '../src/bases/base36.js' import * as b58 from '../src/bases/base58.js' import * as b64 from '../src/bases/base64.js' -import { assert } from 'aegir/chai' +import * as b8 from '../src/bases/base8.js' +import * as bytes from '../src/bytes.js' const { base16, base32, base58btc, base64 } = { ...b16, ...b32, ...b58, ...b64 } diff --git a/test/test-multicodec.spec.js b/test/test-multicodec.spec.js index 3e330800..33d3446d 100644 --- a/test/test-multicodec.spec.js +++ b/test/test-multicodec.spec.js @@ -1,8 +1,9 @@ /* globals describe, it */ + +import { assert } from 'aegir/chai' import * as bytes from '../src/bytes.js' -import * as raw from '../src/codecs/raw.js' import * as json from '../src/codecs/json.js' -import { assert } from 'aegir/chai' +import * as raw from '../src/codecs/raw.js' describe('multicodec', () => { it('encode/decode raw', () => { diff --git a/test/test-multihash.spec.js b/test/test-multihash.spec.js index 87126137..cbfa3306 100644 --- a/test/test-multihash.spec.js +++ b/test/test-multihash.spec.js @@ -1,13 +1,14 @@ /* globals describe, it */ -import { fromHex, fromString } from '../src/bytes.js' -import { sha256, sha512 } from '../src/hashes/sha2.js' -import { identity } from '../src/hashes/identity.js' -import { decode as decodeDigest, create as createDigest } from '../src/hashes/digest.js' -import valid from './fixtures/valid-multihash.js' -import invalid from './fixtures/invalid-multihash.js' + import { hash as slSha256 } from '@stablelib/sha256' import { hash as slSha512 } from '@stablelib/sha512' import { assert } from 'aegir/chai' +import { fromHex, fromString } from '../src/bytes.js' +import { decode as decodeDigest, create as createDigest } from '../src/hashes/digest.js' +import { identity } from '../src/hashes/identity.js' +import { sha256, sha512 } from '../src/hashes/sha2.js' +import invalid from './fixtures/invalid-multihash.js' +import valid from './fixtures/valid-multihash.js' /** * @param {number|string} code diff --git a/test/test-traversal.spec.js b/test/test-traversal.spec.js index 494e11c5..386f5115 100644 --- a/test/test-traversal.spec.js +++ b/test/test-traversal.spec.js @@ -1,10 +1,11 @@ /* globals describe, it */ + +import { assert } from 'aegir/chai' +import * as main from '../src/block.js' +import { fromString } from '../src/bytes.js' import * as codec from '../src/codecs/json.js' import { sha256 as hasher } from '../src/hashes/sha2.js' -import * as main from '../src/block.js' import { walk } from '../src/traversal.js' -import { fromString } from '../src/bytes.js' -import { assert } from 'aegir/chai' /** @typedef {import('../src/cid.js').CID} CID */ diff --git a/test/test-varint.spec.js b/test/test-varint.spec.js index 0c915971..137c9fbb 100644 --- a/test/test-varint.spec.js +++ b/test/test-varint.spec.js @@ -1,7 +1,7 @@ /* globals describe, it */ -import { varint } from '../src/index.js' import { assert } from 'aegir/chai' +import { varint } from '../src/index.js' const UTF8 = new TextEncoder() diff --git a/test/ts-use/src/main.ts b/test/ts-use/src/main.ts index ff7de729..dc678c84 100644 --- a/test/ts-use/src/main.ts +++ b/test/ts-use/src/main.ts @@ -1,8 +1,8 @@ import * as Block from 'multiformats/block' -import { sha256 } from 'multiformats/hashes/sha2' import * as json from 'multiformats/codecs/json' +import { sha256 } from 'multiformats/hashes/sha2' -const main = async () => { +const main = async (): Promise => { const block = await Block.encode({ value: { hello: 'world' }, hasher: sha256,