@marcelkloubert/appwrite-sdk
    Preparing search index...

    @marcelkloubert/appwrite-sdk

    @marcelkloubert/appwrite-sdk

    An (unofficial) enhancement for official SDK of Appwrite which runs on Node.js 18+ or later.

    Execute the following command from your project folder, where your package.json file is stored:

    npm i @marcelkloubert/appwrite-sdk
    
    import { Query } from "node-appwrite";
    import { AppwriteProject } from "@marcelkloubert/appwrite-sdk";

    interface BarCollection {
    buzz: number;
    }

    // set environment variables `APPWRITE_API_KEY` and `APPWRITE_PROJECT_ID`
    // with correct values
    const project = new AppwriteProject();

    // initialize project and make it available
    // as a singleton instance if possible
    await project.init({ withDatabase: true });

    for (const database of project.databases) {
    console.log("Database:", database.name);

    // `database` is an iterator of collections
    for (const collection of database) {
    console.log("\tCollection:", collection.name);

    // `collection` is an iterator of attributes
    for (const attribute of collection) {
    console.log("\tAttribute:", attribute.name);
    }
    }
    }

    // get existing database `foo`
    const foo = project.databases.getDatabase("foo");

    // get existing collection `bar` inside `foo`
    const bar = foo.getCollection("bar").wrap<BarCollection>();

    // insert a new document
    const newDoc = await bar.insertOne({ buzz: 42 });

    // update an existing document
    const updatedDoc = await bar.updateOne(newDoc, { buzz: 666 });

    // remove a document
    await bar.deleteOne(updatedDoc);

    // query multiple documents
    const asyncCursor = bar.query({
    queries: [Query.greaterThan("$createdAt", new Date().toISOString())],
    });
    for await (const document of asyncCursor) {
    console.log("Document:", document.$id);
    }

    // query a single document
    const maybeExistingDoc = await bar.queryOne({
    queries: [Query.equal("buzz", 667)],
    });
    if (maybeExistingDoc) {
    console.log("Document with buzz=667 exists as:", maybeExistingDoc.$id);
    } else {
    console.log("Document with buzz=667 does not exist");
    }

    The project is currently under heavy development.

    Currently the following features running have a "quite stable" beta status:

    The API documentation can be found here.

    MIT © Marcel Joachim Kloubert

    PayPal donate button Patreon donate button Buy Me A Coffee donate button

    Contribution guidelines