Skip to content

YsarocK/fetch-appwrite-types

Repository files navigation

fetch-appwrite-types banner

Generate Typesript types from Appwrite Databases

npm npm tests

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-types

Installation

# yarn
yarn add fetch-appwrite-types

# npm
npm install fetch-appwrite-types

Make 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 hardTypes

Library

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}