@book000/pixivts
Version:
pixiv Unofficial API Library for TypeScript
119 lines • 3.71 kB
TypeScript
import { DataSource } from 'typeorm';
import { DBResponse } from './response-entity';
type HttpMethod = 'GET' | 'POST';
export interface AddResponseOptions {
method: HttpMethod;
endpoint: string;
url: string | null;
requestHeaders: string | null;
requestBody: string | null;
responseType: string;
statusCode: number;
responseHeaders: string | null;
responseBody: string;
}
/**
* レスポンスを保存するデータベースのオプション
*/
export interface ResponseDatabaseOptions {
/**
* ホスト名 (MySQL のみ)
*/
hostname?: string;
/**
* ポート (MySQL のみ)
*/
port?: string;
/**
* ユーザー名 (MySQL のみ)
*/
username?: string;
/**
* パスワード (MySQL のみ)
*/
password?: string;
/**
* データベース名 (MySQL のみ)
*/
database?: string;
}
export interface ResponseEndPoint {
method: HttpMethod;
endpoint: string;
statusCode: number;
}
export type ResponseEndPointWithCount = ResponseEndPoint & {
count: number;
};
interface GetResponseRangeOptions {
page?: number;
limit?: number;
}
/**
* レスポンスを保存するデータベース
*/
export declare class ResponseDatabase {
private dataSource;
constructor(options?: ResponseDatabaseOptions);
/**
* データソースを初期化する
*
* @returns 初期化に成功したかどうか
*/
init(): Promise<boolean>;
/**
* データソースをマイグレーションする
*/
migrate(): Promise<void>;
/**
* データソーススキーマを同期する
*/
sync(): Promise<void>;
/**
* レスポンスを追加する
*
* @param options レスポンスの追加オプション
* @returns 追加されたレスポンス
*/
addResponse(options: AddResponseOptions): Promise<DBResponse | undefined>;
/**
* レスポンスを取得する。但し直近90日間のレスポンスのみ取得可能
*
* @param endpoint エンドポイントの情報。指定しない場合はすべてのレスポンスを取得する
* @param rangeOptions 取得するレスポンスの範囲
*
* @returns レスポンスの配列
*/
getResponses(endpoint?: ResponseEndPoint | ResponseEndPoint[], rangeOptions?: GetResponseRangeOptions): Promise<DBResponse[]>;
/**
* レスポンスの数を取得する。但し直近90日間のレスポンスのみ取得可能
*
* @param endpoint エンドポイントの情報。指定しない場合はすべてのレスポンスを取得する
* @returns レスポンスの数
*/
getResponseCount(endpoint?: ResponseEndPoint | ResponseEndPoint[]): Promise<number>;
/**
* エンドポイントを取得する。但し直近90日間のレスポンスのみ取得可能
*/
getEndpoints(): Promise<ResponseEndPointWithCount[]>;
close(): Promise<void>;
isInitialized(): boolean;
/**
* データソースを取得する
*
* @returns データソース
*/
getDataSource(): DataSource;
/**
* 環境変数で指定されたデータベースのポートをパースする。
* 数値にパースできない場合と1以上でない場合はエラーを投げる。
* undefinedの場合は、各データベースのデフォルトポートを使用する
*
* @param port データベースのポート
* @returns パースされたポート
*/
private parsePort;
static printDebug(text: string, error?: Error): void;
}
export {};
//# sourceMappingURL=index.d.ts.map