@alwatr/storage-client
v4.0.0-rc.0
Published
Elegant micro client for storage server written in tiny TypeScript ES module.
Downloads
52
Maintainers
Readme
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: '[email protected]',
});
await db.set({
id: 'fmd',
email: '[email protected]',
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();