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.
*/
import {KeyLimits} from "../../storage/common.js";
import {KeyLimits} from "../../storage/common";
// key for events in the timelineEvents store
export class EventKey {

View File

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

View File

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

View File

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

View File

@ -15,7 +15,7 @@ limitations under the License.
*/
import {txnAsPromise} from "./utils.js";
import {StorageError} from "../common.js";
import {StorageError} from "../common";
import {Store} from "./Store.js";
import {SessionStore} from "./stores/SessionStore.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.
*/
import { StorageError } from "../common.js";
import { StorageError } from "../common";
export class IDBError extends StorageError {
constructor(message, source, cause) {

View File

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

View File

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

View File

@ -15,9 +15,9 @@ limitations under the License.
*/
import {EventKey} from "../../../room/timeline/EventKey.js";
import { StorageError } from "../../common.js";
import { StorageError } from "../../common";
import { encodeUint32 } from "../utils.js";
import {KeyLimits} from "../../common.js";
import {KeyLimits} from "../../common";
function encodeKey(roomId, fragmentId, 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.
*/
import { StorageError } from "../../common.js";
import {KeyLimits} from "../../common.js";
import { StorageError } from "../../common";
import {KeyLimits} from "../../common";
import { encodeUint32 } from "../utils.js";
function encodeKey(roomId, fragmentId) {

View File

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

View File

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