@alwatr/storage-client
TypeScript icon, indicating that this package has built-in type declarations

4.0.0-rc.0 • Public • Published

Alwatr Storage Client - @alwatr/storage-client

Elegant micro client for storage server written in tiny TypeScript ES module.

Example usage

import {type AlwatrDocumentObject, AlwatrStorageClient} from '@alwatr/storage-client';

type User = AlwatrDocumentObject & {
  email: string;
  token?: string;
};

const db = new AlwatrStorageClient<User>({
  name: 'user-list',
  host: '127.0.0.1',
  port: 9000,
  token: 'YOUR_SECRET_TOKEN',
  timeout: 2_000,
});

await db.set({
  id: 'alimd',
  email: 'ali@mihandoost.com',
});

await db.set({
  id: 'fmd',
  email: 'Fatemeh@mihandoost.com',
  token: Math.random().toString(36).substring(2, 15),
});

console.log("has 'alimd': %o", await db.has('alimd'));
console.log('keys: %o', await db.keys());
console.log('getAll: %o', await db.getAll());
console.log('delete: %o', await db.delete('alimd'));
try {
  await db.delete('abcd');
} catch (err) {
  console.log('delete 404: %o', (err as Error).message);
}

API

config.name: string

Storage name (like database name).

config.host: string

Storage server host name (URL).

config.token: string

Storage server token (like database password).

config.timeout?: number

A timeout in ms for the fetch request.

config.debug?: boolean

Debug output logs.

get(documentId: string): Promise<DocumentType>

Get a document object by id.

  • documentId: The id of the document object.

Example:

try {
  const user = await userStorage.get('user-1');
  console.dir(item);
} catch (err) {
  if ((err as Error)?.message === 'document_not_found') {
    console.log('user_5000 id not found!');
  } else {
    console.error(err);
  }
}

has(documentId: string): Promise<boolean>

Check document exists by id.

  • documentId: The id of the document object.

Example:

const userExist = await userStorage.has('user-1');
if (!userExist) console.log('user_not_found');

set(documentObject: DocumentType, fastInstance?: boolean): DocumentType

Insert/update a document object in the storage.

  • documentObject: The document object to insert/update contain id.

Example:

userStorage.set({
  id: 'user-1',
  foo: 'bar',
});

delete(documentId: string): Promise<void>

Delete a document object from the storage.

Example:

userStorage.delete('user-1');

getStorage(): Promise<AlwatrDocumentStorage>

Dump all storage data.

Example:

const userStorage = await userStorage.getStorage();

Package Sidebar

Install

npm i @alwatr/storage-client

Weekly Downloads

13

Version

4.0.0-rc.0

License

MIT

Unpacked Size

49.5 kB

Total Files

12

Last publish

Collaborators

  • njfamirm
  • alimd