From d09614205fec9d57c78e98fbea38fa1c1f0a4c41 Mon Sep 17 00:00:00 2001 From: Sourabh Desai <sourabhdesai@gmail.com> Date: Wed, 21 Jun 2023 22:39:26 +0000 Subject: [PATCH] small bug/syntax fixes --- packages/core/src/storage/StorageContext.ts | 10 +++++----- packages/core/src/storage/docStore/KVDocumentStore.ts | 8 ++++---- .../core/src/storage/docStore/SimpleDocumentStore.ts | 8 ++++---- packages/core/src/storage/docStore/types.ts | 2 +- packages/core/src/storage/docStore/utils.ts | 4 ++-- packages/core/src/storage/indexStore/KVIndexStore.ts | 2 +- .../core/src/storage/vectorStore/SimpleVectorStore.ts | 1 + 7 files changed, 18 insertions(+), 17 deletions(-) diff --git a/packages/core/src/storage/StorageContext.ts b/packages/core/src/storage/StorageContext.ts index c3e88ccbd..c39893e65 100644 --- a/packages/core/src/storage/StorageContext.ts +++ b/packages/core/src/storage/StorageContext.ts @@ -5,7 +5,7 @@ import { SimpleDocumentStore } from "./docStore/SimpleDocumentStore"; import { SimpleIndexStore } from "./indexStore/SimpleIndexStore"; import { SimpleVectorStore } from "./vectorStore/SimpleVectorStore"; import { GenericFileSystem } from "./FileSystem"; -import { DEFAULT_PERSIST_DIR, DEFAULT_FS } from "./constants"; +import { DEFAULT_PERSIST_DIR, DEFAULT_FS, DEFAULT_NAMESPACE } from "./constants"; export interface StorageContext { docStore?: BaseDocumentStore; @@ -21,16 +21,16 @@ type BuilderParams = { fs?: GenericFileSystem, }; -export function storageContextFromDefaults({ +export async function storageContextFromDefaults({ docStore, indexStore, vectorStore, persistDir, fs }: BuilderParams): StorageContext { persistDir = persistDir || DEFAULT_PERSIST_DIR; fs = fs || DEFAULT_FS; - docStore = docStore || SimpleDocumentStore.fromPersistDir(persistDir, fs=fs); - indexStore = indexStore || SimpleIndexStore.fromPersistDir(persistDir, fs=fs); - vectorStore = vectorStore || SimpleVectorStore.fromPersistDir(persistDir, fs=fs); + docStore = docStore || await SimpleDocumentStore.fromPersistDir(persistDir, DEFAULT_NAMESPACE, fs); + indexStore = indexStore || await SimpleIndexStore.fromPersistDir(persistDir, fs); + vectorStore = vectorStore || await SimpleVectorStore.fromPersistDir(persistDir, fs); return { docStore, diff --git a/packages/core/src/storage/docStore/KVDocumentStore.ts b/packages/core/src/storage/docStore/KVDocumentStore.ts index 772221276..7f72bc266 100644 --- a/packages/core/src/storage/docStore/KVDocumentStore.ts +++ b/packages/core/src/storage/docStore/KVDocumentStore.ts @@ -3,7 +3,7 @@ import { BaseDocument } from '../../Document'; import { BaseDocumentStore, RefDocInfo } from './types'; import { BaseKVStore } from '../kvStore/types'; import _, * as lodash from 'lodash'; -import { docToJson, jsonToDoc } from './docstore-utils'; +import { docToJson, jsonToDoc } from './utils'; import { DEFAULT_NAMESPACE } from '../constants'; type DocMetaData = { docHash: string, refDocId?: string }; @@ -22,11 +22,11 @@ export class KVDocumentStore extends BaseDocumentStore { this.metadataCollection = `${namespace}/metadata`; } - get docs(): Record<string, BaseDocument> { - let jsonDict = this.kvstore.getAll(this.nodeCollection); + async docs(): Promise<Record<string, BaseDocument>> { + let jsonDict = await this.kvstore.getAll(this.nodeCollection); let docs: Record<string, BaseDocument> = {}; for (let key in jsonDict) { - docs[key] = jsonToDoc(jsonDict[key]); + docs[key] = jsonToDoc(jsonDict[key] as Record<string, any>); } return docs; } diff --git a/packages/core/src/storage/docStore/SimpleDocumentStore.ts b/packages/core/src/storage/docStore/SimpleDocumentStore.ts index 3d664b4e8..968d6247f 100644 --- a/packages/core/src/storage/docStore/SimpleDocumentStore.ts +++ b/packages/core/src/storage/docStore/SimpleDocumentStore.ts @@ -11,7 +11,7 @@ import { DEFAULT_FS } from '../constants'; -type SaveDict = {[key: string]: any}; // Replace `any` with the appropriate type if possible. +type SaveDict = {[key: string]: any}; export class SimpleDocumentStore extends KVDocumentStore { private kvStore: SimpleKVStore; @@ -23,13 +23,13 @@ export class SimpleDocumentStore extends KVDocumentStore { this.kvStore = kvStore; } - static fromPersistDir( + static async fromPersistDir( persistDir: string = DEFAULT_PERSIST_DIR, namespace?: string, fsModule?: GenericFileSystem - ): SimpleDocumentStore { + ): Promise<SimpleDocumentStore> { const persistPath = path.join(persistDir, DEFAULT_DOC_STORE_PERSIST_FILENAME); - return SimpleDocumentStore.fromPersistPath(persistPath, namespace, fsModule); + return await SimpleDocumentStore.fromPersistPath(persistPath, namespace, fsModule); } static async fromPersistPath( diff --git a/packages/core/src/storage/docStore/types.ts b/packages/core/src/storage/docStore/types.ts index bde842a46..9084e2d04 100644 --- a/packages/core/src/storage/docStore/types.ts +++ b/packages/core/src/storage/docStore/types.ts @@ -18,7 +18,7 @@ export abstract class BaseDocumentStore { } // Main interface - abstract get docs(): {[key: string]: BaseDocument}; + abstract docs(): Promise<Record<string, BaseDocument>>; abstract addDocuments(docs: BaseDocument[], allowUpdate: boolean): void; diff --git a/packages/core/src/storage/docStore/utils.ts b/packages/core/src/storage/docStore/utils.ts index 519b5682a..f6f1d23bb 100644 --- a/packages/core/src/storage/docStore/utils.ts +++ b/packages/core/src/storage/docStore/utils.ts @@ -3,14 +3,14 @@ import { BaseDocument, NodeType } from '../../Document'; import { DATA_KEY, TYPE_KEY } from '../constants'; -function docToJson(doc: BaseDocument): Record<string, any> { +export function docToJson(doc: BaseDocument): Record<string, any> { return { [DATA_KEY]: JSON.stringify(doc), [TYPE_KEY]: doc.getType(), }; } -function jsonToDoc(docDict: Record<string, any>): BaseDocument { +export function jsonToDoc(docDict: Record<string, any>): BaseDocument { let docType = docDict[TYPE_KEY]; let dataDict = docDict[DATA_KEY]; let doc: BaseDocument; diff --git a/packages/core/src/storage/indexStore/KVIndexStore.ts b/packages/core/src/storage/indexStore/KVIndexStore.ts index 8e31f7760..7e2f5eed0 100644 --- a/packages/core/src/storage/indexStore/KVIndexStore.ts +++ b/packages/core/src/storage/indexStore/KVIndexStore.ts @@ -1,7 +1,7 @@ import { BaseKVStore } from '../kvStore/types'; import { IndexStruct, indexStructToJson, jsonToIndexStruct } from '../../dataStructs'; import _ from 'lodash'; -import { DEFAULT_NAMESPACE } from './constants'; +import { DEFAULT_NAMESPACE } from '../constants'; import { BaseIndexStore } from './types'; export class KVIndexStore extends BaseIndexStore { diff --git a/packages/core/src/storage/vectorStore/SimpleVectorStore.ts b/packages/core/src/storage/vectorStore/SimpleVectorStore.ts index 20d4a15fa..339e707e6 100644 --- a/packages/core/src/storage/vectorStore/SimpleVectorStore.ts +++ b/packages/core/src/storage/vectorStore/SimpleVectorStore.ts @@ -18,6 +18,7 @@ class SimpleVectorStoreData { } export class SimpleVectorStore implements VectorStore { + storesText: boolean = false; private data: SimpleVectorStoreData = new SimpleVectorStoreData(); private fs: GenericFileSystem = DEFAULT_FS; -- GitLab