Skip to content

Commit 00b69d5

Browse files
fix(loader-utils): ReadableFile implementation to match the interface (#3157)
1 parent cff7926 commit 00b69d5

File tree

6 files changed

+9
-140
lines changed

6 files changed

+9
-140
lines changed

examples/experimental/slpk-in-browser/src/app.tsx

+2-3
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,8 @@ import {MapController, FlyToInterpolator, MapViewState} from '@deck.gl/core/type
1111
import {COORDINATE_SYSTEM, I3SLoader, parseSLPKArchive} from '@loaders.gl/i3s';
1212
import {Tileset3D} from '@loaders.gl/tiles';
1313
import {ControlPanel} from './components/control-panel';
14-
import {BrowserFile} from './browser-file';
1514
import {ZipFileSystem} from '@loaders.gl/zip';
16-
import {LoaderWithParser} from '@loaders.gl/loader-utils';
15+
import {BlobFile, FileProvider, LoaderWithParser} from '@loaders.gl/loader-utils';
1716
import CustomTile3DLayer from './custom-tile-3d-layer';
1817

1918
export const TRANSITION_DURAITON = 4000;
@@ -49,7 +48,7 @@ export default function App() {
4948
}
5049

5150
const createFileSystem = async (file: File) => {
52-
const fileProvider = new BrowserFile(file);
51+
const fileProvider = await FileProvider.create(new BlobFile(file));
5352
const archive = await parseSLPKArchive(fileProvider, undefined, file.name);
5453
const fileSystem = new ZipFileSystem(archive);
5554
setFileSystem(fileSystem);

examples/experimental/slpk-in-browser/src/browser-file.ts

-132
This file was deleted.

examples/experimental/slpk-in-browser/vite.config.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ const getAliases = async (frameworkName, frameworkRootDir) => {
1414

1515
// https://vitejs.dev/config/
1616
export default defineConfig(async () => ({
17-
resolve: {alias: await getAliases('@loaders.gl', `${__dirname}/../../..`)},
17+
resolve: {alias: await getAliases('@loaders.gl', `${__dirname}/../..`)},
1818
server: {open: true}
1919
}))
2020

modules/loader-utils/src/lib/files/blob-file.ts

+4-2
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,10 @@ export class BlobFile implements ReadableFile {
3030
};
3131
}
3232

33-
async read(start: number, length: number): Promise<ArrayBuffer> {
34-
const arrayBuffer = await this.handle.slice(start, start + length).arrayBuffer();
33+
async read(start?: number | bigint, length?: number): Promise<ArrayBuffer> {
34+
const arrayBuffer = await this.handle
35+
.slice(Number(start), Number(start) + Number(length))
36+
.arrayBuffer();
3537
return arrayBuffer;
3638
}
3739
}

modules/loader-utils/src/lib/files/http-file.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ export class HttpFile implements ReadableFile {
3030
};
3131
}
3232

33-
async read(offset: number | bigint, length: number): Promise<ArrayBuffer> {
33+
async read(offset: number | bigint = 0, length: number = 0): Promise<ArrayBuffer> {
3434
const response = await this.fetchRange(offset, length);
3535
const arrayBuffer = await response.arrayBuffer();
3636
return arrayBuffer;

modules/loader-utils/src/lib/files/node-file-facade.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ export class NodeFileFacade implements ReadableFile, WritableFile {
2525
throw new Error('Can\'t instantiate NodeFile. Make sure to import @loaders.gl/polyfills first.');
2626
}
2727
/** Read data */
28-
async read(start?: number | bigint, end?: number | bigint): Promise<ArrayBuffer> {
28+
async read(start?: number | bigint, length?: number): Promise<ArrayBuffer> {
2929
throw NOT_IMPLEMENTED;
3030
}
3131
/** Write to file. The number of bytes written will be returned */

0 commit comments

Comments
 (0)