Toshihiko
    Preparing search index...

    Interface Model<Name, Schema, AdapterInstance>

    The table-level API returned by Toshihiko.define.

    A Model compiles the supplied schema, creates Query builders, constructs Yukari rows, and exposes schema-aware metadata. Query entry methods always create a fresh Query instance.

    interface Model<
        Name extends string,
        Schema extends SchemaDefinition,
        AdapterInstance extends AdapterLike = Adapter,
    > {
        ai: Field<Schema[number]> | null;
        autoIncrementField: Field<Schema[number]> | null;
        cache: Cache | null;
        columnToName: Readonly<Record<string, FieldName<RowFromSchema<Schema>>>>;
        fieldColumnsMap: Readonly<Record<string, Field<Schema[number]>>>;
        fieldNamesMap: FieldNamesMap<Schema>;
        name: Name;
        nameToColumn: NameToColumnMap<Schema>;
        options: ModelOptions;
        originalSchema: Schema;
        parent: Toshihiko<AdapterInstance>;
        primaryKeys: readonly Field<Schema[number]>[];
        schema: CompiledSchema<Schema>;
        get toshihiko(): Toshihiko<AdapterInstance>;
        beginTransaction(
            ...support: AdapterBeginTransactionArguments<AdapterInstance>,
        ): Promise<AdapterTransactionConnection<AdapterInstance>>;
        build<const Input extends Partial<RowFromSchema<Schema>>>(
            fields: NoUnknownBuildFields<Schema, Input>,
        ): BuiltYukari<Name, Schema, Input, AdapterInstance>;
        commit(
            ...connection: AdapterCommitArguments<AdapterInstance>,
        ): Promise<AdapterCommitResult<AdapterInstance>>;
        conn(
            connection: AdapterConnection<AdapterInstance> | null,
        ): Query<Name, Schema, AdapterInstance>;
        convertColumnToName(
            column: string,
        ): FieldName<RowFromSchema<Schema>> | undefined;
        convertColumnToName(
            columns: readonly string[],
        ): readonly (FieldName<RowFromSchema<Schema>> | undefined)[];
        convertColumnToName(object: DataRow): DataRow;
        count(): Promise<number>;
        delete(): Promise<AdapterDeleteByQueryResult<AdapterInstance>>;
        execute(
            ...arguments_: AdapterQueryExecuteArguments<AdapterInstance>,
        ): Promise<AdapterExecuteResult<AdapterInstance>>;
        field(
            fields: string | readonly FieldName<RowFromSchema<Schema>>[],
        ): Query<Name, Schema, AdapterInstance>;
        fields(
            fields: string | readonly FieldName<RowFromSchema<Schema>>[],
        ): Query<Name, Schema, AdapterInstance>;
        find(): Promise<readonly QueriedYukari<Name, Schema, AdapterInstance>[]>;
        find(
            options: QueryFindManyOptions,
        ): Promise<readonly QueriedYukari<Name, Schema, AdapterInstance>[]>;
        find(
            options: QueryFindOneOptions,
        ): Promise<QueriedYukari<Name, Schema, AdapterInstance> | null>;
        find(
            toJSON: false,
            options?: QueryFindManyOptions,
        ): Promise<readonly QueriedYukari<Name, Schema, AdapterInstance>[]>;
        find(
            toJSON: false,
            options: QueryFindOneOptions,
        ): Promise<QueriedYukari<Name, Schema, AdapterInstance> | null>;
        find(
            toJSON: true,
            options?: QueryFindManyOptions,
        ): Promise<readonly Partial<JsonRowFromSchema<Schema>>[]>;
        find(
            toJSON: true,
            options: QueryFindOneOptions,
        ): Promise<Partial<JsonRowFromSchema<Schema>> | null>;
        find(
            options: QueryFindManyOptions,
            toJSON: true,
        ): Promise<readonly Partial<JsonRowFromSchema<Schema>>[]>;
        find(
            options: QueryFindOneOptions,
            toJSON: false,
        ): Promise<QueriedYukari<Name, Schema, AdapterInstance> | null>;
        find(
            options: QueryFindOneOptions,
            toJSON: true,
        ): Promise<Partial<JsonRowFromSchema<Schema>> | null>;
        findById(
            id: FindByIdInput<Schema>,
        ): Promise<QueriedYukari<Name, Schema, AdapterInstance> | null>;
        findById(
            id: FindByIdInput<Schema>,
            toJSON: false,
        ): Promise<QueriedYukari<Name, Schema, AdapterInstance> | null>;
        findById(
            id: FindByIdInput<Schema>,
            toJSON: true,
        ): Promise<Partial<JsonRowFromSchema<Schema>> | null>;
        findOne(): Promise<QueriedYukari<Name, Schema, AdapterInstance> | null>;
        findOne(
            toJSON: false,
        ): Promise<QueriedYukari<Name, Schema, AdapterInstance> | null>;
        findOne(toJSON: true): Promise<Partial<JsonRowFromSchema<Schema>> | null>;
        getPrimaryKeysColumn(): string | readonly string[];
        getPrimaryKeysName(): string | readonly string[];
        index(indexName: string): Query<Name, Schema, AdapterInstance>;
        limit(
            limit: string | number | readonly (string | number)[],
        ): Query<Name, Schema, AdapterInstance>;
        limit(
            offset: string | number,
            count: string | number,
        ): Query<Name, Schema, AdapterInstance>;
        order(
            order: QueryOrder<RowFromSchema<Schema>>,
        ): Query<Name, Schema, AdapterInstance>;
        orderBy(
            order: QueryOrder<RowFromSchema<Schema>>,
        ): Query<Name, Schema, AdapterInstance>;
        rollback(
            ...connection: AdapterRollbackArguments<AdapterInstance>,
        ): Promise<AdapterRollbackResult<AdapterInstance>>;
        update(
            data: Partial<RowFromSchema<Schema>>,
            ...support: AdapterUpdateByQueryCallArguments<AdapterInstance>,
        ): Promise<AdapterUpdateByQueryResult<AdapterInstance>>;
        where(
            condition: QueryWhere<RowFromSchema<Schema>>,
        ): Query<Name, Schema, AdapterInstance>;
    }

    Type Parameters

    Hierarchy

    • EventEmitter2
      • Model
    Index
    ai: Field<Schema[number]> | null

    Compatibility alias for autoIncrementField.

    autoIncrementField: Field<Schema[number]> | null

    Compiled field marked with autoIncrement: true, when present.

    cache: Cache | null

    Cache selected by Model options or inherited from the parent Toshihiko.

    columnToName: Readonly<Record<string, FieldName<RowFromSchema<Schema>>>>

    Storage column name to logical field name.

    fieldColumnsMap: Readonly<Record<string, Field<Schema[number]>>>

    Storage column name to compiled Field.

    fieldNamesMap: FieldNamesMap<Schema>

    Logical field name to compiled Field.

    name: Name

    Table or collection name passed to Toshihiko.define.

    nameToColumn: NameToColumnMap<Schema>

    Logical field name to storage column name.

    options: ModelOptions

    Model options passed to Toshihiko.define.

    originalSchema: Schema

    Exact schema array passed to Toshihiko.define.

    Toshihiko instance which owns this Model.

    primaryKeys: readonly Field<Schema[number]>[]

    Compiled fields marked with primaryKey: true.

    Runtime Field objects compiled from originalSchema.

    • Converts storage column names to logical schema field names.

      Unknown columns return undefined for string or array input and are omitted from object input.

      Parameters

      • column: string

        One storage column name. Overloads also accept an array of column names or a row keyed by column name.

      Returns FieldName<RowFromSchema<Schema>> | undefined

      The corresponding logical name or converted structure.

    • Converts storage column names to logical schema field names.

      Unknown columns return undefined for string or array input and are omitted from object input.

      Parameters

      • columns: readonly string[]

      Returns readonly (FieldName<RowFromSchema<Schema>> | undefined)[]

      The corresponding logical name or converted structure.

    • Converts storage column names to logical schema field names.

      Unknown columns return undefined for string or array input and are omitted from object input.

      Parameters

      Returns DataRow

      The corresponding logical name or converted structure.

    • Counts all rows through a fresh Query.

      Returns Promise<number>

    • Returns storage column names for primary keys.

      Returns string | readonly string[]

      One string for a single key, an array for composite keys, or an empty array when the Model has no primary key.

    • Returns logical primary-key names.

      Returns string | readonly string[]

      One string for a single key, an array for composite keys, or an empty array when the Model has no primary key.