Migrate common.js to TypeScript

Add initial stab at annotating common

Add missing return types and semicolons
This commit is contained in:
Danila Fedorin 2021-08-09 13:44:07 -07:00
parent 8ec8de67b8
commit 5579c018d1
12 changed files with 23 additions and 20 deletions

View file

@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
limitations under the License. limitations under the License.
*/ */
import {KeyLimits} from "../../storage/common.js"; import {KeyLimits} from "../../storage/common";
// key for events in the timelineEvents store // key for events in the timelineEvents store
export class EventKey { export class EventKey {

View file

@ -17,7 +17,7 @@ limitations under the License.
import {BaseEntry} from "./BaseEntry"; import {BaseEntry} from "./BaseEntry";
import {Direction} from "../Direction.js"; import {Direction} from "../Direction.js";
import {isValidFragmentId} from "../common.js"; import {isValidFragmentId} from "../common.js";
import {KeyLimits} from "../../../storage/common.js"; import {KeyLimits} from "../../../storage/common";
export class FragmentBoundaryEntry extends BaseEntry { export class FragmentBoundaryEntry extends BaseEntry {
constructor(fragment, isFragmentStart, fragmentIdComparer) { constructor(fragment, isFragmentStart, fragmentIdComparer) {

View file

@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
limitations under the License. limitations under the License.
*/ */
export const STORE_NAMES = Object.freeze([ export const STORE_NAMES: Readonly<string[]> = Object.freeze([
"session", "session",
"roomState", "roomState",
"roomSummary", "roomSummary",
@ -35,13 +35,16 @@ export const STORE_NAMES = Object.freeze([
"accountData", "accountData",
]); ]);
export const STORE_MAP = Object.freeze(STORE_NAMES.reduce((nameMap, name) => { export const STORE_MAP: Readonly<{ [name : string]: string }> = Object.freeze(STORE_NAMES.reduce((nameMap, name) => {
nameMap[name] = name; nameMap[name] = name;
return nameMap; return nameMap;
}, {})); }, {}));
export class StorageError extends Error { export class StorageError extends Error {
constructor(message, cause) { errcode?: string;
cause?: Error;
constructor(message: string, cause?: Error) {
super(message); super(message);
if (cause) { if (cause) {
this.errcode = cause.name; this.errcode = cause.name;
@ -49,23 +52,23 @@ export class StorageError extends Error {
this.cause = cause; this.cause = cause;
} }
get name() { get name(): string {
return "StorageError"; return "StorageError";
} }
} }
export const KeyLimits = { export const KeyLimits = {
get minStorageKey() { get minStorageKey(): number {
// for indexeddb, we use unsigned 32 bit integers as keys // for indexeddb, we use unsigned 32 bit integers as keys
return 0; return 0;
}, },
get middleStorageKey() { get middleStorageKey(): number {
// for indexeddb, we use unsigned 32 bit integers as keys // for indexeddb, we use unsigned 32 bit integers as keys
return 0x7FFFFFFF; return 0x7FFFFFFF;
}, },
get maxStorageKey() { get maxStorageKey(): number {
// for indexeddb, we use unsigned 32 bit integers as keys // for indexeddb, we use unsigned 32 bit integers as keys
return 0xFFFFFFFF; return 0xFFFFFFFF;
} }

View file

@ -15,7 +15,7 @@ limitations under the License.
*/ */
import {Transaction} from "./Transaction.js"; import {Transaction} from "./Transaction.js";
import { STORE_NAMES, StorageError } from "../common.js"; import { STORE_NAMES, StorageError } from "../common";
import { reqAsPromise } from "./utils.js"; import { reqAsPromise } from "./utils.js";
const WEBKITEARLYCLOSETXNBUG_BOGUS_KEY = "782rh281re38-boguskey"; const WEBKITEARLYCLOSETXNBUG_BOGUS_KEY = "782rh281re38-boguskey";

View file

@ -15,7 +15,7 @@ limitations under the License.
*/ */
import {txnAsPromise} from "./utils.js"; import {txnAsPromise} from "./utils.js";
import {StorageError} from "../common.js"; import {StorageError} from "../common";
import {Store} from "./Store.js"; import {Store} from "./Store.js";
import {SessionStore} from "./stores/SessionStore.js"; import {SessionStore} from "./stores/SessionStore.js";
import {RoomSummaryStore} from "./stores/RoomSummaryStore.js"; import {RoomSummaryStore} from "./stores/RoomSummaryStore.js";

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 { StorageError } from "../common.js"; import { StorageError } from "../common";
export class IDBError extends StorageError { export class IDBError extends StorageError {
constructor(message, source, cause) { constructor(message, source, cause) {

View file

@ -15,7 +15,7 @@ limitations under the License.
*/ */
import { iterateCursor, txnAsPromise } from "./utils.js"; import { iterateCursor, txnAsPromise } from "./utils.js";
import { STORE_NAMES } from "../common.js"; import { STORE_NAMES } from "../common";
export async function exportSession(db) { export async function exportSession(db) {
const NOT_DONE = {done: false}; const NOT_DONE = {done: false};

View file

@ -15,7 +15,7 @@ limitations under the License.
*/ */
import { encodeUint32, decodeUint32 } from "../utils.js"; import { encodeUint32, decodeUint32 } from "../utils.js";
import {KeyLimits} from "../../common.js"; import {KeyLimits} from "../../common";
function encodeKey(roomId, queueIndex) { function encodeKey(roomId, queueIndex) {
return `${roomId}|${encodeUint32(queueIndex)}`; return `${roomId}|${encodeUint32(queueIndex)}`;

View file

@ -15,9 +15,9 @@ limitations under the License.
*/ */
import {EventKey} from "../../../room/timeline/EventKey.js"; import {EventKey} from "../../../room/timeline/EventKey.js";
import { StorageError } from "../../common.js"; import { StorageError } from "../../common";
import { encodeUint32 } from "../utils.js"; import { encodeUint32 } from "../utils.js";
import {KeyLimits} from "../../common.js"; import {KeyLimits} from "../../common";
function encodeKey(roomId, fragmentId, eventIndex) { function encodeKey(roomId, fragmentId, eventIndex) {
return `${roomId}|${encodeUint32(fragmentId)}|${encodeUint32(eventIndex)}`; return `${roomId}|${encodeUint32(fragmentId)}|${encodeUint32(eventIndex)}`;

View file

@ -14,8 +14,8 @@ See the License for the specific language governing permissions and
limitations under the License. limitations under the License.
*/ */
import { StorageError } from "../../common.js"; import { StorageError } from "../../common";
import {KeyLimits} from "../../common.js"; import {KeyLimits} from "../../common";
import { encodeUint32 } from "../utils.js"; import { encodeUint32 } from "../utils.js";
function encodeKey(roomId, fragmentId) { function encodeKey(roomId, fragmentId) {

View file

@ -16,7 +16,7 @@ limitations under the License.
*/ */
import { IDBRequestError } from "./error.js"; import { IDBRequestError } from "./error.js";
import { StorageError } from "../common.js"; import { StorageError } from "../common";
let needsSyncPromise = false; let needsSyncPromise = false;

View file

@ -15,7 +15,7 @@ limitations under the License.
*/ */
import {Transaction} from "./Transaction.js"; import {Transaction} from "./Transaction.js";
import { STORE_MAP, STORE_NAMES } from "../common.js"; import { STORE_MAP, STORE_NAMES } from "../common";
export class Storage { export class Storage {
constructor(initialStoreValues = {}) { constructor(initialStoreValues = {}) {