Extract events to their own file

This commit is contained in:
Danila Fedorin 2021-08-13 15:06:34 -07:00
parent 1f368dcec1
commit c8f4cb5046
5 changed files with 37 additions and 18 deletions

View file

@ -14,10 +14,11 @@ See the License for the specific language governing permissions and
limitations under the License.
*/
import {Store} from "../Store"
import {Content} from "../../types";
interface AccountDataEntry {
type: string
content: { [key : string] : any }
content: Content
}
export class AccountDataStore {

View file

@ -17,12 +17,13 @@ limitations under the License.
import { encodeUint32, decodeUint32 } from "../utils";
import {KeyLimits} from "../../common";
import {Store} from "../Store"
import {Content} from "../../types";
interface PendingEntry {
roomId: string
queueIndex: number
eventType: string
content: any
content: Content
relatexTxnId: string | null
relatedEventId: string | null
txnId?: string

View file

@ -17,6 +17,7 @@ limitations under the License.
import {MAX_UNICODE} from "./common";
import {Store} from "../Store";
import {StateEvent} from "../../types";
function encodeKey(roomId: string, eventType: string, stateKey: string) {
return `${roomId}|${eventType}|${stateKey}`;
@ -24,7 +25,7 @@ function encodeKey(roomId: string, eventType: string, stateKey: string) {
export interface RoomStateEntry {
roomId: string,
event: any
event: StateEvent
key: string
}
@ -40,7 +41,7 @@ export class RoomStateStore {
return this._roomStateStore.get(key);
}
set(roomId: string, event: any): Promise<IDBValidKey> {
set(roomId: string, event: StateEvent): Promise<IDBValidKey> {
const key = encodeKey(roomId, event.type, event.state_key);
const entry = {roomId, event, key};
return this._roomStateStore.put(entry);

View file

@ -19,19 +19,7 @@ import { StorageError } from "../../common";
import { encodeUint32 } from "../utils";
import {KeyLimits} from "../../common";
import {Store} from "../Store";
type Content = { [key: string]: any }
interface RoomEvent {
content: Content
type: string
event_id: string
sender: string
origin_server_ts: number
unsigned?: Content
}
type StateEvent = RoomEvent & { prev_content?: Content, state_key: string }
import {RoomEvent, StateEvent} from "../../types";
interface Annotation {
count: number
@ -43,7 +31,7 @@ interface StorageEntry {
roomId: string
fragmentId: number
eventIndex: number
event: Event | StateEvent
event: RoomEvent | StateEvent
displayName?: string
avatarUrl?: string
annotations?: { [key : string]: Annotation }

View file

@ -0,0 +1,28 @@
/*
Copyright 2021 The Matrix.org Foundation C.I.C.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
export type Content = { [key: string]: any }
export interface RoomEvent {
content: Content
type: string
event_id: string
sender: string
origin_server_ts: number
unsigned?: Content
}
export type StateEvent = RoomEvent & { prev_content?: Content, state_key: string }