Skip to content

Commit 2be3a36

Browse files
committed
feat: add abort signal support
1 parent 6f50984 commit 2be3a36

File tree

2 files changed

+26
-2
lines changed

2 files changed

+26
-2
lines changed

index.mjs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,10 +29,12 @@ export default async function geotiff_read_bbox({
2929
srs: srs_of_bbox,
3030
use_overview = false,
3131
target_height,
32-
target_width
32+
target_width,
33+
signal
3334
}) {
3435
if (debug_level >= 1) console.log("[geotiff-read-bbox] starting");
3536

37+
if (signal && signal.aborted) throw new Error("[geotiff-read-bbox] operation aborted");
3638
if (geotiff === null) throw new Error("[geotiff-read-bbox] geotiff is null");
3739
if (geotiff === undefined) throw new Error("[geotiff-read-bbox] geotiff is undefined");
3840

@@ -202,7 +204,7 @@ export default async function geotiff_read_bbox({
202204
selected.read_width = read_width;
203205
}
204206
if (debug_level >= 2) console.log("[geotiff-read-bbox] reading ", selected.read_window);
205-
data = await selected.image.readRasters({ fillValue: fill_value, window: selected.read_window });
207+
data = await selected.image.readRasters({ fillValue: fill_value, window: selected.read_window, signal });
206208
}
207209

208210
const duration_read_rasters = performance.now() - start_read_rasters;

test.mjs

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -485,3 +485,25 @@ test("wildfires", async ({ eq }) => {
485485

486486
await server.close();
487487
});
488+
489+
test("abort controller", async ({ eq }) => {
490+
const geotiff = await GeoTIFF.fromFile("./data/wildfires.tiff");
491+
const controller = new AbortController();
492+
const { signal } = controller;
493+
controller.abort();
494+
495+
const params = {
496+
bbox: [-123.7412109375, 38.85205078124999, -119.1181640625, 42.29736328124999],
497+
debug_level: 0,
498+
srs: 4326,
499+
geotiff,
500+
signal
501+
};
502+
503+
try {
504+
await readBoundingBox(params);
505+
throw new Error("AbortError was not thrown");
506+
} catch (error) {
507+
eq(error.message, "[geotiff-read-bbox] operation aborted");
508+
}
509+
});

0 commit comments

Comments
 (0)