From 55c963e7cfafcd6d21a5adb7221f673f04596a39 Mon Sep 17 00:00:00 2001 From: Daniil Chalov Date: Sat, 13 Jan 2024 03:09:15 +0100 Subject: [PATCH] Load global storage object in a lazy manner --- src/index.ts | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/src/index.ts b/src/index.ts index c9985be..36b7edc 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,13 +1,21 @@ -import { getBucket } from './bucket' +import { Bucket, getBucket } from './bucket' + +type Storage = { + local: Bucket>, + sync: Bucket>, + managed: Bucket>, +} + +class StorageImpl implements Storage { + get local(): Bucket> { return getBucket>('local', 'local') } + get sync(): Bucket> { return getBucket>('sync', 'sync') } + get managed(): Bucket> { return getBucket>('managed', 'managed') } +} /** * Buckets for each storage area. */ -export const storage = { - local: getBucket>('local', 'local'), - sync: getBucket>('sync', 'sync'), - managed: getBucket>('managed', 'managed'), -} +export const storage: Storage = new StorageImpl() // Workaround for @rollup/plugin-typescript export * from './types'