ngx-appwrite
Version:
A wrapper around the Appwrite WebSDK for easier implementation in Angular 16+ projects. The goal is to make the whole SDK accessible as well as provide some convenience functionality like RxJS streams where appropriate.
73 lines (72 loc) • 3.59 kB
TypeScript
import { Models } from 'appwrite';
import { Observable } from 'rxjs';
import * as i0 from "@angular/core";
export declare abstract class AppwriteAdapter<DocumentShape extends Models.Document> {
private databases;
protected abstract collectionId: string;
protected abstract validationFn: undefined | ((data: unknown) => DocumentShape);
/**
* Create Document
*
* Create a new Document. Before using this route, you should create a new
* collection resource using either a [server
* integration](/docs/server/databases#databasesCreateCollection) API or
* directly from your database console.
* @param {DocumentShape} awDocument
* @param {string[]} [permissions]
* @param {string} [alternativeDatabaseId]
* @throws {AppwriteException}
* @returns {Promise<DocumentShape>}
*/
create(awDocument: Omit<DocumentShape, '$id' | '$collectionId' | '$databaseId' | '$updatedAt' | '$createdAt' | '$permissions'>, permissions?: string[], documentId?: string, alternativeDatabaseId?: string): Promise<DocumentShape>;
/**
* Update Document
*
* Updates a Document. Before using this route, you should create a new
* collection resource using either a [server
* integration](/docs/server/databases#databasesCreateCollection) API or
* directly from your database console.
* @param {Partial<DocumentShape>} awDocument
* @param {string[]} [permissions]
* @param {string} [alternativeDatabaseId]
* @throws {AppwriteException}
* @returns {Promise<T & Models.Document>}
*/
update(awDocument: Partial<DocumentShape> & {
$id: string;
}, permissions?: string[], alternativeDatabaseId?: string): Promise<DocumentShape>;
/**
* Upsert Document
*
* Upserts a Document. If an { $id: string } exists on the document, it is updated, otherwise a new document is created
* Before using this route, you should create a new
* collection resource using either a [server
* integration](/docs/server/databases#databasesCreateCollection) API or
* directly from your database console.
* @param {DocumentShape} awDocument
* @param {string[]} [permissions]
* @param {string} [alternativeDatabaseId]
* @throws {AppwriteException}
* @returns {Promise<T & Models.Document>}
*/
upsert(awDocument: Partial<DocumentShape>, permissions?: string[], alternativeDatabaseId?: string): Promise<DocumentShape>;
/**
* Delete Document
*
* Deletes a Document.
* Takes either a document id or a document object with an id
* @param {DocumentShape | string} awDocumentIdOrAwDocument
* @param {string} [alternateDatabaseId]
* @throws {AppwriteException}
* @returns {Promise<T & Models.Document>}
*/
delete(awDocumentIdOrAwDocument: string | (Partial<DocumentShape> & {
$id: string;
}), alternateDatabaseId?: string): Promise<Record<string, unknown>>;
document(documentId: string, alternativeDatabaseId?: string): Promise<DocumentShape>;
documentList(queries?: string[], alternativeDatabaseId?: string): Promise<Models.DocumentList<DocumentShape>>;
documentList$(queries?: string[], events?: string[], alternativeDatabaseId?: string): Observable<Models.DocumentList<DocumentShape>>;
document$(documentId: string, queries?: string[], alternativeDatabaseId?: string): Observable<DocumentShape | null>;
static ɵfac: i0.ɵɵFactoryDeclaration<AppwriteAdapter<any>, never>;
static ɵprov: i0.ɵɵInjectableDeclaration<AppwriteAdapter<any>>;
}