From d95e8a1f8984dbeedc54645c3fda187dfc7c1b84 Mon Sep 17 00:00:00 2001 From: Andrew Calcutt Date: Fri, 13 Oct 2023 09:57:02 -0400 Subject: [PATCH] fix: update syntax, use inbuilt buffer funcs Signed-off-by: Andrew Calcutt --- src/pmtiles_adapter.js | 37 ++++++++++--------------------------- 1 file changed, 10 insertions(+), 27 deletions(-) diff --git a/src/pmtiles_adapter.js b/src/pmtiles_adapter.js index b3978f2..b8c552f 100644 --- a/src/pmtiles_adapter.js +++ b/src/pmtiles_adapter.js @@ -2,7 +2,7 @@ import fs from 'node:fs'; import PMTiles from 'pmtiles'; import { isValidHttpUrl } from './utils.js'; -const PMTilesFileSource = class { +class PMTilesFileSource { constructor(fd) { this.fd = fd; } @@ -12,11 +12,12 @@ const PMTilesFileSource = class { async getBytes(offset, length) { const buffer = Buffer.alloc(length); await ReadFileBytes(this.fd, buffer, offset); - return { data: BufferToArrayBuffer(buffer) }; + const ab = buffer.buffer.slice(buffer.byteOffset, buffer.byteOffset + buffer.byteLength) + return { data: ab }; } }; -const ReadFileBytes = async (fd, buffer, offset) => { +async function ReadFileBytes(fd, buffer, offset) { return new Promise((resolve, reject) => { fs.read(fd, buffer, 0, buffer.length, offset, (err) => { if (err) { @@ -27,7 +28,7 @@ const ReadFileBytes = async (fd, buffer, offset) => { }); }; -export const PMtilesOpen = (FilePath) => { +export function PMtilesOpen(FilePath) { let pmtiles = undefined; let fd = undefined; @@ -42,11 +43,11 @@ export const PMtilesOpen = (FilePath) => { return { pmtiles: pmtiles, fd: fd }; }; -export const PMtilesClose = (fd) => { +export function PMtilesClose(fd) { fs.closeSync(fd); }; -export const GetPMtilesInfo = async (pmtiles) => { +export async function GetPMtilesInfo(pmtiles) { const header = await pmtiles.getHeader(); const metadata = await pmtiles.getMetadata(); @@ -83,19 +84,19 @@ export const GetPMtilesInfo = async (pmtiles) => { return metadata; }; -export const GetPMtilesTile = async (pmtiles, z, x, y) => { +export async function GetPMtilesTile(pmtiles, z, x, y) { const header = await pmtiles.getHeader(); const TileType = GetPmtilesTileType(header.tileType); let zxyTile = await pmtiles.getZxy(z, x, y); if (zxyTile && zxyTile.data) { - zxyTile = ArrayBufferToBuffer(zxyTile.data); + zxyTile = Buffer.from(zxyTile.data); } else { zxyTile = undefined; } return { data: zxyTile, header: TileType.header }; }; -const GetPmtilesTileType = (typenum) => { +function GetPmtilesTileType(typenum) { let head = {}; let tileType; switch (typenum) { @@ -125,21 +126,3 @@ const GetPmtilesTileType = (typenum) => { } return { type: tileType, header: head }; }; - -const BufferToArrayBuffer = (buffer) => { - const arrayBuffer = new ArrayBuffer(buffer.length); - const view = new Uint8Array(arrayBuffer); - for (let i = 0; i < buffer.length; ++i) { - view[i] = buffer[i]; - } - return arrayBuffer; -}; - -const ArrayBufferToBuffer = (array_buffer) => { - var buffer = Buffer.alloc(array_buffer.byteLength); - var view = new Uint8Array(array_buffer); - for (var i = 0; i < buffer.length; ++i) { - buffer[i] = view[i]; - } - return buffer; -};