EasyFM - v5.0.0-beta.1
    Preparing search index...

    Class Database<T>Abstract

    Represents a database connection.

    Type Parameters

    • T extends DatabaseStructure

      The structure of the database.

    Implements

    • DatabaseBase
    Index

    Constructors

    Properties

    canOpenNewConnections: boolean = true
    debug: boolean
    host: HostBase
    name: string

    Accessors

    • get endpoint(): | `https://${string}/fmi/data/v2/databases/${string}`
      | `http://${string}/fmi/data/v2/databases/${string}`

      Returns the endpoint URL for the database connection.

      Returns
          | `https://${string}/fmi/data/v2/databases/${string}`
          | `http://${string}/fmi/data/v2/databases/${string}`

      The endpoint URL.

    Methods

    • Immediately closes all open sessions and prevents new ones from being created.

      Returns Promise<void>

    • Uses an available session to run a fetch

      Parameters

      • url: string | URL
      • Optionaloptions: RequestInit

      Returns Promise<Response>

    • Uses an available session to run a fetch on a FileMaker Data API JSON endpoint. Also applies JSON/Zod type enforcement on result.

      Type Parameters

      • T extends ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>> | null = null

      Parameters

      • url: string | URL
      • options: RequestInit & { type: T }

      Returns Promise<
          T extends ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>>
              ? output<T> & { httpStatus: number }
              : { httpStatus: number },
      >

    • Returns Promise<void>

      login is deprecated and is now handled by newer session management. This function is simply a placeholder.

    • Immediately closes all open sessions and prevents new ones from being created. Alias of close

      Returns Promise<void>

    • Creates a script reference you can pass to read and write helpers.

      Parameters

      • name: string
      • parameter: string = ''

      Returns Script

    • Protected

      The inheriting database class must implement this method to provide a session object.

      Type Parameters

      • T

      Parameters

      • callback: (
            session: {
                fetch: (url: string | URL, init?: RequestInit) => Promise<Response>;
                validate: () => Promise<void>;
                logout(): Promise<void>;
            },
        ) => Promise<T>

      Returns Promise<T>