@jswf/core
Version:
JavaScript Window Framework
149 lines (148 loc) • 4.26 kB
TypeScript
interface FunctionData {
name: string;
params: unknown[];
}
export interface AdapterResult {
value: {
[keys: string]: unknown;
} | null;
error: string | null;
}
/**
*Ajax通信用アダプタ
*
* @export
* @class Adapter
*/
export declare class Adapter {
private handle;
private scriptUrl;
private keyName;
private functionSet;
/**
*Creates an instance of Adapter.
* @param {string} [scriptUrl] 通信先アドレス
* @param {string} [keyName] セッション情報記憶用キー
* @memberof Adapter
*/
constructor(scriptUrl?: string, keyName?: string);
getKeyName(): string;
/**
*サーバに対して命令を単独実行
*呼び出し内容をまとめない
* @param {string} funcName ファンクション名(className.functionName)
* @param {...unknown[]} params パラメータ
* @returns {Promise<never>}
* @memberof Adapter
*/
execAlone(funcName: string, ...params: unknown[]): Promise<never>;
/**
*戻り値をバイナリとして受け取る(ファイルダウンロード用)
*命令は単独実行される
* @param {string} funcName
* @param {...unknown[]} params
* @returns {Promise<never>}
* @memberof Adapter
*/
execBinary(funcName: string, ...params: unknown[]): Promise<never>;
/**
*複数のファンクションの実行
*
* @param {FunctionData[][]} functions
* @returns {Promise<any>}
* @memberof Adapter
*/
exec(functions: FunctionData[][]): Promise<never[]>;
/**
*単一ファンクションの実行
*
* @param {string} funcName ファンクション名
* @param {...unknown[]} params パラメータ
* @returns {Promise<any>}
* @memberof Adapter
*/
exec(funcName: string, ...params: unknown[]): Promise<never>;
/**
*同じタイミングで発生した複数命令をプールして同時に実行する
*
* @private
* @memberof Adapter
*/
private callSend;
/**
*命令の実行と受け取り処理
*
* @private
* @param {FunctionSet[]} functionSet
* @param {boolean} [binary]
* @returns
* @memberof Adapter
*/
private send;
/**
*Jsonデータ送受信とPromise化
*
* @static
* @param {string} url
* @param {unknown} [data]
* @param {{ [key: string]: string }} [headers]
* @param {boolean} [binary]
* @returns {Promise<unknown>}
* @memberof Adapter
*/
static sendJsonAsync(url: string, data?: unknown, headers?: {
[key: string]: string;
}, binary?: boolean): Promise<unknown>;
/**
*Jsonデータの送受信
*
* @private
* @static
* @param {string} url
* @param {unknown} data
* @param {Function} proc
* @param {{ [key: string]: string }} [headers]
* @returns {void}
* @memberof Adapter
*/
private static sendJson;
/**
*Jsonデータの送信とblobの受け取り
*
* @private
* @static
* @param {string} url
* @param {unknown} data
* @param {Function} proc
* @param {{ [key: string]: string }} [headers]
* @returns {void}
* @memberof Adapter
*/
private static sendJsonToBinary;
/**
*ファイルのアップロード
*パラメータはURLに設定される
*
* @param {Blob} buffer
* @param {string} funcName
* @param {...unknown[]} params
* @returns
* @memberof Adapter
*/
upload(buffer: Blob, funcName: string, ...params: unknown[]): Promise<unknown>;
/**
*ファイル送信
*
* @static
* @param {string} url
* @param {Blob} buffer
* @param {(result: never) => void} proc
* @param {({ [key: string]: string | number })} params
* @returns
* @memberof Adapter
*/
static sendFile(url: string, buffer: Blob, proc: (result: never) => void, params: {
[key: string]: string | number;
}): XMLHttpRequest | null;
}
export {};