Toshihiko
    検索インデックスを準備しています...

    インターフェイス Model<Name, Schema, AdapterInstance>

    Toshihiko.define が返すテーブル単位の API です。

    Model は指定された schema をコンパイルし、Query builder と Yukari のデータ行を作成して、schema を認識するメタデータを公開します。Query の入口となるメソッドは常に新しい Query インスタンスを作成します。

    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>;
    }

    型パラメーター

    階層

    • EventEmitter2
      • Model
    インデックス
    ai: Field<Schema[number]> | null

    autoIncrementField の互換エイリアスです。

    autoIncrementField: Field<Schema[number]> | null

    存在する場合、autoIncrement: true が指定されたコンパイル済みフィールドです。

    cache: Cache | null

    Model のオプションで選択された、または親の Toshihiko から継承した Cache です。

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

    ストレージ列名から論理フィールド名への対応です。

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

    ストレージ列名からコンパイル済み Field への対応です。

    fieldNamesMap: FieldNamesMap<Schema>

    論理フィールド名からコンパイル済み Field への対応です。

    name: Name

    Toshihiko.define に渡したテーブル名またはコレクション名です。

    nameToColumn: NameToColumnMap<Schema>

    論理フィールド名からストレージ列名への対応です。

    options: ModelOptions

    Toshihiko.define に渡した Model オプションです。

    originalSchema: Schema

    Toshihiko.define に渡した元の schema 配列です。

    この Model を所有する Toshihiko インスタンスです。

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

    primaryKey: true が指定されたコンパイル済みフィールドです。

    originalSchema からコンパイルした実行時の Field オブジェクトです。

    • データベースへ書き込まずに、新しい Yukari のデータ行を作成します。

      入力キーは schema のフィールドに制限されます。指定されたフィールドと既定値のあるフィールドは戻り値の型上で存在が保証されます。ほかのフィールドは、代入または読み込みが行われるまで optional のままです。

      型パラメーター

      パラメータ

      • fields: NoUnknownBuildFields<Schema, Input>

        論理フィールド名をキーとする、アプリケーション上の初期値です。

      戻り値 BuiltYukari<Name, Schema, Input, AdapterInstance>

      Yukari.insert または Yukari.save を実行できる、新しく構築された Yukari です。

      const user = User.build({ email: 'yukari@example.com' });
      await user.save();
    • ストレージ列名を schema 上の論理フィールド名へ変換します。

      未知の列に対して、文字列または配列の入力では undefined を返し、オブジェクトの入力では該当するプロパティを省略します。

      パラメータ

      • column: string

        1 個のストレージ列名です。オーバーロードでは、列名の配列または列名をキーとするデータ行も受け付けます。

      戻り値 FieldName<RowFromSchema<Schema>> | undefined

      対応する論理名、または変換後の構造です。

    • column - 1 個のストレージ列名です。オーバーロードでは、列名の配列または列名をキーとするデータ行も受け付けます。

      パラメータ

      • columns: readonly string[]

      戻り値 readonly (FieldName<RowFromSchema<Schema>> | undefined)[]

      対応する論理名、または変換後の構造です。

    • column - 1 個のストレージ列名です。オーバーロードでは、列名の配列または列名をキーとするデータ行も受け付けます。

      パラメータ

      戻り値 DataRow

      対応する論理名、または変換後の構造です。

    • 新しい Query を介して、すべてのデータ行を数えます。

      戻り値 Promise<number>

    • 主キーに対応するストレージ列名を返します。

      戻り値 string | readonly string[]

      単一主キーでは 1 個の文字列、複合主キーでは配列、Model に主キーがない場合は空の配列です。

    • 論理主キー名を返します。

      戻り値 string | readonly string[]

      単一主キーでは 1 個の文字列、複合主キーでは配列、Model に主キーがない場合は空の配列です。