Migrate error.js to TypeScript

This commit is contained in:
Danila Fedorin 2021-08-09 19:24:09 -07:00
parent aa9839ee40
commit 28ee87cd2f
3 changed files with 9 additions and 6 deletions

View File

@ -15,7 +15,7 @@ limitations under the License.
*/ */
import {QueryTarget} from "./QueryTarget.js"; import {QueryTarget} from "./QueryTarget.js";
import {IDBRequestAttemptError} from "./error.js"; import {IDBRequestAttemptError} from "./error";
const LOG_REQUESTS = false; const LOG_REQUESTS = false;

View File

@ -18,7 +18,10 @@ limitations under the License.
import { StorageError } from "../common"; import { StorageError } from "../common";
export class IDBError extends StorageError { export class IDBError extends StorageError {
constructor(message, source, cause) { storeName: string;
databaseName: string;
constructor(message: string, source, cause: DOMException | null) {
const storeName = source?.name || "<unknown store>"; const storeName = source?.name || "<unknown store>";
const databaseName = source?.transaction?.db?.name || "<unknown db>"; const databaseName = source?.transaction?.db?.name || "<unknown db>";
let fullMessage = `${message} on ${databaseName}.${storeName}`; let fullMessage = `${message} on ${databaseName}.${storeName}`;
@ -34,14 +37,14 @@ export class IDBError extends StorageError {
if (cause) { if (cause) {
fullMessage += cause.message; fullMessage += cause.message;
} }
super(fullMessage, cause); super(fullMessage, cause || undefined);
this.storeName = storeName; this.storeName = storeName;
this.databaseName = databaseName; this.databaseName = databaseName;
} }
} }
export class IDBRequestError extends IDBError { export class IDBRequestError extends IDBError {
constructor(request, message = "IDBRequest failed") { constructor(request: IDBRequest, message: string = "IDBRequest failed") {
const source = request.source; const source = request.source;
const cause = request.error; const cause = request.error;
super(message, source, cause); super(message, source, cause);
@ -49,7 +52,7 @@ export class IDBRequestError extends IDBError {
} }
export class IDBRequestAttemptError extends IDBError { export class IDBRequestAttemptError extends IDBError {
constructor(method, source, cause, params) { constructor(method: string, source, cause: DOMException, params: any[]) {
super(`${method}(${params.map(p => JSON.stringify(p)).join(", ")}) failed`, source, cause); super(`${method}(${params.map(p => JSON.stringify(p)).join(", ")}) failed`, source, cause);
} }
} }

View File

@ -15,7 +15,7 @@ See the License for the specific language governing permissions and
limitations under the License. limitations under the License.
*/ */
import { IDBRequestError } from "./error.js"; import { IDBRequestError } from "./error";
import { StorageError } from "../common"; import { StorageError } from "../common";
let needsSyncPromise = false; let needsSyncPromise = false;