A Nymph database driver.

Hierarchy

  • NymphDriver

    Constructors

    Properties

    entityCache: {
        [k: string]: {
            cdate: number;
            data: EntityData;
            mdate: number;
            sdata: SerializedEntityData;
            tags: string[];
        };
    } = {}

    A cache to make entity retrieval faster.

    entityCount: {
        [k: string]: number;
    } = {}

    A counter for the entity cache to determine the most accessed entities.

    nymph: Nymph = ...
    tokenizer: Tokenizer = ...

    Methods

    • Returns AsyncGenerator<{
          content: string;
          type: "entity" | "comment" | "uid";
      }, void, undefined | false>

    • Type Parameters

      Parameters

      • options: Options<T> & {
            return: "count";
        }
      • selectors: Selector[]
      • performQueryCallback: ((data: {
            etype: string;
            options: Options<T>;
            selectors: FormattedSelector[];
        }) => {
            result: any;
        })
      • rowFetchCallback: (() => any)
          • (): any
          • Returns any

      • freeResultCallback: (() => void)
          • (): void
          • Returns void

      • getCountCallback: ((row: any) => number)
          • (row): number
          • Parameters

            • row: any

            Returns number

      • getGUIDCallback: ((row: any) => string)
          • (row): string
          • Parameters

            • row: any

            Returns string

      • getTagsAndDatesCallback: ((row: any) => {
            cdate: number;
            mdate: number;
            tags: string[];
        })
          • (row): {
                cdate: number;
                mdate: number;
                tags: string[];
            }
          • Parameters

            • row: any

            Returns {
                cdate: number;
                mdate: number;
                tags: string[];
            }

            • cdate: number
            • mdate: number
            • tags: string[]
      • getDataNameAndSValueCallback: ((row: any) => {
            name: string;
            svalue: string;
        })
          • (row): {
                name: string;
                svalue: string;
            }
          • Parameters

            • row: any

            Returns {
                name: string;
                svalue: string;
            }

            • name: string
            • svalue: string

      Returns {
          process: (() => number | Error);
          result: any;
      }

      • process: (() => number | Error)
          • (): number | Error
          • Returns number | Error

      • result: any
    • Type Parameters

      Parameters

      • options: Options<T> & {
            return: "guid";
        }
      • selectors: Selector[]
      • performQueryCallback: ((data: {
            etype: string;
            options: Options<T>;
            selectors: FormattedSelector[];
        }) => {
            result: any;
        })
      • rowFetchCallback: (() => any)
          • (): any
          • Returns any

      • freeResultCallback: (() => void)
          • (): void
          • Returns void

      • getCountCallback: ((row: any) => number)
          • (row): number
          • Parameters

            • row: any

            Returns number

      • getGUIDCallback: ((row: any) => string)
          • (row): string
          • Parameters

            • row: any

            Returns string

      • getTagsAndDatesCallback: ((row: any) => {
            cdate: number;
            mdate: number;
            tags: string[];
        })
          • (row): {
                cdate: number;
                mdate: number;
                tags: string[];
            }
          • Parameters

            • row: any

            Returns {
                cdate: number;
                mdate: number;
                tags: string[];
            }

            • cdate: number
            • mdate: number
            • tags: string[]
      • getDataNameAndSValueCallback: ((row: any) => {
            name: string;
            svalue: string;
        })
          • (row): {
                name: string;
                svalue: string;
            }
          • Parameters

            • row: any

            Returns {
                name: string;
                svalue: string;
            }

            • name: string
            • svalue: string

      Returns {
          process: (() => Error | string[]);
          result: any;
      }

      • process: (() => Error | string[])
          • (): Error | string[]
          • Returns Error | string[]

      • result: any
    • Type Parameters

      Parameters

      • options: Options<T> & {
            return: "object";
        }
      • selectors: Selector[]
      • performQueryCallback: ((data: {
            etype: string;
            options: Options<T>;
            selectors: FormattedSelector[];
        }) => {
            result: any;
        })
      • rowFetchCallback: (() => any)
          • (): any
          • Returns any

      • freeResultCallback: (() => void)
          • (): void
          • Returns void

      • getCountCallback: ((row: any) => number)
          • (row): number
          • Parameters

            • row: any

            Returns number

      • getGUIDCallback: ((row: any) => string)
          • (row): string
          • Parameters

            • row: any

            Returns string

      • getTagsAndDatesCallback: ((row: any) => {
            cdate: number;
            mdate: number;
            tags: string[];
        })
          • (row): {
                cdate: number;
                mdate: number;
                tags: string[];
            }
          • Parameters

            • row: any

            Returns {
                cdate: number;
                mdate: number;
                tags: string[];
            }

            • cdate: number
            • mdate: number
            • tags: string[]
      • getDataNameAndSValueCallback: ((row: any) => {
            name: string;
            svalue: string;
        })
          • (row): {
                name: string;
                svalue: string;
            }
          • Parameters

            • row: any

            Returns {
                name: string;
                svalue: string;
            }

            • name: string
            • svalue: string

      Returns {
          process: (() => Error | EntityObjectType<T>[]);
          result: any;
      }

    • Type Parameters

      Parameters

      • options: Options<T>
      • selectors: Selector[]
      • performQueryCallback: ((data: {
            etype: string;
            options: Options<T>;
            selectors: FormattedSelector[];
        }) => {
            result: any;
        })
      • rowFetchCallback: (() => any)
          • (): any
          • Returns any

      • freeResultCallback: (() => void)
          • (): void
          • Returns void

      • getCountCallback: ((row: any) => number)
          • (row): number
          • Parameters

            • row: any

            Returns number

      • getGUIDCallback: ((row: any) => string)
          • (row): string
          • Parameters

            • row: any

            Returns string

      • getTagsAndDatesCallback: ((row: any) => {
            cdate: number;
            mdate: number;
            tags: string[];
        })
          • (row): {
                cdate: number;
                mdate: number;
                tags: string[];
            }
          • Parameters

            • row: any

            Returns {
                cdate: number;
                mdate: number;
                tags: string[];
            }

            • cdate: number
            • mdate: number
            • tags: string[]
      • getDataNameAndSValueCallback: ((row: any) => {
            name: string;
            svalue: string;
        })
          • (row): {
                name: string;
                svalue: string;
            }
          • Parameters

            • row: any

            Returns {
                name: string;
                svalue: string;
            }

            • name: string
            • svalue: string

      Returns {
          process: (() => Error | EntityInstanceType<T>[]);
          result: any;
      }

    • Parameters

      • selectors: FormattedSelector[]
      • callback: ((data: {
            key: string;
            typeIsNot: boolean;
            typeIsOr: boolean;
            value: any;
        }) => string)
          • (data): string
          • Parameters

            • data: {
                  key: string;
                  typeIsNot: boolean;
                  typeIsOr: boolean;
                  value: any;
              }
              • key: string
              • typeIsNot: boolean
              • typeIsOr: boolean
              • value: any

            Returns string

      Returns string[]

    • Pull an entity from the cache.

      Parameters

      • guid: string

        The entity's GUID.

      Returns null | {
          cdate: number;
          data: EntityData;
          guid: string;
          mdate: number;
          sdata: SerializedEntityData;
          tags: string[];
      }

      The entity's data or null if it's not cached.

    • Push an entity onto the cache.

      Parameters

      • guid: string

        The entity's GUID.

      • cdate: number

        The entity's cdate.

      • mdate: number

        The entity's mdate.

      • tags: string[]

        The entity's tags.

      • data: EntityData

        The entity's data.

      • sdata: SerializedEntityData

        The entity's sdata.

      Returns void

    • Parameters

      • entity: EntityInterface
      • saveNewEntityCallback: ((data: {
            cdate: number;
            data: EntityData;
            entity: EntityInterface;
            etype: string;
            guid: string;
            sdata: SerializedEntityData;
            tags: string[];
            uniques: string[];
        }) => Promise<boolean>)
      • saveExistingEntityCallback: ((data: {
            data: EntityData;
            entity: EntityInterface;
            etype: string;
            guid: string;
            mdate: number;
            sdata: SerializedEntityData;
            tags: string[];
            uniques: string[];
        }) => Promise<boolean>)
      • startTransactionCallback: null | (() => Promise<void>) = null
      • commitTransactionCallback: null | ((success: boolean) => Promise<boolean>) = null

      Returns Promise<boolean>