@@ -4,11 +4,17 @@ import { DataUtils, DynamicObject } from "./utils";
44import { PropertyValue } from "../constants" ;
55import { DataStorageEvents , DeleteDataEvent , ReadDataEvent , WriteDataEvent } from "./event" ;
66
7+ /**
8+ * Options for configuring the data storage.
9+ */
710export interface DataStorageOptions {
811 object ?: DynamicObject ;
912 gzip ?: boolean ;
1013}
1114
15+ /**
16+ * Provides data storage behavior.
17+ */
1218export class DataStorage {
1319 static instances = new Map < string , DataStorage > ( ) ;
1420
@@ -235,6 +241,9 @@ export class DataStorage {
235241 onWrite ?( ) : void { }
236242}
237243
244+ /**
245+ * Interface describing a versioned data.
246+ */
238247export interface VersionedDataSchema {
239248 minFormat : number ;
240249 maxFormat : number ;
@@ -243,6 +252,9 @@ export interface VersionedDataSchema {
243252
244253// TODO: Cache gzipped data storage.
245254
255+ /**
256+ * Provides versioned data storage behavior.
257+ */
246258export class VersionedDataStorage extends DataStorage {
247259 readonly formatVersion : number ;
248260 schemas = new Map < string , VersionedDataSchema > ( ) ;
@@ -288,12 +300,18 @@ export class VersionedDataStorage extends DataStorage {
288300 }
289301}
290302
303+ /**
304+ * Provides local storage behavior.
305+ */
291306export class LocalStorage extends DataStorage {
292307 constructor ( ) {
293308 super ( "mcutils:local_storage" ) ;
294309 }
295310}
296311
312+ /**
313+ * Provides session storage behavior.
314+ */
297315export class SessionStorage extends DataStorage {
298316 constructor ( ) {
299317 super ( "mcutils:session_storage" ) ;
@@ -304,7 +322,13 @@ export class SessionStorage extends DataStorage {
304322 }
305323}
306324
325+ /**
326+ * Shared local storage value.
327+ */
307328export const localStorage = new LocalStorage ( ) ;
329+ /**
330+ * Shared session storage value.
331+ */
308332export const sessionStorage = new SessionStorage ( ) ;
309333
310334// Events
0 commit comments