@nsmp/js-api
Version:
Types for jsApi
28 lines (24 loc) • 2.06 kB
TypeScript
import {IJsApi, JsApiSettings} from '../types';
/**
* Создает `singleton` объект `jsApi` в соответствии с режимом запуска:
* - При `process.env.NODE_ENV === 'production'` - возвращает объект `jsApi` в зависимости от окружения, в котором приложение запущено.
* - В остальных случаях, например, `process.env.NODE_ENV === 'test' || process.env.NODE_ENV === 'development'` - инициализирует переменную "jsApi" с помощью "mock" данных.
* Итоговый "mock" - результат объединения "defaultMockJsApi" и "mockJsApi".
* @template JsApiExtension - расширяемый объект "jsApi", который объединяется с базовым объектом "jsApi".
* @param {JsApiSettings<JsApiExtension>} [settings] - объект настроек, используемые для инициализации.
* @param {JsApiSettings<JsApiExtension>['mock']} [settings.mock] - объект "mock" данных
* @param {JsApiSettings<JsApiExtension>['getContext']} [settings.getContext] - функция для получения контекста.
* @summary Функция вызывается, если приложение используется как модуль расширения.
* @summary Функция может вернуть объект "jsApi" в зависимости от окружения и контекста.
*/
export declare function initializeJsApi <PartialApi>(settings?: JsApiSettings<PartialApi>): void;
/**
* Возвращает "singleton" объект "jsApi", если он создан, иначе выбрасывает ошибку.
* @template Api - возвращаемый объект "jsApi".
* @return {Api} объект "jsApi".
*/
export declare function getJsApi <Api = IJsApi>(): Api;
/**
* Удаляет "singleton" объект "jsApi".
*/
export declare function removeJsApi (): void;