Skip to content

Commit bc0c328

Browse files
committed
Browser
1 parent 5085c8f commit bc0c328

File tree

5 files changed

+12
-14
lines changed

5 files changed

+12
-14
lines changed

src/blobFile.ts

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,10 +28,7 @@ export default class BlobFile implements GenericFilehandle {
2828
return new Uint8Array(0)
2929
}
3030

31-
const start = position
32-
const end = start + length
33-
34-
const slice = this.blob.slice(start, end)
31+
const slice = this.blob.slice(position, position + length)
3532
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
3633
return slice.bytes
3734
? slice.bytes()

src/filehandle.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ export type Fetcher = (
2121
export interface FilehandleOptions {
2222
signal?: AbortSignal
2323
headers?: Record<string, string>
24+
overrides?: Omit<RequestInit, 'headers'>
2425
encoding?: BufferEncoding
2526
fetch?: Fetcher
2627
}

src/index.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,3 @@ export * from './filehandle.ts'
33
export { default as BlobFile } from './blobFile.ts'
44
export { default as RemoteFile } from './remoteFile.ts'
55
export { default as LocalFile } from './localFile.ts'
6-
7-
export { type GenericFilehandle } from './filehandle.ts'

src/localFile.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import type {
99
export default class LocalFile implements GenericFilehandle {
1010
private filename: string
1111

12-
public constructor(source: string, _opts: FilehandleOptions = {}) {
12+
public constructor(source: string) {
1313
this.filename = source
1414
}
1515

src/remoteFile.ts

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,12 @@ export default class RemoteFile implements GenericFilehandle {
2222
private _stat?: Stats
2323
private fetchImplementation: Fetcher
2424
private baseHeaders: Record<string, string>
25+
private baseOverrides: Omit<RequestInit, 'headers'>
2526

2627
public constructor(source: string, opts: FilehandleOptions = {}) {
2728
this.url = source
2829
this.baseHeaders = opts.headers ?? {}
30+
this.baseOverrides = opts.overrides ?? {}
2931
this.fetchImplementation =
3032
opts.fetch ??
3133
((input: RequestInfo, init?: RequestInit) =>
@@ -79,13 +81,11 @@ export default class RemoteFile implements GenericFilehandle {
7981
`read() called with NaN length or position (length=${length}, position=${position}). The index file may be corrupt.`,
8082
)
8183
}
82-
const { headers = {}, signal } = opts
83-
if (length < Infinity) {
84-
headers.range = `bytes=${position}-${position + length - 1}`
85-
} else if (length === Infinity && position !== 0) {
86-
headers.range = `bytes=${position}-`
87-
}
84+
const { headers = {}, signal, overrides = {} } = opts
85+
headers.range = `bytes=${position}-${position + length - 1}`
8886
const res = await this.fetch(this.url, {
87+
...this.baseOverrides,
88+
...overrides,
8989
headers: { ...this.baseHeaders, ...headers },
9090
method: 'GET',
9191
redirect: 'follow',
@@ -143,8 +143,10 @@ export default class RemoteFile implements GenericFilehandle {
143143
): Promise<Uint8Array<ArrayBuffer> | string> {
144144
const encoding = typeof options === 'string' ? options : options.encoding
145145
const opts = typeof options === 'string' ? {} : options
146-
const { headers = {}, signal } = opts
146+
const { headers = {}, signal, overrides = {} } = opts
147147
const res = await this.fetch(this.url, {
148+
...this.baseOverrides,
149+
...overrides,
148150
headers: { ...this.baseHeaders, ...headers },
149151
method: 'GET',
150152
redirect: 'follow',

0 commit comments

Comments
 (0)