11import cbws from './websocket' ;
22import { AddVectorItemResponse , GetVectorResponse , QueryVectorItemResponse } from '@codebolt/types' ;
3- const VectorDB = {
3+ class VectorDB {
4+ private wsManager : cbws ;
5+ private ws : WebSocket ;
6+
7+ constructor ( wsManager : cbws ) {
8+ this . wsManager = wsManager ;
9+ this . ws = this . wsManager . getWebsocket ( ) ;
10+ }
411 /**
512 * Retrieves a vector from the vector database based on the provided key.
613 *
714 * @param {string } key - The key of the vector to retrieve.
815 * @returns {Promise<GetVectorResponse> } A promise that resolves with the retrieved vector.
916 */
10- getVector : async ( key : string ) : Promise < GetVectorResponse > => {
17+ getVector = async ( key : string ) : Promise < GetVectorResponse > => {
1118 return new Promise ( ( resolve , reject ) => {
12- cbws . getWebsocket . send ( JSON . stringify ( {
19+ this . ws . send ( JSON . stringify ( {
1320 "type" :"vectordbEvent" ,
1421 "action" : "getVector" ,
1522 "message" : {
1623 item : key
1724 } ,
1825 } ) ) ;
19- cbws . getWebsocket . on ( 'message' , ( data : string ) => {
26+ this . ws . on ( 'message' , ( data : string ) => {
2027 const response = JSON . parse ( data ) ;
2128 if ( response . type === "getVectorResponse" ) {
2229 resolve ( response ) ;
2330 }
2431 } ) ;
2532 } ) ;
26- } ,
33+ }
2734
2835 /**
2936 * Adds a new vector item to the vector database.
@@ -32,71 +39,71 @@ const VectorDB = {
3239 * @param {any } item - The item to add to the vector.
3340 * @returns {Promise<AddVectorItemResponse> } A promise that resolves when the item is successfully added.
3441 */
35- addVectorItem : async ( item : any ) : Promise < AddVectorItemResponse > => {
42+ addVectorItem = async ( item : any ) : Promise < AddVectorItemResponse > => {
3643 return new Promise ( ( resolve , reject ) => {
37- cbws . getWebsocket . send ( JSON . stringify ( {
44+ this . ws . send ( JSON . stringify ( {
3845 "type" :"vectordbEvent" ,
3946 "action" : "addVectorItem" ,
4047 "message" : {
4148 item : item
4249 } ,
4350 } ) ) ;
44- cbws . getWebsocket . on ( 'message' , ( data : string ) => {
51+ this . ws . on ( 'message' , ( data : string ) => {
4552 const response = JSON . parse ( data ) ;
4653 if ( response . type === "addVectorItemResponse" ) {
4754 resolve ( response ) ;
4855 }
4956 } ) ;
5057 } ) ;
51- } ,
58+ }
5259
5360 /**
5461 * Queries a vector item from the vector database based on the provided key.
5562 *
5663 * @param {string } key - The key of the vector to query the item from.
5764 * @returns {Promise<QueryVectorItemResponse> } A promise that resolves with the queried vector item.
5865 */
59- queryVectorItem : async ( key : string ) : Promise < QueryVectorItemResponse > => {
66+ queryVectorItem = async ( key : string ) : Promise < QueryVectorItemResponse > => {
6067 return new Promise ( ( resolve , reject ) => {
61- cbws . getWebsocket . send ( JSON . stringify ( {
68+ this . ws . send ( JSON . stringify ( {
6269 "type" :"vectordbEvent" ,
6370 "action" : "queryVectorItem" ,
6471 "message" : {
6572 item : key
6673 } ,
6774 } ) ) ;
68- cbws . getWebsocket . on ( 'message' , ( data : string ) => {
75+ this . ws . on ( 'message' , ( data : string ) => {
6976 const response = JSON . parse ( data ) ;
7077 if ( response . type === "qeryVectorItemResponse" ) {
7178 resolve ( response ) ;
7279 }
7380 } ) ;
7481 } ) ;
75- } ,
82+ }
7683 /**
7784 * Queries a vector item from the vector database based on the provided key.
7885 *
7986 * @param {string } key - The key of the vector to query the item from.
8087 * @returns {Promise<QueryVectorItemResponse> } A promise that resolves with the queried vector item.
8188 */
82- queryVectorItems : async ( items : [ ] , dbPath :string ) : Promise < QueryVectorItemResponse > => {
89+ queryVectorItems = async ( items : [ ] , dbPath :string ) : Promise < QueryVectorItemResponse > => {
8390 return new Promise ( ( resolve , reject ) => {
84- cbws . getWebsocket . send ( JSON . stringify ( {
91+ this . ws . send ( JSON . stringify ( {
8592 "type" :"vectordbEvent" ,
8693 "action" : "queryVectorItems" ,
8794 "message" : {
8895 items,
8996 dbPath
9097 } ,
9198 } ) ) ;
92- cbws . getWebsocket . on ( 'message' , ( data : string ) => {
99+ this . ws . on ( 'message' , ( data : string ) => {
93100 const response = JSON . parse ( data ) ;
94101 if ( response . type === "qeryVectorItemsResponse" ) {
95102 resolve ( response ) ;
96103 }
97104 } ) ;
98105 } ) ;
99- } ,
106+ }
100107} ;
101108
102109export default VectorDB ;
0 commit comments