Skip to content

Commit 238c005

Browse files
committed
fix: new lint issues
1 parent fa28954 commit 238c005

23 files changed

Lines changed: 144 additions & 100 deletions

examples/test-examples.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,9 @@ runExample('round-trip').then(({ stdout, stderr }) => {
4444
}).then(async () => {
4545
try {
4646
await cleanGoCarDump()
47-
} catch (err) {} // failure is expected, this is just a prep
47+
} catch (err) {
48+
// failure is expected, this is just a prep
49+
}
4850
await runExample('dump-car', ['../test/go.car']).then(async ({ stdout, stderr }) => {
4951
assert.strictEqual(stderr, '')
5052
assert.strictEqual(stdout,

src/buffer-decoder.js

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,13 @@ import { CIDV0_BYTES, decodeV2Header, decodeVarint, getMultihashLength, V2_HEADE
55
import { CarV1HeaderOrV2Pragma } from './header-validator.js'
66

77
/**
8-
* @typedef {import('./api').Block} Block
9-
* @typedef {import('./api').BlockHeader} BlockHeader
10-
* @typedef {import('./api').BlockIndex} BlockIndex
11-
* @typedef {import('./coding').BytesBufferReader} BytesBufferReader
12-
* @typedef {import('./coding').CarHeader} CarHeader
13-
* @typedef {import('./coding').CarV2Header} CarV2Header
14-
* @typedef {import('./coding').CarV2FixedHeader} CarV2FixedHeader
8+
* @typedef {import('./api.js').Block} Block
9+
* @typedef {import('./api.js').BlockHeader} BlockHeader
10+
* @typedef {import('./api.js').BlockIndex} BlockIndex
11+
* @typedef {import('./coding.js').BytesBufferReader} BytesBufferReader
12+
* @typedef {import('./coding.js').CarHeader} CarHeader
13+
* @typedef {import('./coding.js').CarV2Header} CarV2Header
14+
* @typedef {import('./coding.js').CarV2FixedHeader} CarV2FixedHeader
1515
*/
1616

1717
/**

src/buffer-reader-browser.js

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,10 @@ import * as BufferDecoder from './buffer-decoder.js'
22

33
/**
44
* @typedef {import('multiformats').CID} CID
5-
* @typedef {import('./api').Block} Block
6-
* @typedef {import('./api').CarBufferReader} ICarBufferReader
7-
* @typedef {import('./coding').CarHeader} CarHeader
8-
* @typedef {import('./coding').CarV2Header} CarV2Header
5+
* @typedef {import('./api.js').Block} Block
6+
* @typedef {import('./api.js').CarBufferReader} ICarBufferReader
7+
* @typedef {import('./coding.js').CarHeader} CarHeader
8+
* @typedef {import('./coding.js').CarV2Header} CarV2Header
99
*/
1010

1111
/**
@@ -42,7 +42,7 @@ export class CarBufferReader {
4242
}
4343

4444
/**
45-
* @property version
45+
* @property {number} version of the CAR
4646
* @memberof CarBufferReader
4747
* @instance
4848
*/

src/buffer-reader.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@ import fs from 'fs'
22
import { CarBufferReader as BrowserCarBufferReader } from './buffer-reader-browser.js'
33

44
/**
5-
* @typedef {import('./api').Block} Block
6-
* @typedef {import('./api').BlockIndex} BlockIndex
7-
* @typedef {import('./api').CarBufferReader} ICarBufferReader
5+
* @typedef {import('./api.js').Block} Block
6+
* @typedef {import('./api.js').BlockIndex} BlockIndex
7+
* @typedef {import('./api.js').CarBufferReader} ICarBufferReader
88
*/
99

1010
const fsread = fs.readSync

src/buffer-writer.js

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,11 @@ import { tokensToLength } from 'cborg/length'
44
import varint from 'varint'
55

66
/**
7-
* @typedef {import('./api').CID} CID
8-
* @typedef {import('./api').Block} Block
9-
* @typedef {import('./api').CarBufferWriter} Writer
10-
* @typedef {import('./api').CarBufferWriterOptions} Options
11-
* @typedef {import('./coding').CarEncoder} CarEncoder
7+
* @typedef {import('./api.js').CID} CID
8+
* @typedef {import('./api.js').Block} Block
9+
* @typedef {import('./api.js').CarBufferWriter} Writer
10+
* @typedef {import('./api.js').CarBufferWriterOptions} Options
11+
* @typedef {import('./coding.js').CarEncoder} CarEncoder
1212
*/
1313

1414
/**

src/decoder-common.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ export const V2_HEADER_LENGTH = /* characteristics */ 16 /* v1 offset */ + 8 /*
1717
* ```
1818
*
1919
* @param {Uint8Array} bytes
20-
* @param {import('./coding').Seekable} seeker
20+
* @param {import('./coding.js').Seekable} seeker
2121
* @returns {number}
2222
*/
2323
export function decodeVarint (bytes, seeker) {
@@ -38,7 +38,7 @@ export function decodeVarint (bytes, seeker) {
3838
* ```
3939
*
4040
* @param {Uint8Array} bytes
41-
* @returns {import('./coding').CarV2FixedHeader}
41+
* @returns {import('./coding.js').CarV2FixedHeader}
4242
*/
4343
export function decodeV2Header (bytes) {
4444
const dv = new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength)

src/decoder.js

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,14 @@ import { CIDV0_BYTES, decodeV2Header, decodeVarint, getMultihashLength, V2_HEADE
55
import { CarV1HeaderOrV2Pragma } from './header-validator.js'
66

77
/**
8-
* @typedef {import('./api').Block} Block
9-
* @typedef {import('./api').BlockHeader} BlockHeader
10-
* @typedef {import('./api').BlockIndex} BlockIndex
11-
* @typedef {import('./coding').BytesReader} BytesReader
12-
* @typedef {import('./coding').CarHeader} CarHeader
13-
* @typedef {import('./coding').CarV2Header} CarV2Header
14-
* @typedef {import('./coding').CarV2FixedHeader} CarV2FixedHeader
15-
* @typedef {import('./coding').CarDecoder} CarDecoder
8+
* @typedef {import('./api.js').Block} Block
9+
* @typedef {import('./api.js').BlockHeader} BlockHeader
10+
* @typedef {import('./api.js').BlockIndex} BlockIndex
11+
* @typedef {import('./coding.js').BytesReader} BytesReader
12+
* @typedef {import('./coding.js').CarHeader} CarHeader
13+
* @typedef {import('./coding.js').CarV2Header} CarV2Header
14+
* @typedef {import('./coding.js').CarV2FixedHeader} CarV2FixedHeader
15+
* @typedef {import('./coding.js').CarDecoder} CarDecoder
1616
*/
1717

1818
/**
@@ -201,10 +201,10 @@ export function bytesReader (bytes) {
201201
}
202202

203203
/**
204-
* @ignore
205204
* reusable reader for streams and files, we just need a way to read an
206205
* additional chunk (of some undetermined size) and a way to close the
207206
* reader when finished
207+
*
208208
* @param {() => Promise<Uint8Array|null>} readChunk
209209
* @returns {BytesReader}
210210
*/
@@ -216,7 +216,7 @@ export function chunkReader (readChunk /*, closer */) {
216216

217217
const read = async (/** @type {number} */ length) => {
218218
have = currentChunk.length - offset
219-
const bufa = [currentChunk.subarray(offset)]
219+
const bufa = /** @type {Uint8Array<ArrayBufferLike>[]} */([currentChunk.subarray(offset)])
220220
while (have < length) {
221221
const chunk = await readChunk()
222222
if (chunk == null) {

src/encoder.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@ import varint from 'varint'
33

44
/**
55
* @typedef {import('multiformats').CID} CID
6-
* @typedef {import('./api').Block} Block
7-
* @typedef {import('./coding').CarEncoder} CarEncoder
8-
* @typedef {import('./coding').IteratorChannel_Writer<Uint8Array>} IteratorChannel_Writer
6+
* @typedef {import('./api.js').Block} Block
7+
* @typedef {import('./coding.js').CarEncoder} CarEncoder
8+
* @typedef {import('./coding.js').IteratorChannel_Writer<Uint8Array>} IteratorChannel_Writer
99
*/
1010

1111
const CAR_V1_VERSION = 1

src/header-validator.js

Lines changed: 62 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,41 +1,74 @@
1-
/** Auto-generated with @ipld/schema@v4.2.0 at Thu Sep 14 2023 from IPLD Schema:
1+
/* eslint-disable jsdoc/check-indentation, max-depth */
2+
3+
/**
4+
* Auto-generated with @ipld/schema@v4.2.0 at Thu Sep 14 2023 from IPLD Schema:
25
*
36
* # CarV1HeaderOrV2Pragma is a more relaxed form, and can parse {version:x} where
47
* # roots are optional. This is typically useful for the {verison:2} CARv2
58
* # pragma.
69
*
710
* type CarV1HeaderOrV2Pragma struct {
8-
* roots optional [&Any]
9-
* # roots is _not_ optional for CarV1 but we defer that check within code to
10-
* # gracefully handle the V2 case where it's just {version:X}
11-
* version Int
11+
* roots optional [&Any]
12+
* # roots is _not_ optional for CarV1 but we defer that check within code to
13+
* # gracefully handle the V2 case where it's just {version:X}
14+
* version Int
1215
* }
1316
*
1417
* # CarV1Header is the strict form of the header, and requires roots to be
1518
* # present. This is compatible with the CARv1 specification.
1619
*
1720
* # type CarV1Header struct {
18-
* # roots [&Any]
19-
* # version Int
21+
* # roots [&Any]
22+
* # version Int
2023
* # }
2124
*
2225
*/
2326

2427
const Kinds = {
25-
Null: /** @returns {undefined|null} */ (/** @type {any} */ obj) => obj === null ? obj : undefined,
26-
Int: /** @returns {undefined|number} */ (/** @type {any} */ obj) => Number.isInteger(obj) ? obj : undefined,
27-
Float: /** @returns {undefined|number} */ (/** @type {any} */ obj) => typeof obj === 'number' && Number.isFinite(obj) ? obj : undefined,
28-
String: /** @returns {undefined|string} */ (/** @type {any} */ obj) => typeof obj === 'string' ? obj : undefined,
29-
Bool: /** @returns {undefined|boolean} */ (/** @type {any} */ obj) => typeof obj === 'boolean' ? obj : undefined,
30-
Bytes: /** @returns {undefined|Uint8Array} */ (/** @type {any} */ obj) => obj instanceof Uint8Array ? obj : undefined,
31-
Link: /** @returns {undefined|object} */ (/** @type {any} */ obj) => obj !== null && typeof obj === 'object' && obj.asCID === obj ? obj : undefined,
32-
List: /** @returns {undefined|Array<any>} */ (/** @type {any} */ obj) => Array.isArray(obj) ? obj : undefined,
33-
Map: /** @returns {undefined|object} */ (/** @type {any} */ obj) => obj !== null && typeof obj === 'object' && obj.asCID !== obj && !Array.isArray(obj) && !(obj instanceof Uint8Array) ? obj : undefined
28+
Null: /**
29+
* @param obj
30+
* @returns {undefined|null}
31+
*/ (/** @type {any} */ obj) => obj === null ? obj : undefined,
32+
Int: /**
33+
* @param obj
34+
* @returns {undefined|number}
35+
*/ (/** @type {any} */ obj) => Number.isInteger(obj) ? obj : undefined,
36+
Float: /**
37+
* @param obj
38+
* @returns {undefined|number}
39+
*/ (/** @type {any} */ obj) => typeof obj === 'number' && Number.isFinite(obj) ? obj : undefined,
40+
String: /**
41+
* @param obj
42+
* @returns {undefined|string}
43+
*/ (/** @type {any} */ obj) => typeof obj === 'string' ? obj : undefined,
44+
Bool: /**
45+
* @param obj
46+
* @returns {undefined|boolean}
47+
*/ (/** @type {any} */ obj) => typeof obj === 'boolean' ? obj : undefined,
48+
Bytes: /**
49+
* @param obj
50+
* @returns {undefined|Uint8Array}
51+
*/ (/** @type {any} */ obj) => obj instanceof Uint8Array ? obj : undefined,
52+
Link: /**
53+
* @param obj
54+
* @returns {undefined|object}
55+
*/ (/** @type {any} */ obj) => obj !== null && typeof obj === 'object' && obj.asCID === obj ? obj : undefined,
56+
List: /**
57+
* @param obj
58+
* @returns {undefined|Array<any>}
59+
*/ (/** @type {any} */ obj) => Array.isArray(obj) ? obj : undefined,
60+
Map: /**
61+
* @param obj
62+
* @returns {undefined|object}
63+
*/ (/** @type {any} */ obj) => obj !== null && typeof obj === 'object' && obj.asCID !== obj && !Array.isArray(obj) && !(obj instanceof Uint8Array) ? obj : undefined
3464
}
3565
/** @type {{ [k in string]: (obj:any)=>undefined|any}} */
3666
const Types = {
3767
'CarV1HeaderOrV2Pragma > roots (anon) > valueType (anon)': Kinds.Link,
38-
'CarV1HeaderOrV2Pragma > roots (anon)': /** @returns {undefined|any} */ (/** @type {any} */ obj) => {
68+
'CarV1HeaderOrV2Pragma > roots (anon)': /**
69+
* @param obj
70+
* @returns {undefined|any}
71+
*/ (/** @type {any} */ obj) => {
3972
if (Kinds.List(obj) === undefined) {
4073
return undefined
4174
}
@@ -61,7 +94,10 @@ const Types = {
6194
return obj
6295
},
6396
Int: Kinds.Int,
64-
CarV1HeaderOrV2Pragma: /** @returns {undefined|any} */ (/** @type {any} */ obj) => {
97+
CarV1HeaderOrV2Pragma: /**
98+
* @param obj
99+
* @returns {undefined|any}
100+
*/ (/** @type {any} */ obj) => {
65101
if (Kinds.Map(obj) === undefined) {
66102
return undefined
67103
}
@@ -123,7 +159,10 @@ const Types = {
123159
/** @type {{ [k in string]: (obj:any)=>undefined|any}} */
124160
const Reprs = {
125161
'CarV1HeaderOrV2Pragma > roots (anon) > valueType (anon)': Kinds.Link,
126-
'CarV1HeaderOrV2Pragma > roots (anon)': /** @returns {undefined|any} */ (/** @type {any} */ obj) => {
162+
'CarV1HeaderOrV2Pragma > roots (anon)': /**
163+
* @param obj
164+
* @returns {undefined|any}
165+
*/ (/** @type {any} */ obj) => {
127166
if (Kinds.List(obj) === undefined) {
128167
return undefined
129168
}
@@ -149,7 +188,10 @@ const Reprs = {
149188
return obj
150189
},
151190
Int: Kinds.Int,
152-
CarV1HeaderOrV2Pragma: /** @returns {undefined|any} */ (/** @type {any} */ obj) => {
191+
CarV1HeaderOrV2Pragma: /**
192+
* @param obj
193+
* @returns {undefined|any}
194+
*/ (/** @type {any} */ obj) => {
153195
if (Kinds.Map(obj) === undefined) {
154196
return undefined
155197
}

src/indexed-reader.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,10 @@ import { CarReader as NodeCarReader } from './reader.js'
66

77
/**
88
* @typedef {import('fs').promises.FileHandle} FileHandle
9-
* @typedef {import('./api').Block} Block
10-
* @typedef {import('./api').BlockIndex} BlockIndex
11-
* @typedef {import('./api').CarReader} CarReaderIface
12-
* @typedef {import('./reader-browser').CarReader} CarReader
9+
* @typedef {import('./api.js').Block} Block
10+
* @typedef {import('./api.js').BlockIndex} BlockIndex
11+
* @typedef {import('./api.js').CarReader} CarReaderIface
12+
* @typedef {import('./reader-browser.js').CarReader} CarReader
1313
* @typedef {{ blockLength:number, blockOffset:number }} RawLocation
1414
*/
1515

0 commit comments

Comments
 (0)