fetch-appwrite-types
v2.2.2
Published
Appwrite types file maker
Maintainers
Readme

Generate Typesript types from Appwrite Databases
Quick usage
Make sure ton add the following values to your .env :
APPWRITE_ENDPOINT
APPWRITE_PROJECT_ID
APPWRITE_API_KEY
Then run the following command :
npx fetch-appwrite-typesInstallation
# yarn
yarn add fetch-appwrite-types
# npm
npm install fetch-appwrite-typesMake sure ton add the following values to your .env :
APPWRITE_ENDPOINT
APPWRITE_PROJECT_ID
APPWRITE_API_KEY
import { FetchNewTypes } from "fetch-appwrite-types/dist/main";
await FetchNewTypes();Parameters
| Name | Default value | Description |
|---------|--------------------------|---------------------------------------------------|
| outDir | "/types" | The folder where the type file will be generated |
| outFileName | "appwrite" | The name of the generated type file |
| includeDBName | false | Add the collection name at start of types |
| hardTypes | false | Creates an Email type and an URL types. More. |
Usage
CLI
Params can be passed as arguments in any order, except for the outDir which might be followed by the path.
npx fetch-appwrite-types includeDBName outDir /types outFileName appwrite hardTypesLibrary
await FetchNewTypes({
outDir: "/types",
outFileName: "appwrite",
includeDBName: true,
hardTypes: true
})Handled types
| Appwrite type | Generated type (simple) | Generated type (hard) |
|---------------|-------------------------|----------------------------|
| String | string | string |
| Integer | integer | integer |
| Float | integer | integer |
| Boolean | boolean | boolean |
| DateTime | string | Date |
| Email | string | Email |
| IP | string | string |
| URL | string | URL |
| Enum | Enum | Enum |
| Relationship | Reference to Type | Reference to Type |
Hard types
The hard types are types that are not native to typescript, but are often used in the context of a web application. They are generated as classes with methods to validate and parse the data.
| Name | Value |
|------|-------|
| Email | ${string}@${string}.${string} |
| URL | ${string}://${string}.${string} |
