@foxglove/rosbag2-web
Advanced tools
Comparing version 0.2.1 to 1.0.0
@@ -9,6 +9,4 @@ "use strict"; | ||
} | ||
read(offset, length) { | ||
return new Promise((resolve, reject) => { | ||
offset ?? (offset = 0); | ||
length ?? (length = Math.max(0, this.size_ - offset)); | ||
async read(offset = 0, length = Math.max(0, this.size_ - offset)) { | ||
return await new Promise((resolve, reject) => { | ||
const reader = new FileReader(); | ||
@@ -28,4 +26,4 @@ reader.onload = function () { | ||
} | ||
readAsText() { | ||
return new Promise((resolve, reject) => { | ||
async readAsText() { | ||
return await new Promise((resolve, reject) => { | ||
const reader = new FileReader(); | ||
@@ -45,7 +43,7 @@ reader.onload = function () { | ||
} | ||
size() { | ||
return Promise.resolve(this.size_); | ||
async size() { | ||
return this.size_; | ||
} | ||
close() { | ||
return Promise.resolve(); | ||
async close() { | ||
// no-op | ||
} | ||
@@ -52,0 +50,0 @@ } |
@@ -43,7 +43,7 @@ "use strict"; | ||
} | ||
function getFolderEntries(folder) { | ||
return new Promise((resolve, reject) => folder.createReader().readEntries(resolve, reject)); | ||
async function getFolderEntries(folder) { | ||
return await new Promise((resolve, reject) => folder.createReader().readEntries(resolve, reject)); | ||
} | ||
function getFile(fileEntry) { | ||
return new Promise((resolve, reject) => fileEntry.file(resolve, reject)); | ||
async function getFile(fileEntry) { | ||
return await new Promise((resolve, reject) => fileEntry.file(resolve, reject)); | ||
} | ||
@@ -50,0 +50,0 @@ // FileSystemDirectoryHandle helpers |
@@ -27,2 +27,6 @@ "use strict"; | ||
const data = await this.file.read(); | ||
if (data.length < 512) { | ||
const size = await this.file.size(); | ||
throw new Error(`Did not read a valid Sqlite3 file. Reported size is ${size}, read ${data.length} bytes`); | ||
} | ||
const db = new SQL.Database(new Uint8Array(data)); | ||
@@ -42,3 +46,2 @@ // Retrieve all of the topics | ||
this.context = { db, idToTopic, topicNameToId }; | ||
return Promise.resolve(); | ||
} | ||
@@ -52,7 +55,7 @@ async close() { | ||
} | ||
readTopics() { | ||
async readTopics() { | ||
if (this.context == undefined) { | ||
throw new Error(`Call open() before reading topics`); | ||
} | ||
return Promise.resolve(Array.from(this.context.idToTopic.values())); | ||
return Array.from(this.context.idToTopic.values()); | ||
} | ||
@@ -121,3 +124,3 @@ readMessages(opts = {}) { | ||
} | ||
timeRange() { | ||
async timeRange() { | ||
if (this.context == undefined) { | ||
@@ -129,5 +132,5 @@ throw new Error(`Call open() before retrieving the time range`); | ||
const [minNsec, maxNsec] = res; | ||
return Promise.resolve([rostime_1.fromNanoSec(BigInt(minNsec)), rostime_1.fromNanoSec(BigInt(maxNsec))]); | ||
return [rostime_1.fromNanoSec(BigInt(minNsec)), rostime_1.fromNanoSec(BigInt(maxNsec))]; | ||
} | ||
messageCounts() { | ||
async messageCounts() { | ||
if (this.context == undefined) { | ||
@@ -146,3 +149,3 @@ throw new Error(`Call open() before retrieving message counts`); | ||
} | ||
return Promise.resolve(counts); | ||
return counts; | ||
} | ||
@@ -149,0 +152,0 @@ } |
@@ -17,6 +17,6 @@ "use strict"; | ||
} | ||
async read(offset, length) { | ||
async read(offset = 0, length) { | ||
// eslint-disable-next-line no-param-reassign | ||
length ?? (length = Math.max(0, ((await this.size()) ?? 0) - offset)); | ||
const handle = this.handle_ ?? (await this.open()); | ||
offset ?? (offset = 0); | ||
length ?? (length = Math.max(0, (this.size_ ?? 0) - offset)); | ||
if (length > this.buffer_.byteLength) { | ||
@@ -32,3 +32,3 @@ const newSize = Math.max(this.buffer_.byteLength * 2, length); | ||
async readAsText() { | ||
return promises_1.readFile(this.filename, { encoding: "utf8" }); | ||
return await promises_1.readFile(this.filename, { encoding: "utf8" }); | ||
} | ||
@@ -35,0 +35,0 @@ async size() { |
{ | ||
"name": "@foxglove/rosbag2-web", | ||
"version": "0.2.1", | ||
"version": "1.0.0", | ||
"description": "ROS2 (Robot Operating System) bag reader and writer for the browser", | ||
@@ -25,4 +25,4 @@ "license": "MIT", | ||
"author": { | ||
"name": "Foxglove Technologies", | ||
"email": "support@foxglove.dev" | ||
"name": "Foxglove Technologies Inc", | ||
"email": "contact@foxglove.dev" | ||
}, | ||
@@ -45,27 +45,28 @@ "homepage": "https://github.com/foxglove/rosbag2-web", | ||
"devDependencies": { | ||
"@foxglove/eslint-plugin": "0.10.0", | ||
"@types/eslint": "^7", | ||
"@foxglove/eslint-plugin": "0.13.0", | ||
"@types/eslint": "^7.28.0", | ||
"@types/eslint-plugin-prettier": "^3", | ||
"@types/jest": "^26.0.23", | ||
"@types/prettier": "2.3.0", | ||
"@types/prettier": "2.3.2", | ||
"@types/sql.js": "^1.4.2", | ||
"@types/wicg-entries-api": "^2020.8.0", | ||
"@types/wicg-file-system-access": "^2020.9.2", | ||
"@typescript-eslint/eslint-plugin": "4.28.0", | ||
"@typescript-eslint/parser": "4.28.0", | ||
"esbuild": "0.12.12", | ||
"@typescript-eslint/eslint-plugin": "4.28.4", | ||
"@typescript-eslint/parser": "4.28.4", | ||
"esbuild": "0.12.15", | ||
"esbuild-jest": "0.5.0", | ||
"eslint": "7.29.0", | ||
"eslint": "7.31.0", | ||
"eslint-config-prettier": "8.3.0", | ||
"eslint-plugin-filenames": "^1.3.2", | ||
"eslint-plugin-import": "2.23.4", | ||
"eslint-plugin-jest": "24.3.6", | ||
"eslint-plugin-prettier": "3.4.0", | ||
"jest": "27.0.5", | ||
"prettier": "2.3.1", | ||
"typescript": "4.3.4" | ||
"jest": "27.0.6", | ||
"prettier": "2.3.2", | ||
"typescript": "4.3.5" | ||
}, | ||
"dependencies": { | ||
"@foxglove/rosbag2": "^0.3.0", | ||
"@foxglove/rosbag2": "^1.0.0", | ||
"sql.js": "^1.5.0" | ||
} | ||
} |
@@ -12,7 +12,4 @@ import { Filelike } from "@foxglove/rosbag2"; | ||
read(offset?: number, length?: number): Promise<Uint8Array> { | ||
return new Promise((resolve, reject) => { | ||
offset ??= 0; | ||
length ??= Math.max(0, this.size_ - offset); | ||
async read(offset = 0, length = Math.max(0, this.size_ - offset)): Promise<Uint8Array> { | ||
return await new Promise((resolve, reject) => { | ||
const reader = new FileReader(); | ||
@@ -33,4 +30,4 @@ reader.onload = function () { | ||
readAsText(): Promise<string> { | ||
return new Promise((resolve, reject) => { | ||
async readAsText(): Promise<string> { | ||
return await new Promise((resolve, reject) => { | ||
const reader = new FileReader(); | ||
@@ -51,9 +48,9 @@ reader.onload = function () { | ||
size(): Promise<number> { | ||
return Promise.resolve(this.size_); | ||
async size(): Promise<number> { | ||
return this.size_; | ||
} | ||
close(): Promise<void> { | ||
return Promise.resolve(); | ||
async close(): Promise<void> { | ||
// no-op | ||
} | ||
} |
@@ -59,8 +59,8 @@ import { Rosbag2 } from "@foxglove/rosbag2"; | ||
function getFolderEntries(folder: FileSystemDirectoryEntry): Promise<FileSystemEntry[]> { | ||
return new Promise((resolve, reject) => folder.createReader().readEntries(resolve, reject)); | ||
async function getFolderEntries(folder: FileSystemDirectoryEntry): Promise<FileSystemEntry[]> { | ||
return await new Promise((resolve, reject) => folder.createReader().readEntries(resolve, reject)); | ||
} | ||
function getFile(fileEntry: FileSystemFileEntry): Promise<File> { | ||
return new Promise((resolve, reject) => fileEntry.file(resolve, reject)); | ||
async function getFile(fileEntry: FileSystemFileEntry): Promise<File> { | ||
return await new Promise((resolve, reject) => fileEntry.file(resolve, reject)); | ||
} | ||
@@ -67,0 +67,0 @@ |
@@ -27,6 +27,6 @@ import { | ||
async read(offset?: number, length?: number): Promise<Uint8Array> { | ||
async read(offset = 0, length?: number): Promise<Uint8Array> { | ||
// eslint-disable-next-line no-param-reassign | ||
length ??= Math.max(0, ((await this.size()) ?? 0) - offset); | ||
const handle = this.handle_ ?? (await this.open()); | ||
offset ??= 0; | ||
length ??= Math.max(0, (this.size_ ?? 0) - offset); | ||
@@ -45,3 +45,3 @@ if (length > this.buffer_.byteLength) { | ||
async readAsText(): Promise<string> { | ||
return readFile(this.filename, { encoding: "utf8" }); | ||
return await readFile(this.filename, { encoding: "utf8" }); | ||
} | ||
@@ -48,0 +48,0 @@ |
@@ -54,2 +54,8 @@ import { | ||
const data = await this.file.read(); | ||
if (data.length < 512) { | ||
const size = await this.file.size(); | ||
throw new Error( | ||
`Did not read a valid Sqlite3 file. Reported size is ${size}, read ${data.length} bytes`, | ||
); | ||
} | ||
const db = new SQL.Database(new Uint8Array(data)); | ||
@@ -73,3 +79,2 @@ | ||
this.context = { db, idToTopic, topicNameToId }; | ||
return Promise.resolve(); | ||
} | ||
@@ -85,7 +90,7 @@ | ||
readTopics(): Promise<TopicDefinition[]> { | ||
async readTopics(): Promise<TopicDefinition[]> { | ||
if (this.context == undefined) { | ||
throw new Error(`Call open() before reading topics`); | ||
} | ||
return Promise.resolve(Array.from(this.context.idToTopic.values())); | ||
return Array.from(this.context.idToTopic.values()); | ||
} | ||
@@ -153,3 +158,3 @@ | ||
timeRange(): Promise<[min: Time, max: Time]> { | ||
async timeRange(): Promise<[min: Time, max: Time]> { | ||
if (this.context == undefined) { | ||
@@ -164,6 +169,6 @@ throw new Error(`Call open() before retrieving the time range`); | ||
const [minNsec, maxNsec] = res as [string, string]; | ||
return Promise.resolve([fromNanoSec(BigInt(minNsec)), fromNanoSec(BigInt(maxNsec))]); | ||
return [fromNanoSec(BigInt(minNsec)), fromNanoSec(BigInt(maxNsec))]; | ||
} | ||
messageCounts(): Promise<Map<string, number>> { | ||
async messageCounts(): Promise<Map<string, number>> { | ||
if (this.context == undefined) { | ||
@@ -184,3 +189,3 @@ throw new Error(`Call open() before retrieving message counts`); | ||
} | ||
return Promise.resolve(counts); | ||
return counts; | ||
} | ||
@@ -187,0 +192,0 @@ } |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
No v1
QualityPackage is not semver >=1. This means it is not stable and does not support ^ ranges.
Found 1 instance in 1 package
70144
1087
0
21
+ Added@foxglove/rosbag2@1.0.2(transitive)
- Removed@foxglove/rosbag2@0.3.1(transitive)
Updated@foxglove/rosbag2@^1.0.0