Skip to content

@waylis/core


@waylis/core / JSONDatabase

Class: JSONDatabase

Defined in: src/database/json/json.ts:12

Simple JSON file–based database implementation.

Implements

Constructors

Constructor

ts
new JSONDatabase(filepath: string): JSONDatabase;

Defined in: src/database/json/json.ts:27

Create a new JSONDatabase instance.

Parameters

filepath

string = "./db.json"

Path to the JSON file (defaults to "db.json").

Returns

JSONDatabase

Properties

PropertyTypeDefault valueDefined in
isOpenbooleanfalsesrc/database/json/json.ts:13

Methods

addChat()

ts
addChat(chat: Chat): Promise<void>;

Defined in: src/database/json/json.ts:76

Add a new chat to the database.

Parameters

chat

Chat

Chat object to store.

Returns

Promise<void>

Implementation of

Database.addChat


addConfirmedStep()

ts
addConfirmedStep(step: ConfirmedStep): Promise<void>;

Defined in: src/database/json/json.ts:181

Store a confirmed step.

Parameters

step

ConfirmedStep

Step to add.

Returns

Promise<void>

Implementation of

Database.addConfirmedStep


addFile()

ts
addFile(data: FileMeta): Promise<void>;

Defined in: src/database/json/json.ts:199

Add file metadata to the database.

Parameters

data

FileMeta

File metadata to store.

Returns

Promise<void>

Implementation of

Database.addFile


addMessage()

ts
addMessage(msg: Message): Promise<void>;

Defined in: src/database/json/json.ts:130

Add a new message to the database.

Parameters

msg

Message

Message to store.

Returns

Promise<void>

Implementation of

Database.addMessage


close()

ts
close(): Promise<void>;

Defined in: src/database/json/json.ts:71

Returns

Promise<void>

Implementation of

Database.close


countChatsByCreatorID()

ts
countChatsByCreatorID(creatorID: string): Promise<number>;

Defined in: src/database/json/json.ts:100

Count how many chats were created by a user.

Parameters

creatorID

string

User identifier.

Returns

Promise<number>

Implementation of

Database.countChatsByCreatorID


deleteChatByID()

ts
deleteChatByID(id: string): Promise<null | Chat>;

Defined in: src/database/json/json.ts:120

Remove a chat by ID.

Parameters

id

string

Chat identifier.

Returns

Promise<null | Chat>

Deleted chat or null if not found.

Implementation of

Database.deleteChatByID


deleteFileByID()

ts
deleteFileByID(id: string): Promise<null | FileMeta>;

Defined in: src/database/json/json.ts:216

Delete file metadata by ID.

Parameters

id

string

File identifier.

Returns

Promise<null | FileMeta>

Deleted metadata or null if not found.

Implementation of

Database.deleteFileByID


deleteMessagesByChatID()

ts
deleteMessagesByChatID(chatID: string): Promise<number>;

Defined in: src/database/json/json.ts:167

Delete all messages belonging to a chat.

Parameters

chatID

string

Chat identifier.

Returns

Promise<number>

Number of deleted messages.

Implementation of

Database.deleteMessagesByChatID


deleteOldConfirmedSteps()

ts
deleteOldConfirmedSteps(maxDate: Date): Promise<number>;

Defined in: src/database/json/json.ts:190

Delete all confirmed steps created before a given date.

Parameters

maxDate

Date

Cutoff date.

Returns

Promise<number>

Number of deleted steps.

Implementation of

Database.deleteOldConfirmedSteps


deleteOldFiles()

ts
deleteOldFiles(maxDate: Date): Promise<string[]>;

Defined in: src/database/json/json.ts:225

Delete all files created before a given date.

Parameters

maxDate

Date

Cutoff date.

Returns

Promise<string[]>

List of deleted file IDs.

Implementation of

Database.deleteOldFiles


deleteOldMessages()

ts
deleteOldMessages(maxDate: Date): Promise<number>;

Defined in: src/database/json/json.ts:160

Delete all messages created before a given date.

Parameters

maxDate

Date

Cutoff date.

Returns

Promise<number>

Number of deleted messages.

Implementation of

Database.deleteOldMessages


editChatByID()

ts
editChatByID(id: string, updated: Partial<Chat>): Promise<null | Chat>;

Defined in: src/database/json/json.ts:104

Update a chat by ID.

Parameters

id

string

Chat identifier.

updated

Partial<Chat>

Partial fields to update.

Returns

Promise<null | Chat>

Updated chat or null if not found.

Implementation of

Database.editChatByID


getChatByID()

ts
getChatByID(id: string): Promise<null | Chat>;

Defined in: src/database/json/json.ts:85

Retrieve a chat by its ID.

Parameters

id

string

Chat identifier.

Returns

Promise<null | Chat>

Chat if found, otherwise null.

Implementation of

Database.getChatByID


getChatsByCreatorID()

ts
getChatsByCreatorID(
   creatorID: string, 
   offset: number, 
limit: number): Promise<Chat[]>;

Defined in: src/database/json/json.ts:90

Retrieve chats created by a specific user.

Parameters

creatorID

string

User identifier.

offset

number

Skip this many results.

limit

number

Maximum number of results.

Returns

Promise<Chat[]>

Implementation of

Database.getChatsByCreatorID


getConfirmedStepsByThreadID()

ts
getConfirmedStepsByThreadID(threadID: string): Promise<ConfirmedStep[]>;

Defined in: src/database/json/json.ts:176

Retrieve all confirmed steps belonging to a thread.

Parameters

threadID

string

Thread identifier.

Returns

Promise<ConfirmedStep[]>

Implementation of

Database.getConfirmedStepsByThreadID


getFileByID()

ts
getFileByID(id: string): Promise<null | FileMeta>;

Defined in: src/database/json/json.ts:208

Retrieve file metadata by ID.

Parameters

id

string

File identifier.

Returns

Promise<null | FileMeta>

Metadata if found, otherwise null.

Implementation of

Database.getFileByID


getFilesByIDs()

ts
getFilesByIDs(ids: string[]): Promise<FileMeta[]>;

Defined in: src/database/json/json.ts:212

Retrieve multiple files by IDs.

Parameters

ids

string[]

List of file identifiers.

Returns

Promise<FileMeta[]>

Implementation of

Database.getFilesByIDs


getMessageByID()

ts
getMessageByID(id: string): Promise<null | Message>;

Defined in: src/database/json/json.ts:139

Retrieve a message by its ID.

Parameters

id

string

Message identifier.

Returns

Promise<null | Message>

Message if found, otherwise null.

Implementation of

Database.getMessageByID


getMessagesByChatID()

ts
getMessagesByChatID(
   chatID: string, 
   offset: number, 
limit: number): Promise<Message[]>;

Defined in: src/database/json/json.ts:149

Retrieve messages from a chat.

Parameters

chatID

string

Chat identifier.

offset

number

Skip this many results.

limit

number

Maximum number of results.

Returns

Promise<Message[]>

Implementation of

Database.getMessagesByChatID


getMessagesByIDs()

ts
getMessagesByIDs(ids: string[]): Promise<Message[]>;

Defined in: src/database/json/json.ts:144

Retrieve multiple messages by IDs.

Parameters

ids

string[]

List of message identifiers.

Returns

Promise<Message[]>

Implementation of

Database.getMessagesByIDs


open()

ts
open(): Promise<void>;

Defined in: src/database/json/json.ts:66

Returns

Promise<void>

Implementation of

Database.open

Released under the MIT License.