logic-bind-model
Version:
white framework web
106 lines (92 loc) • 3.88 kB
TypeScript
import type { MetaTable } from 'logic-entity/ko';
import type { MetaObject } from 'logic-entity/ko';
import type { BaseBindModel } from './base-bind-model.d.ts';
/**
* 바인드 명령을 AJAX를 통해 구현하는 클래스입니다.
* 이 클래스는 서버와의 데이터 통신을 처리하고, 바인드 명령을 AJAX 방식으로 실행합니다.
*/
declare class BindCommand extends MetaObject {
/**
* 바인드 명령 AJAX 객체를 생성합니다.
*
* @param BaseBindModel - 바인드 모델 객체
* @param outputOpt - 출력 옵션
* @param baseTable - 기본 테이블 객체
*/
constructor(BaseBindModel: BaseBindModel, outputOpt: object | number | string, baseTable: MetaTable);
/**
* AJAX 요청에 대한 설정값입니다.
* axios 의 `config`와 동일한 형식입니다.
*/
config: object; // TODO: 타입 추출
/**
* AJAX 요청의 URL을 설정합니다.
*/
url: string;
/**
* 유효성 검사를 수행합니다.
* 검사할 컬럼은 `valid.columns` 속성을 통해 설정됩니다.
*/
_execValid(): boolean;
/**
* AJAX 바인딩을 구현합니다.
* 서버와의 데이터 통신을 설정하고 요청을 처리합니다.
*
* @returns {Promise<void>} 비동기 작업의 완료를 나타내는 `Promise` 객체입니다.
*/
_execBind(): Promise<void>;
/**
* AJAX 요청이 성공적으로 완료된 경우 호출됩니다.
*
* @param result - 서버로부터 받은 결과 데이터
* @param status - 요청 상태
* @param xhr - `XMLHttpRequest` 객체
*/
_ajaxSuccess(result: object, status: object, xhr: object): void;
/**
* AJAX 요청이 실패한 경우 호출됩니다.
*
* @param xhr - `XMLHttpRequest` 객체
* @param status - 요청 상태
* @param error - 오류 정보
*/
_execError(xhr: object, status: object, error: object): void;
/**
* AJAX 어댑터 패턴을 구현합니다.
* 웹 및 Node.js 환경에서 사용됩니다.
*
* @param setup - `axios` 설정 객체
* @returns `axios` 호출 결과를 나타내는 `Promise` 객체입니다.
*
*/
_ajaxCall(setup: object): Promise<void>;;
/**
* 바인드 명령을 실행합니다.
* 유효성 검사, 바인딩, 결과 처리, 성공 및 오류 콜백을 포함한 전체 실행 프로세스를 수행합니다.
*
* @param outputOption - 출력 옵션 설정 : 0: 제외, 1: 존재하는 커럼의 로우만 가져오고, value 설정, 2: 모든 컬럼의 로우 가져옴, 3: 존재하는 컬럼의 로우만 가져옴
* @param p_config axios 설정 객체 또는 url
* @returns 실행 결과를 나타내는 `Promise` 객체입니다.
*/
execute(outputOption?: object | number, config?: object | string): Promise<void>;
/**
* 객체를 GUID 타입의 객체 리터럴로 반환합니다.
*
* @param mode - 가져오기 모드
* mode=0 : 참조 구조(_guid:Yes, $ref:Yes)
* mode=1 : 중복 구조(_guid:Yes, $ref:Yes)
* mode=2 : 비침조 구조(_guid:No, $ref:No)
* @param context - 현재 객체를 포함(소유)하는 상위 객체
* @returns GUID 타입의 객체 리터럴
*/
getObject(mode?: number, context?: object | object[]): object;
/**
* GUID 타입의 객체 리터럴을 인스턴스 객체로 변환하여 설정합니다.
*
* @param guidObj - 설정할 GUID 타입의 객체 리터럴
* @param guidRootObj - 변환 과정에서 참조되는 초기 GUID 리터럴 객체
*/
setObject(guidObj: object, guidRootObj?: object): void;
}
export default BindCommand;
export { BindCommand };