@nsmp/js-api
Version:
Types for jsApi
58 lines (51 loc) • 2.49 kB
TypeScript
import {IJsApi, JsonOptions, UIFrameContext, UIUserInfo} from './index';
export interface UIFrameJsApi extends IJsApi {
/**
* Метод возвращает идентификатор объекта, чья карточка открыта в данный момент
* @param {UIFrameContext} context - Контекст приложения для `iframe`
* @returns {string | null}
*/
extractSubjectUuid (context: UIFrameContext): string | null,
/**
* Возвращает объект, соответствующий текущему пользователю
* @param {UIFrameContext} context - Контекст приложения для `iframe`
* @returns {UIUserInfo}
*/
getCurrentUser (context: UIFrameContext): UIUserInfo,
/**
* Метод позволяет найти код контента, в котором выведено текущее приложение
* @param {Window} window - Окно `iframe`
* @returns {string}
*/
findContentCode (window: Window): string,
/**
* Метод позволяет найти код текущего встроенного приложения
* @param {Window} window - окно `iframe`
* @returns {string | null}
*/
findApplicationCode (window: Window): string | null,
/**
* Выполняет REST запрос на сервер SMP
* @param {Window} window - Окно `iframe`
* @param {string} url - Весь URL, начиная с имени REST метода
* @param {RestCallOptions} options - Опции для конфигурации запроса
* @template T - Возвращаемые данные
* @returns {Promise<T>}
*/
restCallAsJson <T>(window: Window, url: string, options?: JsonOptions): Promise<T>,
/**
* Вызывает произвольный метод любого скриптового модуля
* @param {Window} window - Окно `iframe`
* @param {string} moduleCode - Код скриптового модуля
* @param {string} methodName - Имя метода в скриптовом модуле
* @param {Array<number | string | boolean | {[key: string]: any}>} args - Аргументы, которые необходимо передать в функцию
* @template T - Возвращаемые данные
* @returns {Promise<T>}
*/
restCallModule <T>(
window: Window,
moduleCode: string,
methodName: string,
...args: Array<number | string | boolean | {[key: string]: any}>
): Promise<T>
}