can we extend Document to infer types of attributes while retrieving documents on Typescript? What's the preferred way? Because DocumentList<Document> doesn't include attributes and currently I have to go with any as workaround.
what's the usecase?
iirc, the main structure would be in Document.data, DocumentList is just a type that holds a total: number & the list of documents. If you mean infer the return type from the sdk return types, I don't think so.
you can always play around with extended types though.
you could do some sort of documents.map((doc) => ...).
From what I understand, instead of doing document.data["Attribute"] Doing document.data.attribute so it gets completed automatically
i see, but the type won't exist due to data's dynamic nature. but iirc, there was a library by a community member that would pre-fetch the types. should be in #🛠│tools ig.
Maybe I didn't explained it well enough. Could be something totally related to ts only. Let me give bit more context. Give me a while
Following is a function I'm using to retrieve some aatribute from the documents.
const statsData = await databases.listDocuments(
APPWRITE_DB_ID,
APPWRITE_FILES_COUNTS_COL_ID,
[Query.select(["year", "month", "count"])]
);
The return type right now is statsData is Models.DocumentList<Models.Document>. The Models.Document type has metadata related values mostly. like $id, $createdAt
Can I extend the type of Document such that along with the metadata, I can also get type of the attributes I've queried with Query.select()?
Along with the existing Document type, I also want to infer following when I access statsData
interface Stat {
year: number,
month: number,
count: number
}
@Darshan Pandya @D5
Recommended threads
- Can Sites deployments be limited to the ...
Hey all! I’m using Appwrite Cloud Sites with GitHub connected. Right now, Appwrite seems to build for every push and PR, not just for my production branch (main...
- [Sites] pnpm Turborepo monorepo — stuck ...
deployment seems to never finish. Testing Appwrite Sites with a standard pnpm Turborepo monorepo (npx create-turbo@latest). Repo: https://github.com/saitrogen/...
- Getting this error when creating a websi...
when I visit the site I get 404, even if the deployment is successfull